Bug 527086: [java9] Support Java 9
- try fix StepIntoSelectionTests.testStepIntoBinaryMethod
- was NPE in u2At() from MethodInfo.getMethodDescriptor()
- before releasing .reference initialized descriptor etc.
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/classfmt/MethodInfo.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/classfmt/MethodInfo.java
index e729232..2b94b76 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/classfmt/MethodInfo.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/classfmt/MethodInfo.java
@@ -219,8 +219,10 @@
// hack re preserving byte code (see #initialize()): now may be the time to release it:
// (Note(SH): TeamMethodGenerator depends on any team method containing valid bytecodes and offsets,
// given the ClassFileReader.initialize() nulls "reference")
- if (!needByteCode)
- reset();
+ if (!needByteCode) {
+ initialize(); // ensure this info can be queried without lookup in reference
+ reset();
+ }
// evaluate method attributes.
for (AbstractAttribute attr : this.methodAttributes)
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/nd/java/model/IndexBinaryType.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/nd/java/model/IndexBinaryType.java
index a36d79b..8409fc0 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/nd/java/model/IndexBinaryType.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/nd/java/model/IndexBinaryType.java
@@ -676,6 +676,7 @@
return ExternalAnnotationStatus.NOT_EEA_CONFIGURED;
}
//{ObjectTeams: retrieve class file in workspace:
+ // FIXME: sync this with (a) reading EEA, (b) fileName manipulation for JRT
@Override
public IBinaryType withClassBytes() throws ClassFormatException, IOException, CoreException {
File file = new File(String.valueOf(this.fileName));