diff --git a/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java b/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java index 08e20333b9e..f50c11f9942 100644 --- a/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java +++ b/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java @@ -434,7 +434,17 @@ public MethodBinding[] availableMethods() { return availableMethods; } -void cachePartsFrom(IBinaryType binaryType, boolean needFieldsAndMethods) { +final void cachePartsFrom(IBinaryType binaryType, boolean needFieldsAndMethods) { + try { + cachePartsFrom2(binaryType, needFieldsAndMethods); + } catch (AbortCompilation e) { + throw e; + } catch (RuntimeException e) { + throw new RuntimeException("RuntimeException loading " + new String(binaryType.getFileName()), e); //$NON-NLS-1$ + } +} + +private void cachePartsFrom2(IBinaryType binaryType, boolean needFieldsAndMethods) { if (!isPrototype()) throw new IllegalStateException(); ReferenceBinding previousRequester = this.environment.requestingType; this.environment.requestingType = this;