### Eclipse Workspace Patch 1.0 #P org.eclipse.jem Index: mofjava/org/eclipse/jem/java/internal/impl/MethodImpl.java =================================================================== RCS file: /cvsroot/webtools/jeetools/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/internal/impl/MethodImpl.java,v retrieving revision 1.5 diff -u -r1.5 MethodImpl.java --- mofjava/org/eclipse/jem/java/internal/impl/MethodImpl.java 27 Jan 2009 22:07:54 -0000 1.5 +++ mofjava/org/eclipse/jem/java/internal/impl/MethodImpl.java 22 Apr 2011 15:09:25 -0000 @@ -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); } #P org.eclipse.jem.workbench Index: workbench/org/eclipse/jem/internal/adapters/jdom/JDOMSearchHelper.java =================================================================== RCS file: /cvsroot/webtools/jeetools/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/internal/adapters/jdom/JDOMSearchHelper.java,v retrieving revision 1.12 diff -u -r1.12 JDOMSearchHelper.java --- workbench/org/eclipse/jem/internal/adapters/jdom/JDOMSearchHelper.java 14 Aug 2009 19:20:03 -0000 1.12 +++ workbench/org/eclipse/jem/internal/adapters/jdom/JDOMSearchHelper.java 22 Apr 2011 15:09:27 -0000 @@ -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.