Changes from RC2 to RC2A: Fixes bug #310405 http://forge.objectweb.org/tracker/?func=detail&aid=310405&group_id=56&atid=100056 Patch: Index: src/java/org/ow2/bonita/persistence/db/DbRepository.java =================================================================== --- src/java/org/ow2/bonita/persistence/db/DbRepository.java (revision 2953) +++ src/java/org/ow2/bonita/persistence/db/DbRepository.java (working copy) @@ -43,6 +43,11 @@ new HashMap(); private Set removedTasks = new HashSet(); + + private Map bufferedPackageClassData = + new HashMap(); + + private Set removedGlobalClassName = new HashSet(); } @@ -211,6 +216,9 @@ ** HOOK REPOSITORY ** *********************/ public PackageClassData getPackageClassData(PackageDefinitionUUID packageId) { + if (buffer.bufferedPackageClassData.containsKey(packageId)) { + return buffer.bufferedPackageClassData.get(packageId); + } return getPersistenceService().getPackageClassData(packageId); } public void removePackageClassData(PackageDefinitionUUID packageId) { @@ -222,8 +230,12 @@ } public void storePackageClassData(PackageClassData packageClassData) { getPersistenceService().save(packageClassData); + buffer.bufferedPackageClassData.put(packageClassData.getPackageUUID(), packageClassData); } public GlobalClassData getGlobalClassData(String className) { + if (buffer.removedGlobalClassName.contains(className)) { + return null; + } return getPersistenceService().getGlobalClassData(className); } public void removeGlobalClass(String className) { @@ -231,12 +243,13 @@ if (gcd == null) { return; } + buffer.removedGlobalClassName.add(className); getPersistenceService().delete(gcd); } public void storeGlobalClassData(GlobalClassData globalClassData) { + buffer.removedGlobalClassName.remove(globalClassData.getClassName()); getPersistenceService().save(globalClassData); } - /* * DEPENDENT PACKAGES */