perhaps you have to use the callable object like this:
Future<IOrder> future = context.executeTask(new Callable <IOrder>() {
public IOrder call() {
try {
return context.getEngine().submitOrder("xxx", instrument, IEngine.OrderCommand.SELL, amount, 0, 5, stopOrderPrice, 0);
}
catch (JFException e) {
e.printStackTrace(context.getConsole().getErr());
return null;
}
}
});
try {
IOrder resultOrder = future.get();
...
}
catch (InterruptedException e) {
e.printStackTrace(context.getConsole().getErr());
}
catch (ExecutionException e) {
e.printStackTrace(context.getConsole().getErr());
}