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