[343559] JEM needs to handle a flush better
diff --git a/plugins/org.eclipse.jem.workbench/META-INF/MANIFEST.MF b/plugins/org.eclipse.jem.workbench/META-INF/MANIFEST.MF index a6d36a0..a9eef1e 100644 --- a/plugins/org.eclipse.jem.workbench/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.jem.workbench/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.jem.workbench; singleton:=true -Bundle-Version: 2.0.103.qualifier +Bundle-Version: 2.0.104.qualifier Bundle-Activator: org.eclipse.jem.internal.plugin.JavaPlugin Bundle-Vendor: %providerName Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/internal/adapters/jdom/JDOMSearchHelper.java b/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/internal/adapters/jdom/JDOMSearchHelper.java index 38e6965..329a0c0 100644 --- a/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/internal/adapters/jdom/JDOMSearchHelper.java +++ b/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/internal/adapters/jdom/JDOMSearchHelper.java
@@ -148,7 +148,12 @@ return result; } private static boolean needsToResolveName(IType type, String simpleName, boolean isForReflection) { - return !(type.isBinary() || (!isForReflection && simpleName.indexOf(PERIOD) > -1) || isPrimitiveOrVoid(simpleName)); + boolean retVal = false; + if (type != null) + { + retVal = !(type.isBinary() || (!isForReflection && simpleName.indexOf(PERIOD) > -1) || isPrimitiveOrVoid(simpleName)); + } + return retVal; } /** * Returns the qualified name for the simple name within the scope of the type.
diff --git a/plugins/org.eclipse.jem/META-INF/MANIFEST.MF b/plugins/org.eclipse.jem/META-INF/MANIFEST.MF index 7ec25b7..01317f5 100644 --- a/plugins/org.eclipse.jem/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.jem/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.jem; singleton:=true -Bundle-Version: 2.0.203.qualifier +Bundle-Version: 2.0.204.qualifier Bundle-Activator: org.eclipse.jem.internal.core.JEMPlugin Bundle-Vendor: %providerName Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/internal/impl/MethodImpl.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/internal/impl/MethodImpl.java index 07585bc..f42ed61 100644 --- a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/internal/impl/MethodImpl.java +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/internal/impl/MethodImpl.java
@@ -27,8 +27,7 @@ import org.eclipse.emf.ecore.impl.EOperationImpl; import org.eclipse.emf.ecore.util.*; -import org.eclipse.jem.internal.java.adapters.IJavaMethodAdapter; -import org.eclipse.jem.internal.java.adapters.ReadAdaptor; +import org.eclipse.jem.internal.java.adapters.*; import org.eclipse.jem.java.*; /** @@ -652,7 +651,13 @@ case JavaRefPackage.METHOD__PARAMETERS: return ((InternalEList)getParameters()).basicRemove(otherEnd, msgs); case JavaRefPackage.METHOD__JAVA_CLASS: - return basicSetJavaClass(null, msgs); + JavaClass newContainer = null; + ReadAdaptor readAdaptor = getReadAdapter(); + if (readAdaptor instanceof JavaReflectionAdaptor && otherEnd instanceof JavaClass) + { + newContainer = ((JavaReflectionAdaptor)readAdaptor).createJavaClassRef(((JavaClass)otherEnd).getJavaName()); + } + return basicSetJavaClass(newContainer, msgs); } return super.eInverseRemove(otherEnd, featureID, msgs); }