Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkmoore2008-07-09 20:39:12 +0000
committerkmoore2008-07-09 20:39:12 +0000
commit66b852243723a556b20debdbb6131490581d8210 (patch)
tree9aa679afa031762ca83e3853c57fe94d12503e6c
parent095aad6e2671f04242bb2052428bbada9abf1fbd (diff)
downloadwebtools.dali-66b852243723a556b20debdbb6131490581d8210.tar.gz
webtools.dali-66b852243723a556b20debdbb6131490581d8210.tar.xz
webtools.dali-66b852243723a556b20debdbb6131490581d8210.zip
235619 - removing persistence unit from persistence.xml, structure views not updated correctly
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/GenericPersistence.java2
-rw-r--r--jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/JpaFileTests.java30
2 files changed, 32 insertions, 0 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/GenericPersistence.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/GenericPersistence.java
index 3c3a0be534..9aa1a83e05 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/GenericPersistence.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/GenericPersistence.java
@@ -86,6 +86,7 @@ public class GenericPersistence extends AbstractPersistenceJpaContextNode
throw new IllegalArgumentException(new Integer(index).toString());
}
PersistenceUnit oldPersistenceUnit = persistenceUnit;
+ persistenceUnit.dispose();
persistenceUnit = null;
xmlPersistence.getPersistenceUnits().remove(index);
fireItemRemoved(PERSISTENCE_UNITS_LIST, index, oldPersistenceUnit);
@@ -97,6 +98,7 @@ public class GenericPersistence extends AbstractPersistenceJpaContextNode
}
protected void removePersistenceUnit_(PersistenceUnit oldPersistenceUnit) {
+ persistenceUnit.dispose();
persistenceUnit = null;
fireItemRemoved(PERSISTENCE_UNITS_LIST, 0, oldPersistenceUnit);
}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/JpaFileTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/JpaFileTests.java
index da8d498435..745987618b 100644
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/JpaFileTests.java
+++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/JpaFileTests.java
@@ -290,6 +290,36 @@ public class JpaFileTests extends ContextModelTestCase
assertEquals(persistenceUnit().impliedClassRefs().next(), javaJpaFile.rootStructureNodes().next().getParent());
}
+ public void testJavaRootStructureNodesPersistenceUnitRemovedFromResourceModel() throws Exception {
+ OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
+
+ ICompilationUnit cu = createTestEntity();
+ JpaFile javaJpaFile = JptCorePlugin.getJpaFile((IFile) cu.getResource());
+
+ JavaPersistentType javaPersistentType = ormPersistentType.getJavaPersistentType();
+ assertEquals(javaPersistentType, javaJpaFile.rootStructureNodes().next());
+
+ persistenceResource().getPersistence().getPersistenceUnits().remove(0);
+
+ assertFalse(javaJpaFile.rootStructureNodes().hasNext());
+ assertEquals(0, javaJpaFile.rootStructureNodesSize());
+ }
+
+ public void testJavaRootStructureNodesPersistenceUnitRemoved() throws Exception {
+ OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
+
+ ICompilationUnit cu = createTestEntity();
+ JpaFile javaJpaFile = JptCorePlugin.getJpaFile((IFile) cu.getResource());
+
+ JavaPersistentType javaPersistentType = ormPersistentType.getJavaPersistentType();
+ assertEquals(javaPersistentType, javaJpaFile.rootStructureNodes().next());
+
+ jpaProject().getRootContext().getPersistenceXml().getPersistence().removePersistenceUnit(0);
+
+ assertFalse(javaJpaFile.rootStructureNodes().hasNext());
+ assertEquals(0, javaJpaFile.rootStructureNodesSize());
+ }
+
public void testJavaRootStructureNodesOrmPersistentTypeRemoved() throws Exception {
OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);

Back to the top