public Future<T> invoke(ExecutorService es, final int rowIndex, final S data) {
final Context context = Context.getCurrentThreadContext();
return es.submit(new Callable<T>() {
@Override
public T call() throws Exception {
return Context.with(context.clone(), new Callable<T>() {
@Override
public T call() throws Exception {
return convert(rowIndex, data);
}
});