diff options
author | kmoore | 2008-07-21 21:16:39 +0000 |
---|---|---|
committer | kmoore | 2008-07-21 21:16:39 +0000 |
commit | 4f1f96cdf4fea396820ef0003025bc194b1139a9 (patch) | |
tree | 7887816b8191265d54e14328329787a8bacb746e | |
parent | 13b6c4c5a0620ac0751a7206efb1e5fc3b2adbf1 (diff) | |
download | webtools.dali-4f1f96cdf4fea396820ef0003025bc194b1139a9.tar.gz webtools.dali-4f1f96cdf4fea396820ef0003025bc194b1139a9.tar.xz webtools.dali-4f1f96cdf4fea396820ef0003025bc194b1139a9.zip |
235384 - update on classpath changes
-rw-r--r-- | jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/JavaResourceModelImpl.java | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/JavaResourceModelImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/JavaResourceModelImpl.java index edef877013..72a535074d 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/JavaResourceModelImpl.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/JavaResourceModelImpl.java @@ -85,8 +85,11 @@ public class JavaResourceModelImpl private void synchWithJavaDelta(IJavaElementDelta delta) { switch (delta.getElement().getElementType()) { - case IJavaElement.JAVA_MODEL : case IJavaElement.JAVA_PROJECT : + if (this.updateOnClasspathChanges(delta)) { + break; + } + case IJavaElement.JAVA_MODEL : case IJavaElement.PACKAGE_FRAGMENT_ROOT : case IJavaElement.PACKAGE_FRAGMENT : this.synchChildrenWithJavaDelta(delta); @@ -123,6 +126,18 @@ public class JavaResourceModelImpl } } + //bug 235384 - we need to update all compilation units when a classpath change occurs. + //The persistence.jar could have been added/removed from the classpath which affects + //whether we know about the jpa annotations or not. + private boolean updateOnClasspathChanges(IJavaElementDelta delta) { + if (BitTools.flagIsSet(delta.getFlags(), IJavaElementDelta.F_RESOLVED_CLASSPATH_CHANGED) || + BitTools.flagIsSet(delta.getFlags(), IJavaElementDelta.F_CLASSPATH_CHANGED)) { + this.jpaCompilationUnit.updateFromJava(); + return true; + } + return false; + } + public void updateFromResource() { this.jpaCompilationUnit.updateFromJava(); } |