[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);
 	}