[343558] JEM needs to handle a flush better
diff --git a/features/org.eclipse.jem.feature.patch/buildnotes_org.eclipse.jem.feature.patch.html b/features/org.eclipse.jem.feature.patch/buildnotes_org.eclipse.jem.feature.patch.html index 5909897..cebfb44 100644 --- a/features/org.eclipse.jem.feature.patch/buildnotes_org.eclipse.jem.feature.patch.html +++ b/features/org.eclipse.jem.feature.patch/buildnotes_org.eclipse.jem.feature.patch.html
@@ -19,4 +19,5 @@ <p>Bug <a href='https://bugs.eclipse.org/bugs/show_bug.cgi?id=249019'>249019</a>. Japanese chars in source code changed to illegible unicode</p> <p>Bug <a href='https://bugs.eclipse.org/bugs/show_bug.cgi?id=272013'>272013</a>. JEM JemProjectUtilities#getClasspathAsURLArray(IJavaProject) fails to handle class folders</p> <p>Bug <a href='https://bugs.eclipse.org/bugs/show_bug.cgi?id=290131'>290131</a>. Exceptions from JEM in adopter product</p> +<p>Bug <a href='https://bugs.eclipse.org/bugs/show_bug.cgi?id=343558'>343558</a>. JEM needs to handle a flush better</p> </body></html> \ No newline at end of file
diff --git a/features/org.eclipse.jem.feature.patch/feature.properties b/features/org.eclipse.jem.feature.patch/feature.properties index cbd1678..7274872 100644 --- a/features/org.eclipse.jem.feature.patch/feature.properties +++ b/features/org.eclipse.jem.feature.patch/feature.properties
@@ -32,6 +32,7 @@ Bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=249019 Japanese chars in source code changed to illegible unicode\n\ Bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=272013 JEM JemProjectUtilities#getClasspathAsURLArray(IJavaProject) fails to handle class folders\n\ Bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=290131 Exceptions from JEM in adopter product\n\ +Bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=343558 JEM needs to handle a flush better\n\ \n\ copyright=\ Copyright (c) 2008 IBM Corporation and others.\n\
diff --git a/plugins/org.eclipse.jem.workbench/META-INF/MANIFEST.MF b/plugins/org.eclipse.jem.workbench/META-INF/MANIFEST.MF index e132e4d..cea0624 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: 1.2.6.qualifier +Bundle-Version: 1.2.7.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 7f75aa9..467332d 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
@@ -11,7 +11,7 @@ package org.eclipse.jem.internal.adapters.jdom; /* * $RCSfile: JDOMSearchHelper.java,v $ - * $Revision: 1.8 $ $Date: 2006/05/17 20:13:58 $ + * $Revision: 1.8.4.1 $ $Date: 2011/08/05 20:09:52 $ */ import java.io.File; @@ -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 2d62d26..64f6487 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: 1.2.4.qualifier +Bundle-Version: 1.2.5.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/JavaClassImpl.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/internal/impl/JavaClassImpl.java index 42e872c..84281ee 100644 --- a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/internal/impl/JavaClassImpl.java +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/internal/impl/JavaClassImpl.java
@@ -10,7 +10,7 @@ *******************************************************************************/ /* * $RCSfile: JavaClassImpl.java,v $ - * $Revision: 1.4.6.1 $ $Date: 2009/10/01 22:01:28 $ + * $Revision: 1.4.6.2 $ $Date: 2011/08/05 20:09:53 $ */ package org.eclipse.jem.java.internal.impl; @@ -255,7 +255,15 @@ protected void collectMethodsExtended(Map methods, boolean onlyPublic, List excludedClasses, List excludedMethods) { Iterator it1, it2; - it2 = getExtendedLookupIterator(); + // copy over the contents + List extendedLookupClasses = new ArrayList(); + EList extendedLookupEList = null; + if (isInterface()) + extendedLookupEList = getImplementsInterfaces(); + else + extendedLookupEList = getESuperTypes(); + extendedLookupClasses.addAll(extendedLookupEList); + it2 = extendedLookupClasses.iterator(); JavaClassImpl javaClass; while (it2.hasNext()) { javaClass = (JavaClassImpl) it2.next();
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 4486cbb..f8aa419 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
@@ -12,7 +12,7 @@ /* * $RCSfile: MethodImpl.java,v $ - * $Revision: 1.2 $ $Date: 2005/09/15 20:28:03 $ + * $Revision: 1.2.6.1 $ $Date: 2011/08/05 20:09:53 $ */ import java.util.Collection; @@ -44,8 +44,7 @@ import org.eclipse.jem.java.Method; -import org.eclipse.jem.internal.java.adapters.IJavaMethodAdapter; -import org.eclipse.jem.internal.java.adapters.ReadAdaptor; +import org.eclipse.jem.internal.java.adapters.*; /** * @generated @@ -1043,7 +1042,13 @@ case JavaRefPackage.METHOD__PARAMETERS: return ((InternalEList)getParameters()).basicRemove(otherEnd, msgs); case JavaRefPackage.METHOD__JAVA_CLASS: - return eBasicSetContainer(null, JavaRefPackage.METHOD__JAVA_CLASS, msgs); + JavaClass newContainer = null; + ReadAdaptor readAdaptor = getReadAdapter(); + if (readAdaptor instanceof JavaReflectionAdaptor && otherEnd instanceof JavaClass) + { + newContainer = ((JavaReflectionAdaptor)readAdaptor).createJavaClassRef(((JavaClass)otherEnd).getJavaName()); + } + return eBasicSetContainer((InternalEObject)newContainer, JavaRefPackage.METHOD__JAVA_CLASS, msgs); default: return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs); } @@ -1129,5 +1134,23 @@ return eDynamicGet(eFeature, resolve); } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + */ + public void setEType(EClassifier newEType) + { + EClassifier newContainer = newEType; + if (eType != null && newEType == null) + { + ReadAdaptor readAdaptor = getReadAdapter(); + if (readAdaptor instanceof JavaReflectionAdaptor) + { + newContainer = ((JavaReflectionAdaptor)readAdaptor).createJavaClassRef(((JavaHelpers)eType).getJavaName()); + } + } + super.setEType(newContainer); + } + }