Future<SourceFile> fut = executor.submit(createParsingCallable(config, typeConverter, sourceContent, topLevelTypeDefs, true)); try { sourceFiles.add(fut.get(config.fullParsingTimeout, TimeUnit.MILLISECONDS)); for (Slice slice : slices) { try { sourceFiles.add(executor.submit(createParsingCallable(config, typeConverter, slice.text, topLevelTypeDefs, false)).get(config.sliceParsingTimeout, TimeUnit.MILLISECONDS)); } catch (Throwable ex) { if (firstFailure) {
Future<SourceFile> fut = executor.submit(createParsingCallable(config, typeConverter, sourceContent, topLevelTypeDefs, true)); try { sourceFiles.add(fut.get(config.fullParsingTimeout, TimeUnit.MILLISECONDS)); for (Slice slice : slices) { try { sourceFiles.add(executor.submit(createParsingCallable(config, typeConverter, slice.text, topLevelTypeDefs, false)).get(config.sliceParsingTimeout, TimeUnit.MILLISECONDS)); } catch (Throwable ex) { if (firstFailure) {