Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkmoore2008-07-21 21:16:39 +0000
committerkmoore2008-07-21 21:16:39 +0000
commit4f1f96cdf4fea396820ef0003025bc194b1139a9 (patch)
tree7887816b8191265d54e14328329787a8bacb746e
parent13b6c4c5a0620ac0751a7206efb1e5fc3b2adbf1 (diff)
downloadwebtools.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.java17
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();
}

Back to the top