raphael 2002/11/09 07:09:22 Modified: src/java/org/apache/jetspeed/services/registry CastorRegistryService.java Log: Fix bug 5627: Removing an entry from xreg does not remove the entry from Registry Revision Changes Path 1.26 +38 -2 jakarta-jetspeed/src/java/org/apache/jetspeed/services/registry/CastorRegistryService.java Index: CastorRegistryService.java =================================================================== RCS file: /home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/registry/CastorRegistryService.java,v retrieving revision 1.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 --- CastorRegistryService.java 7 Nov 2002 20:18:09 -0000 1.25 +++ CastorRegistryService.java 9 Nov 2002 15:09:22 -0000 1.26 @@ -785,8 +785,17 @@ } int count = 0; + int counDeleted = 0; LocalRegistry registry = (LocalRegistry)get(regName); + Vector toDelete = new Vector(); + Iterator i = registry.listEntryNames(); + + while(i.hasNext()) + { + toDelete.add(i.next()); + } + if (registry == null) { Log.error("RegistryService: Null " + name + " registry in refresh"); @@ -807,6 +816,15 @@ { Log.debug("RegistryService: Skipping fragment " + location); } + + //remove this fragment entries from the delete list + Vector entries = fragment.getEntries(regName); + i = entries.iterator(); + while(i.hasNext()) + { + toDelete.remove(((RegistryEntry)i.next()).getName()); + } + continue; } @@ -864,15 +882,33 @@ { Log.error("RegistryService: RegistryException while adding " + entry.getName() + "from " + location, e); } + + //remove this entry from the delete list + toDelete.remove(entry.getName()); } } count+=fragCount; } + //now delete the entries not found in any fragment + i = toDelete.iterator(); + while(i.hasNext()) + { + String entryName = (String)i.next(); + + if ((verbose>1) && Log.getLogger().isDebugEnabled()) + { + Log.debug("RegistryService: removing entry " + entryName); + } + + registry.removeLocalEntry(entryName); + } + + if ((verbose>1) && Log.getLogger().isDebugEnabled()) { - Log.debug("RegistryService: Merged " + count + " entries into the " + name); + Log.debug("RegistryService: Merged " + count + " entries and deleted "+ toDelete.size()+ " in " + name); } }
-- To unsubscribe, e-mail: <mailto:jetspeed-dev-unsubscribe@;jakarta.apache.org> For additional commands, e-mail: <mailto:jetspeed-dev-help@;jakarta.apache.org>