You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by re...@apache.org on 2022/12/06 17:14:27 UTC

svn commit: r1905799 - in /jackrabbit/branches/2.20: ./ jackrabbit-core/ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cache/ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/...

Author: reschke
Date: Tue Dec  6 17:14:26 2022
New Revision: 1905799

URL: http://svn.apache.org/viewvc?rev=1905799&view=rev
Log:
JCR-4847: jackrabbit-core: Upgrade to commons-collections4 (merged r1904225 into 2.20)

Modified:
    jackrabbit/branches/2.20/   (props changed)
    jackrabbit/branches/2.20/jackrabbit-core/pom.xml
    jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/CachingHierarchyManager.java
    jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemManager.java
    jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java
    jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionImpl.java
    jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/TransientRepository.java
    jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cache/GrowingLRUMap.java
    jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/jndi/BindableRepositoryFactory.java
    jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/AbstractRecord.java
    jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/LockManagerImpl.java
    jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeManagerImpl.java
    jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeRegistry.java
    jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/CachingIndexReader.java
    jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/DocNumberCache.java
    jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/IndexingConfigurationImpl.java
    jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/NodeTraversingQueryHits.java
    jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/VolatileIndex.java
    jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/authorization/AbstractCompiledPermissions.java
    jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/authorization/PrivilegeRegistry.java
    jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/authorization/principalbased/EntriesCache.java
    jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/principal/AbstractPrincipalProvider.java
    jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/principal/DefaultPrincipalProvider.java
    jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/ChangeLog.java
    jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/ChildNodeEntries.java
    jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/ItemStateReferenceCache.java
    jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/MLRUItemStateCache.java
    jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/XAItemStateManager.java
    jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/util/EmptyLinkedMap.java
    jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionManagerImpl.java
    jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionItemStateProvider.java
    jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/virtual/AbstractVISProvider.java
    jackrabbit/branches/2.20/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/TestRepository.java
    jackrabbit/branches/2.20/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/integration/random/operation/OperationSequence.java

Propchange: jackrabbit/branches/2.20/
------------------------------------------------------------------------------
  Merged /jackrabbit/trunk:r1904225

Modified: jackrabbit/branches/2.20/jackrabbit-core/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-core/pom.xml?rev=1905799&r1=1905798&r2=1905799&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-core/pom.xml (original)
+++ jackrabbit/branches/2.20/jackrabbit-core/pom.xml Tue Dec  6 17:14:26 2022
@@ -218,8 +218,8 @@ org.apache.jackrabbit.test.api.query.qom
       <artifactId>concurrent</artifactId>
     </dependency>
     <dependency>
-      <groupId>commons-collections</groupId>
-      <artifactId>commons-collections</artifactId>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-collections4</artifactId>
     </dependency>
     <dependency>
       <groupId>commons-io</groupId>
@@ -302,6 +302,12 @@ org.apache.jackrabbit.test.api.query.qom
       <scope>test</scope>
     </dependency>
     <dependency>
+      <groupId>commons-beanutils</groupId>
+      <artifactId>commons-beanutils</artifactId>
+      <version>1.9.4</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
       <groupId>org.apache.jackrabbit</groupId>
       <artifactId>jackrabbit-jcr-benchmark</artifactId>
       <scope>test</scope>

Modified: jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/CachingHierarchyManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/CachingHierarchyManager.java?rev=1905799&r1=1905798&r2=1905799&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/CachingHierarchyManager.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/CachingHierarchyManager.java Tue Dec  6 17:14:26 2022
@@ -26,7 +26,8 @@ import javax.jcr.ItemNotFoundException;
 import javax.jcr.PathNotFoundException;
 import javax.jcr.RepositoryException;
 
-import org.apache.commons.collections.map.ReferenceMap;
+import org.apache.commons.collections4.map.AbstractReferenceMap.ReferenceStrength;
+import org.apache.commons.collections4.map.ReferenceMap;
 import org.apache.jackrabbit.core.id.ItemId;
 import org.apache.jackrabbit.core.id.NodeId;
 import org.apache.jackrabbit.core.state.ChildNodeEntry;
@@ -75,7 +76,7 @@ public class CachingHierarchyManager ext
     /**
      * Mapping of item ids to <code>LRUEntry</code> in the path map
      */
-    private final ReferenceMap idCache = new ReferenceMap(ReferenceMap.HARD, ReferenceMap.HARD);
+    private final ReferenceMap<NodeId, LRUEntry> idCache = new ReferenceMap<>(ReferenceStrength.HARD, ReferenceStrength.HARD);
 
     /**
      * Cache monitor object
@@ -369,7 +370,7 @@ public class CachingHierarchyManager ext
                     PathFactoryImpl.getInstance().getRootPath(), true));
         }
 
-        LRUEntry entry = (LRUEntry) idCache.get(id);
+        LRUEntry entry = idCache.get(id);
         if (entry != null) {
             return Arrays.asList(entry.getElements());
         } else {
@@ -437,7 +438,7 @@ public class CachingHierarchyManager ext
      */
     public void nodesReplaced(NodeState state) {
         synchronized (cacheMonitor) {
-            LRUEntry entry = (LRUEntry) idCache.get(state.getNodeId());
+            LRUEntry entry = idCache.get(state.getNodeId());
             if (entry == null) {
                 return;
             }
@@ -447,7 +448,7 @@ public class CachingHierarchyManager ext
                 boolean orderChanged = false;
 
                 for (PathMap.Element<LRUEntry> child : parent.getChildren()) {
-                    LRUEntry childEntry = (LRUEntry) child.get();
+                    LRUEntry childEntry = child.get();
                     if (childEntry == null) {
                         // Child has no associated UUID information: we're
                         // therefore unable to determine if this child's
@@ -525,7 +526,7 @@ public class CachingHierarchyManager ext
      */
     private PathMap.Element<LRUEntry> get(ItemId id) {
         synchronized (cacheMonitor) {
-            LRUEntry entry = (LRUEntry) idCache.get(id);
+            LRUEntry entry = idCache.get(id);
             if (entry != null) {
                 entry.touch();
                 return entry.getElements()[0];
@@ -592,11 +593,11 @@ public class CachingHierarchyManager ext
             }
             PathMap.Element<LRUEntry> element = pathCache.put(path);
             if (element.get() != null) {
-                if (!id.equals(((LRUEntry) element.get()).getId())) {
+                if (!id.equals((element.get()).getId())) {
                     log.debug("overwriting PathMap.Element");
                 }
             }
-            LRUEntry entry = (LRUEntry) idCache.get(id);
+            LRUEntry entry = idCache.get(id);
             if (entry == null) {
                 entry = new LRUEntry(id, element);
                 idCache.put(id, entry);
@@ -622,7 +623,7 @@ public class CachingHierarchyManager ext
      */
     boolean isCached(NodeId id, Path path) {
         synchronized (cacheMonitor) {
-            LRUEntry entry = (LRUEntry) idCache.get(id);
+            LRUEntry entry = idCache.get(id);
             if (entry == null) {
                 return false;
             }
@@ -665,7 +666,7 @@ public class CachingHierarchyManager ext
      */
     private void evictAll(ItemId id, boolean shift) {
         synchronized (cacheMonitor) {
-            LRUEntry entry = (LRUEntry) idCache.get(id);
+            LRUEntry entry = idCache.get(id);
             if (entry != null) {
                 PathMap.Element<LRUEntry>[] elements = entry.getElements();
                 for (int i = 0; i < elements.length; i++) {
@@ -687,7 +688,7 @@ public class CachingHierarchyManager ext
         // assert: synchronized (cacheMonitor)
         element.traverse(new PathMap.ElementVisitor<LRUEntry>() {
             public void elementVisited(PathMap.Element<LRUEntry> element) {
-                LRUEntry entry = (LRUEntry) element.get();
+                LRUEntry entry = element.get();
                 if (entry.removeElement(element) == 0) {
                     idCache.remove(entry.getId());
                     entry.remove();
@@ -714,7 +715,7 @@ public class CachingHierarchyManager ext
         // assert: synchronized (cacheMonitor)
         PathMap.Element<LRUEntry> element = null;
 
-        LRUEntry entry = (LRUEntry) idCache.get(id);
+        LRUEntry entry = idCache.get(id);
         if (entry != null) {
             // child node already cached: this can have the following
             // reasons:
@@ -768,7 +769,7 @@ public class CachingHierarchyManager ext
             // with SNS, this might evict a child that is NOT the one
             // having <code>id</code>, check first whether item has
             // the id passed as argument
-            LRUEntry entry = (LRUEntry) element.get();
+            LRUEntry entry = element.get();
             if (entry != null && !entry.getId().equals(id)) {
                 return;
             }
@@ -828,17 +829,17 @@ public class CachingHierarchyManager ext
 
         int elementsInCache = 0;
 
-        Iterator iter = idCache.values().iterator();
+        Iterator<LRUEntry> iter = idCache.values().iterator();
         while (iter.hasNext()) {
-            LRUEntry entry = (LRUEntry) iter.next();
+            LRUEntry entry = iter.next();
             elementsInCache += entry.getElements().length;
         }
 
         class PathMapElementCounter implements PathMap.ElementVisitor<LRUEntry> {
             int count;
             public void elementVisited(PathMap.Element<LRUEntry> element) {
-                LRUEntry mappedEntry = (LRUEntry) element.get();
-                LRUEntry cachedEntry = (LRUEntry) idCache.get(mappedEntry.getId());
+                LRUEntry mappedEntry = element.get();
+                LRUEntry cachedEntry = idCache.get(mappedEntry.getId());
                 if (cachedEntry == null) {
                     String msg = "Path element (" + element +
                         " ) cached in path map, associated id (" +
@@ -921,6 +922,7 @@ public class CachingHierarchyManager ext
          * @param id node id
          * @param element the path map element for this entry
          */
+        @SuppressWarnings("unchecked")
         public LRUEntry(NodeId id, PathMap.Element<LRUEntry> element) {
             this.id = id;
             this.elements = new PathMap.Element[] { element };
@@ -1003,6 +1005,7 @@ public class CachingHierarchyManager ext
         /**
          * Add a mapping to some element.
          */
+        @SuppressWarnings("unchecked")
         public void addElement(PathMap.Element<LRUEntry> element) {
             PathMap.Element<LRUEntry>[] tmp =
                 new PathMap.Element[elements.length + 1];
@@ -1016,6 +1019,7 @@ public class CachingHierarchyManager ext
          *
          * @return number of mappings left
          */
+        @SuppressWarnings("unchecked")
         public int removeElement(PathMap.Element<LRUEntry> element) {
             boolean found = false;
             for (int i = 0; i < elements.length; i++) {
@@ -1046,7 +1050,7 @@ public class CachingHierarchyManager ext
 
         private final String id;
 
-        private final ReferenceMap cache;
+        private final ReferenceMap<NodeId, LRUEntry> cache;
 
         private long timeStamp = 0;
 

Modified: jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemManager.java?rev=1905799&r1=1905798&r2=1905799&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemManager.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemManager.java Tue Dec  6 17:14:26 2022
@@ -30,7 +30,8 @@ import javax.jcr.PropertyIterator;
 import javax.jcr.RepositoryException;
 import javax.jcr.nodetype.ConstraintViolationException;
 
-import org.apache.commons.collections.map.ReferenceMap;
+import org.apache.commons.collections4.map.AbstractReferenceMap.ReferenceStrength;
+import org.apache.commons.collections4.map.ReferenceMap;
 import org.apache.jackrabbit.core.id.ItemId;
 import org.apache.jackrabbit.core.id.NodeId;
 import org.apache.jackrabbit.core.id.PropertyId;
@@ -114,7 +115,6 @@ public class ItemManager implements Item
      *
      * @param sessionContext component context of the associated session
      */
-    @SuppressWarnings("unchecked")
     protected ItemManager(SessionContext sessionContext) {
         this.sism = sessionContext.getItemStateManager();
         this.hierMgr = sessionContext.getHierarchyManager();
@@ -123,7 +123,7 @@ public class ItemManager implements Item
         this.rootNodeDef = sessionContext.getNodeTypeManager().getRootNodeDefinition();
 
         // setup item cache with weak references to items
-        itemCache = new ReferenceMap(ReferenceMap.HARD, ReferenceMap.WEAK);
+        itemCache = new ReferenceMap<>(ReferenceStrength.HARD, ReferenceStrength.WEAK);
 
         // setup shareable nodes cache
         shareableNodesCache = new ShareableNodesCache();
@@ -1189,13 +1189,13 @@ public class ItemManager implements Item
          * This cache is based on a reference map, that maps an item id to a map,
          * which again maps a (hard-ref) parent id to a (weak-ref) shareable node.
          */
-        private final ReferenceMap cache;
+        private final ReferenceMap<NodeId, ReferenceMap<NodeId, AbstractNodeData>> cache;
 
         /**
          * Create a new instance of this class.
          */
         public ShareableNodesCache() {
-            cache = new ReferenceMap(ReferenceMap.HARD, ReferenceMap.HARD);
+            cache = new ReferenceMap<>(ReferenceStrength.HARD, ReferenceStrength.HARD);
         }
 
         /**
@@ -1214,7 +1214,7 @@ public class ItemManager implements Item
          * @return node or <code>null</code>
          */
         public AbstractNodeData retrieveFirst(NodeId id) {
-            ReferenceMap map = (ReferenceMap) cache.get(id);
+            ReferenceMap<NodeId, AbstractNodeData> map = cache.get(id);
             if (map != null) {
                 Iterator<AbstractNodeData> iter = map.values().iterator();
                 try {
@@ -1239,9 +1239,9 @@ public class ItemManager implements Item
          * @return node or <code>null</code>
          */
         public AbstractNodeData retrieve(NodeId id, NodeId parentId) {
-            ReferenceMap map = (ReferenceMap) cache.get(id);
+            ReferenceMap<NodeId, AbstractNodeData> map = cache.get(id);
             if (map != null) {
-                return (AbstractNodeData) map.get(parentId);
+                return map.get(parentId);
             }
             return null;
         }
@@ -1253,9 +1253,9 @@ public class ItemManager implements Item
          */
         public void cache(AbstractNodeData data) {
             NodeId id = data.getNodeState().getNodeId();
-            ReferenceMap map = (ReferenceMap) cache.get(id);
+            ReferenceMap<NodeId, AbstractNodeData> map = cache.get(id);
             if (map == null) {
-                map = new ReferenceMap(ReferenceMap.HARD, ReferenceMap.WEAK);
+                map = new ReferenceMap<>(ReferenceStrength.HARD, ReferenceStrength.WEAK);
                 cache.put(id, map);
             }
             Object old = map.put(data.getPrimaryParentId(), data);
@@ -1270,7 +1270,7 @@ public class ItemManager implements Item
          * @param data data to evict
          */
         public void evict(AbstractNodeData data) {
-            ReferenceMap map = (ReferenceMap) cache.get(data.getId());
+            ReferenceMap<NodeId, AbstractNodeData> map = cache.get(data.getId());
             if (map != null) {
                 map.remove(data.getPrimaryParentId());
             }

Modified: jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java?rev=1905799&r1=1905798&r2=1905799&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java Tue Dec  6 17:14:26 2022
@@ -50,7 +50,8 @@ import javax.jcr.observation.Event;
 import javax.jcr.observation.ObservationManager;
 import javax.security.auth.Subject;
 
-import org.apache.commons.collections.map.ReferenceMap;
+import org.apache.commons.collections4.map.AbstractReferenceMap.ReferenceStrength;
+import org.apache.commons.collections4.map.ReferenceMap;
 import org.apache.commons.io.IOUtils;
 import org.apache.jackrabbit.api.JackrabbitRepository;
 import org.apache.jackrabbit.api.management.RepositoryManager;
@@ -210,7 +211,7 @@ public class RepositoryImpl extends Abst
      * active sessions (weak references)
      */
     private final Map<Session, Session> activeSessions =
-            new ReferenceMap(ReferenceMap.WEAK, ReferenceMap.WEAK);
+            new ReferenceMap<>(ReferenceStrength.WEAK, ReferenceStrength.WEAK);
 
     // flag indicating if repository has been shut down
     private boolean disposed;

Modified: jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionImpl.java?rev=1905799&r1=1905798&r2=1905799&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionImpl.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionImpl.java Tue Dec  6 17:14:26 2022
@@ -61,8 +61,9 @@ import javax.jcr.security.AccessControlM
 import javax.jcr.version.VersionException;
 import javax.security.auth.Subject;
 
-import org.apache.commons.collections.IteratorUtils;
-import org.apache.commons.collections.map.ReferenceMap;
+import org.apache.commons.collections4.IteratorUtils;
+import org.apache.commons.collections4.map.AbstractReferenceMap.ReferenceStrength;
+import org.apache.commons.collections4.map.ReferenceMap;
 import org.apache.jackrabbit.api.JackrabbitSession;
 import org.apache.jackrabbit.api.security.principal.PrincipalManager;
 import org.apache.jackrabbit.api.security.user.Authorizable;
@@ -196,9 +197,8 @@ public class SessionImpl extends Abstrac
     /**
      * Listeners (weak references)
      */
-    @SuppressWarnings("unchecked")
     protected final Map<SessionListener, SessionListener> listeners =
-        new ReferenceMap(ReferenceMap.WEAK, ReferenceMap.WEAK);
+        new ReferenceMap<>(ReferenceStrength.WEAK, ReferenceStrength.WEAK);
 
     /**
      * Principal Manager
@@ -956,6 +956,7 @@ public class SessionImpl extends Abstrac
     /**
      * Utility method that removes all registered event listeners.
      */
+    @SuppressWarnings("unchecked")
     private void removeRegisteredEventListeners() {
         try {
             ObservationManager manager = getWorkspace().getObservationManager();

Modified: jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/TransientRepository.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/TransientRepository.java?rev=1905799&r1=1905798&r2=1905799&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/TransientRepository.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/TransientRepository.java Tue Dec  6 17:14:26 2022
@@ -29,7 +29,8 @@ import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 import javax.jcr.Value;
 
-import org.apache.commons.collections.map.ReferenceMap;
+import org.apache.commons.collections4.map.AbstractReferenceMap.ReferenceStrength;
+import org.apache.commons.collections4.map.ReferenceMap;
 import org.apache.jackrabbit.api.JackrabbitRepository;
 import org.apache.jackrabbit.commons.AbstractRepository;
 import org.apache.jackrabbit.core.config.ConfigurationException;
@@ -111,7 +112,7 @@ public class TransientRepository extends
      * is opened.
      */
     private final Map<Session, Session> sessions =
-        new ReferenceMap(ReferenceMap.WEAK, ReferenceMap.WEAK);
+        new ReferenceMap<>(ReferenceStrength.WEAK, ReferenceStrength.WEAK);
 
     /**
      * The static repository descriptors. The default {@link RepositoryImpl}

Modified: jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cache/GrowingLRUMap.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cache/GrowingLRUMap.java?rev=1905799&r1=1905798&r2=1905799&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cache/GrowingLRUMap.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cache/GrowingLRUMap.java Tue Dec  6 17:14:26 2022
@@ -16,13 +16,14 @@
  */
 package org.apache.jackrabbit.core.cache;
 
-import org.apache.commons.collections.map.LRUMap;
+import org.apache.commons.collections4.map.LRUMap;
+import org.apache.commons.collections4.map.AbstractLinkedMap;
 
 /**
  * <code>GrowingLRUMap</code> extends the LRUMap such that it can grow from
  * the specified <code>initialSize</code> to the specified <code>maxSize</code>;
  */
-public class GrowingLRUMap extends LRUMap {
+public class GrowingLRUMap<K, V> extends LRUMap<K, V> {
 
     private final int maxSize;
 
@@ -32,7 +33,7 @@ public class GrowingLRUMap extends LRUMa
     }
 
     @Override
-    protected boolean removeLRU(LinkEntry entry) {
+    protected boolean removeLRU(AbstractLinkedMap.LinkEntry<K, V> entry) {
         return size() > maxSize;
     }
 }
\ No newline at end of file

Modified: jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/jndi/BindableRepositoryFactory.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/jndi/BindableRepositoryFactory.java?rev=1905799&r1=1905798&r2=1905799&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/jndi/BindableRepositoryFactory.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/jndi/BindableRepositoryFactory.java Tue Dec  6 17:14:26 2022
@@ -25,7 +25,7 @@ import javax.naming.Name;
 import javax.naming.Reference;
 import javax.naming.spi.ObjectFactory;
 
-import org.apache.commons.collections.map.ReferenceMap;
+import org.apache.commons.collections4.map.ReferenceMap;
 
 /**
  * <code>BindableRepositoryFactory</code> is an object factory that when given
@@ -38,7 +38,7 @@ public class BindableRepositoryFactory i
      * cache using <code>java.naming.Reference</code> objects as keys and
      * storing soft references to <code>BindableRepository</code> instances
      */
-    private static final Map cache = new ReferenceMap();
+    private static final Map<Object, Object> cache = new ReferenceMap<>();
 
     /**
      * {@inheritDoc}

Modified: jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/AbstractRecord.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/AbstractRecord.java?rev=1905799&r1=1905798&r2=1905799&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/AbstractRecord.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/AbstractRecord.java Tue Dec  6 17:14:26 2022
@@ -25,8 +25,8 @@ import java.util.Map;
 
 import javax.jcr.NamespaceException;
 
-import org.apache.commons.collections.BidiMap;
-import org.apache.commons.collections.bidimap.DualHashBidiMap;
+import org.apache.commons.collections4.BidiMap;
+import org.apache.commons.collections4.bidimap.DualHashBidiMap;
 import org.apache.jackrabbit.commons.cnd.CompactNodeTypeDefReader;
 import org.apache.jackrabbit.commons.cnd.ParseException;
 import org.apache.jackrabbit.core.id.NodeId;
@@ -64,7 +64,7 @@ public abstract class AbstractRecord imp
     /**
      * Maps NodeId to Integer index.
      */
-    private final BidiMap nodeIdIndex = new DualHashBidiMap();
+    private final BidiMap<NodeId, Integer> nodeIdIndex = new DualHashBidiMap<>();
 
     /**
      * Namespace resolver.
@@ -254,7 +254,7 @@ public abstract class AbstractRecord imp
             if (index == -1) {
                 return null;
             } else {
-                return (NodeId) nodeIdIndex.getKey(index);
+                return nodeIdIndex.getKey(index);
             }
         } else if (uuidType == UUID_LITERAL) {
             byte[] b = new byte[NodeId.UUID_BYTE_LENGTH];
@@ -326,7 +326,7 @@ public abstract class AbstractRecord imp
      * @return cache index of existing entry or <code>-1</code> to indicate the entry was added
      */
     private int getOrCreateIndex(NodeId nodeId) {
-        Integer index = (Integer) nodeIdIndex.get(nodeId);
+        Integer index = nodeIdIndex.get(nodeId);
         if (index == null) {
             nodeIdIndex.put(nodeId, nodeIdIndex.size());
             return -1;

Modified: jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/LockManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/LockManagerImpl.java?rev=1905799&r1=1905798&r2=1905799&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/LockManagerImpl.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/LockManagerImpl.java Tue Dec  6 17:14:26 2022
@@ -37,7 +37,7 @@ import javax.jcr.lock.LockException;
 import javax.jcr.observation.Event;
 import javax.jcr.observation.EventIterator;
 
-import org.apache.commons.collections.map.LinkedMap;
+import org.apache.commons.collections4.map.LinkedMap;
 import org.apache.commons.io.IOUtils;
 import org.apache.jackrabbit.core.NodeImpl;
 import org.apache.jackrabbit.core.SessionImpl;
@@ -1118,9 +1118,8 @@ public class LockManagerImpl
      * add and remove operations on nodes with the same UUID into a move
      * operation.
      */
-    @SuppressWarnings("unchecked")
-	private Iterator<HierarchyEvent> consolidateEvents(EventIterator events) {
-        LinkedMap eventMap = new LinkedMap();
+    private Iterator<HierarchyEvent> consolidateEvents(EventIterator events) {
+        LinkedMap<NodeId, HierarchyEvent> eventMap = new LinkedMap<>();
 
         while (events.hasNext()) {
             EventImpl event = (EventImpl) events.nextEvent();
@@ -1138,7 +1137,7 @@ public class LockManagerImpl
                 continue;
             }
 
-            HierarchyEvent heExisting = (HierarchyEvent) eventMap.get(he.id);
+            HierarchyEvent heExisting = eventMap.get(he.id);
             if (heExisting != null) {
                 heExisting.merge(he);
             } else {

Modified: jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeManagerImpl.java?rev=1905799&r1=1905798&r2=1905799&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeManagerImpl.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeManagerImpl.java Tue Dec  6 17:14:26 2022
@@ -41,7 +41,8 @@ import javax.jcr.nodetype.NodeTypeDefini
 import javax.jcr.nodetype.NodeTypeExistsException;
 import javax.jcr.nodetype.NodeTypeIterator;
 
-import org.apache.commons.collections.map.ReferenceMap;
+import org.apache.commons.collections4.map.AbstractReferenceMap.ReferenceStrength;
+import org.apache.commons.collections4.map.ReferenceMap;
 import org.apache.jackrabbit.api.JackrabbitNodeTypeManager;
 import org.apache.jackrabbit.commons.NamespaceHelper;
 import org.apache.jackrabbit.commons.cnd.CompactNodeTypeDefReader;
@@ -112,9 +113,9 @@ public class NodeTypeManagerImpl extends
 
         // setup caches with soft references to node type
         // & item definition instances
-        ntCache = new ReferenceMap(ReferenceMap.HARD, ReferenceMap.SOFT);
-        pdCache = new ReferenceMap(ReferenceMap.HARD, ReferenceMap.SOFT);
-        ndCache = new ReferenceMap(ReferenceMap.HARD, ReferenceMap.SOFT);
+        ntCache = new ReferenceMap<>(ReferenceStrength.HARD, ReferenceStrength.SOFT);
+        pdCache = new ReferenceMap<>(ReferenceStrength.HARD, ReferenceStrength.SOFT);
+        ndCache = new ReferenceMap<>(ReferenceStrength.HARD, ReferenceStrength.SOFT);
 
         NodeTypeRegistry registry = context.getNodeTypeRegistry();
 

Modified: jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeRegistry.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeRegistry.java?rev=1905799&r1=1905798&r2=1905799&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeRegistry.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeRegistry.java Tue Dec  6 17:14:26 2022
@@ -41,7 +41,8 @@ import javax.jcr.nodetype.ConstraintViol
 import javax.jcr.nodetype.NoSuchNodeTypeException;
 import javax.jcr.version.OnParentVersionAction;
 
-import org.apache.commons.collections.map.ReferenceMap;
+import org.apache.commons.collections4.map.AbstractReferenceMap.ReferenceStrength;
+import org.apache.commons.collections4.map.ReferenceMap;
 import org.apache.commons.io.IOUtils;
 import org.apache.jackrabbit.core.cluster.NodeTypeEventChannel;
 import org.apache.jackrabbit.core.cluster.NodeTypeEventListener;
@@ -120,9 +121,8 @@ public class NodeTypeRegistry implements
     /**
      * Listeners (weak references)
      */
-    @SuppressWarnings("unchecked")
     private final Map<NodeTypeRegistryListener, NodeTypeRegistryListener> listeners =
-            Collections.synchronizedMap(new ReferenceMap(ReferenceMap.WEAK, ReferenceMap.WEAK));
+            Collections.synchronizedMap(new ReferenceMap<>(ReferenceStrength.WEAK, ReferenceStrength.WEAK));
 
     /**
      * Node type event channel.

Modified: jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/CachingIndexReader.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/CachingIndexReader.java?rev=1905799&r1=1905798&r2=1905799&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/CachingIndexReader.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/CachingIndexReader.java Tue Dec  6 17:14:26 2022
@@ -26,7 +26,7 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
-import org.apache.commons.collections.map.LRUMap;
+import org.apache.commons.collections4.map.LRUMap;
 import org.apache.jackrabbit.core.id.NodeId;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.FieldSelector;
@@ -123,7 +123,6 @@ class CachingIndexReader extends FilterI
      *                  when this index reader is constructed.
      * @throws IOException if an error occurs while reading from the index.
      */
-    @SuppressWarnings("unchecked")
     CachingIndexReader(IndexReader delegatee,
                        DocNumberCache cache,
                        boolean initCache)
@@ -139,7 +138,7 @@ class CachingIndexReader extends FilterI
         }
         // limit cache to 1% of maxDoc(), but at least 10.
         this.docNumber2id = Collections.synchronizedMap(
-                new LRUMap(Math.max(10, delegatee.maxDoc() / 100)));
+                new LRUMap<>(Math.max(10, delegatee.maxDoc() / 100)));
         this.termDocsCache = new TermDocsCache(delegatee, FieldNames.PROPERTIES);
     }
 

Modified: jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/DocNumberCache.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/DocNumberCache.java?rev=1905799&r1=1905798&r2=1905799&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/DocNumberCache.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/DocNumberCache.java Tue Dec  6 17:14:26 2022
@@ -16,7 +16,7 @@
  */
 package org.apache.jackrabbit.core.query.lucene;
 
-import org.apache.commons.collections.map.LRUMap;
+import org.apache.commons.collections4.map.LRUMap;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -48,7 +48,8 @@ final class DocNumberCache {
     /**
      * LRU Maps where key=uuid value=reader;docNumber
      */
-    private final LRUMap[] docNumbers = new LRUMap[CACHE_SEGMENTS];
+    @SuppressWarnings("unchecked")
+    private final LRUMap<String, Entry>[] docNumbers = new LRUMap[CACHE_SEGMENTS];
 
     /**
      * Timestamp of the last cache statistics log.
@@ -78,7 +79,7 @@ final class DocNumberCache {
             size = 0x40;
         }
         for (int i = 0; i < docNumbers.length; i++) {
-            docNumbers[i] = new LRUMap(size);
+            docNumbers[i] = new LRUMap<>(size);
         }
     }
 
@@ -92,9 +93,9 @@ final class DocNumberCache {
      * @param n the document number.
      */
     void put(String uuid, CachingIndexReader reader, int n) {
-        LRUMap cacheSegment = docNumbers[getSegmentIndex(uuid.charAt(0))];
+        LRUMap<String, Entry> cacheSegment = docNumbers[getSegmentIndex(uuid.charAt(0))];
         synchronized (cacheSegment) {
-            Entry e = (Entry) cacheSegment.get(uuid);
+            Entry e = cacheSegment.get(uuid);
             if (e != null) {
                 // existing entry
                 // ignore if reader is older than the one in entry
@@ -125,10 +126,10 @@ final class DocNumberCache {
      * @return cache entry or <code>null</code>.
      */
     Entry get(String uuid) {
-        LRUMap cacheSegment = docNumbers[getSegmentIndex(uuid.charAt(0))];
+        LRUMap<String, Entry> cacheSegment = docNumbers[getSegmentIndex(uuid.charAt(0))];
         Entry entry;
         synchronized (cacheSegment) {
-            entry = (Entry) cacheSegment.get(uuid);
+            entry = cacheSegment.get(uuid);
         }
         if (log.isInfoEnabled()) {
             accesses++;
@@ -143,7 +144,7 @@ final class DocNumberCache {
                 }
                 StringBuffer statistics = new StringBuffer();
                 int inUse = 0;
-                for (LRUMap docNumber : docNumbers) {
+                for (LRUMap<String, Entry> docNumber : docNumbers) {
                     inUse += docNumber.size();
                 }
                 statistics.append("size=").append(inUse);

Modified: jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/IndexingConfigurationImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/IndexingConfigurationImpl.java?rev=1905799&r1=1905798&r2=1905799&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/IndexingConfigurationImpl.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/IndexingConfigurationImpl.java Tue Dec  6 17:14:26 2022
@@ -29,7 +29,7 @@ import java.util.Properties;
 import javax.jcr.NamespaceException;
 import javax.jcr.RepositoryException;
 
-import org.apache.commons.collections.iterators.AbstractIteratorDecorator;
+import org.apache.commons.collections4.iterators.AbstractIteratorDecorator;
 import org.apache.jackrabbit.core.HierarchyManager;
 import org.apache.jackrabbit.core.HierarchyManagerImpl;
 import org.apache.jackrabbit.core.id.PropertyId;
@@ -982,13 +982,14 @@ public class IndexingConfigurationImpl
          *                evaluated.
          * @return expression result.
          */
+        @SuppressWarnings({ "rawtypes", "unchecked" })
         boolean evaluate(final NodeState context) {
             // get iterator along specified axis
             Iterator<NodeState> nodeStates;
             if (axis == SELF) {
                 nodeStates = Collections.singletonList(context).iterator();
             } else if (axis == CHILD) {
-                nodeStates = (Iterator<NodeState>) new AbstractIteratorDecorator(
+                nodeStates = new AbstractIteratorDecorator(
                         context.getChildNodeEntries().iterator()) {
                     public Object next() {
                         ChildNodeEntry cne =

Modified: jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/NodeTraversingQueryHits.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/NodeTraversingQueryHits.java?rev=1905799&r1=1905798&r2=1905799&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/NodeTraversingQueryHits.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/NodeTraversingQueryHits.java Tue Dec  6 17:14:26 2022
@@ -16,7 +16,7 @@
  */
 package org.apache.jackrabbit.core.query.lucene;
 
-import org.apache.commons.collections.iterators.IteratorChain;
+import org.apache.commons.collections4.iterators.IteratorChain;
 import org.apache.jackrabbit.core.NodeImpl;
 
 import javax.jcr.Node;
@@ -142,7 +142,7 @@ public class NodeTraversingQueryHits ext
         /**
          * Initializes the iterator chain once.
          */
-        @SuppressWarnings({"unchecked"})
+        @SuppressWarnings({"unchecked", "rawtypes"})
         private void init() {
             if (selfAndChildren == null) {
                 List<Iterator<Node>> allIterators = new ArrayList<Iterator<Node>>();

Modified: jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/VolatileIndex.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/VolatileIndex.java?rev=1905799&r1=1905798&r2=1905799&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/VolatileIndex.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/VolatileIndex.java Tue Dec  6 17:14:26 2022
@@ -16,7 +16,7 @@
  */
 package org.apache.jackrabbit.core.query.lucene;
 
-import org.apache.commons.collections.map.LinkedMap;
+import org.apache.commons.collections4.map.LinkedMap;
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.index.Term;
@@ -39,8 +39,7 @@ class VolatileIndex extends AbstractInde
     /**
      * Map of pending documents to add to the index
      */
-    @SuppressWarnings("unchecked")
-    private final Map<String, Document> pending = new LinkedMap();
+    private final Map<String, Document> pending = new LinkedMap<>();
 
     /**
      * Number of documents that are buffered before they are added to the index.

Modified: jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/authorization/AbstractCompiledPermissions.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/authorization/AbstractCompiledPermissions.java?rev=1905799&r1=1905798&r2=1905799&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/authorization/AbstractCompiledPermissions.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/authorization/AbstractCompiledPermissions.java Tue Dec  6 17:14:26 2022
@@ -16,7 +16,7 @@
  */
 package org.apache.jackrabbit.core.security.authorization;
 
-import org.apache.commons.collections.map.LRUMap;
+import org.apache.commons.collections4.map.LRUMap;
 import org.apache.jackrabbit.spi.Path;
 
 import javax.jcr.RepositoryException;
@@ -33,9 +33,8 @@ public abstract class AbstractCompiledPe
     private final Map<Path, Result> cache;
     private final Object monitor = new Object();
 
-    @SuppressWarnings("unchecked")
     protected AbstractCompiledPermissions() {
-        cache = new LRUMap(1000);
+        cache = new LRUMap<>(1000);
     }
 
     /**

Modified: jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/authorization/PrivilegeRegistry.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/authorization/PrivilegeRegistry.java?rev=1905799&r1=1905798&r2=1905799&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/authorization/PrivilegeRegistry.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/authorization/PrivilegeRegistry.java Tue Dec  6 17:14:26 2022
@@ -16,7 +16,8 @@
  */
 package org.apache.jackrabbit.core.security.authorization;
 
-import org.apache.commons.collections.map.ReferenceMap;
+import org.apache.commons.collections4.map.AbstractReferenceMap.ReferenceStrength;
+import org.apache.commons.collections4.map.ReferenceMap;
 import org.apache.jackrabbit.core.cluster.PrivilegeEventChannel;
 import org.apache.jackrabbit.core.cluster.PrivilegeEventListener;
 import org.apache.jackrabbit.spi.PrivilegeDefinition;
@@ -128,12 +129,10 @@ public final class PrivilegeRegistry imp
      */
     private static final String CUSTOM_PRIVILEGES_RESOURCE_NAME = "/privileges/custom_privileges.xml";
 
-    
     private final Map<Name, Definition> registeredPrivileges = new HashMap<Name, Definition>();
     private final Map<PrivilegeBits, Set<Name>> bitsToNames = new HashMap<PrivilegeBits, Set<Name>>();
 
-    @SuppressWarnings("unchecked")    
-    private final Map<Listener, Listener> listeners = Collections.synchronizedMap(new ReferenceMap(ReferenceMap.WEAK, ReferenceMap.WEAK));
+    private final Map<Listener, Listener> listeners = Collections.synchronizedMap(new ReferenceMap<>(ReferenceStrength.WEAK, ReferenceStrength.WEAK));
 
     private final NamespaceRegistry namespaceRegistry;
     private final CustomPrivilegeStore customPrivilegesStore;

Modified: jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/authorization/principalbased/EntriesCache.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/authorization/principalbased/EntriesCache.java?rev=1905799&r1=1905798&r2=1905799&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/authorization/principalbased/EntriesCache.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/authorization/principalbased/EntriesCache.java Tue Dec  6 17:14:26 2022
@@ -16,7 +16,7 @@
  */
 package org.apache.jackrabbit.core.security.authorization.principalbased;
 
-import org.apache.commons.collections.map.LRUMap;
+import org.apache.commons.collections4.map.LRUMap;
 import org.apache.jackrabbit.core.NodeImpl;
 import org.apache.jackrabbit.core.SessionImpl;
 import org.apache.jackrabbit.core.security.authorization.AccessControlConstants;
@@ -75,7 +75,7 @@ class EntriesCache extends AccessControl
 
         repPolicyName = systemSession.getJCRName(N_POLICY);
 
-        cache = new LRUMap(1000);
+        cache = new LRUMap<>(1000);
 
         ObservationManager observationMgr = systemSession.getWorkspace().getObservationManager();
         /*

Modified: jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/principal/AbstractPrincipalProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/principal/AbstractPrincipalProvider.java?rev=1905799&r1=1905798&r2=1905799&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/principal/AbstractPrincipalProvider.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/principal/AbstractPrincipalProvider.java Tue Dec  6 17:14:26 2022
@@ -16,7 +16,7 @@
  */
 package org.apache.jackrabbit.core.security.principal;
 
-import org.apache.commons.collections.map.LRUMap;
+import org.apache.commons.collections4.map.LRUMap;
 
 import java.security.Principal;
 import java.util.Properties;
@@ -47,7 +47,7 @@ public abstract class AbstractPrincipalP
     private boolean includeNegative;
 
     /** the principal cache */
-    private LRUMap cache;
+    private LRUMap<String, Principal> cache;
 
     /**
      * Create a new instance of <code>AbstractPrincipalProvider</code>.
@@ -126,7 +126,7 @@ public abstract class AbstractPrincipalP
         }
 
         int maxSize = Integer.parseInt(options.getProperty(MAXSIZE_KEY, "1000"));
-        cache = new LRUMap(maxSize);
+        cache = new LRUMap<>(maxSize);
         includeNegative = Boolean.parseBoolean(options.getProperty(NEGATIVE_ENTRY_KEY, "false"));
         
         initialized = true;

Modified: jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/principal/DefaultPrincipalProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/principal/DefaultPrincipalProvider.java?rev=1905799&r1=1905798&r2=1905799&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/principal/DefaultPrincipalProvider.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/principal/DefaultPrincipalProvider.java Tue Dec  6 17:14:26 2022
@@ -16,7 +16,7 @@
  */
 package org.apache.jackrabbit.core.security.principal;
 
-import org.apache.commons.collections.iterators.IteratorChain;
+import org.apache.commons.collections4.iterators.IteratorChain;
 import org.apache.jackrabbit.api.security.principal.PrincipalIterator;
 import org.apache.jackrabbit.api.security.principal.PrincipalManager;
 import org.apache.jackrabbit.api.security.user.Authorizable;
@@ -160,6 +160,7 @@ public class DefaultPrincipalProvider ex
     /**
      * @see PrincipalProvider#findPrincipals(String, int)
      */
+    @SuppressWarnings({ "rawtypes", "unchecked" })
     public PrincipalIterator findPrincipals(String simpleFilter, int searchType) {
         checkInitialized();
         switch (searchType) {

Modified: jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/ChangeLog.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/ChangeLog.java?rev=1905799&r1=1905798&r2=1905799&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/ChangeLog.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/ChangeLog.java Tue Dec  6 17:14:26 2022
@@ -18,7 +18,7 @@ package org.apache.jackrabbit.core.state
 
 import java.util.Map;
 
-import org.apache.commons.collections.map.LinkedMap;
+import org.apache.commons.collections4.map.LinkedMap;
 import org.apache.jackrabbit.core.id.ItemId;
 import org.apache.jackrabbit.core.id.NodeId;
 import org.apache.jackrabbit.core.version.VersionItemStateManager;
@@ -32,26 +32,22 @@ public class ChangeLog {
     /**
      * Added states
      */
-    @SuppressWarnings("unchecked")
-    private final Map<ItemId, ItemState> addedStates = (Map<ItemId, ItemState>) new LinkedMap();
+    private final Map<ItemId, ItemState> addedStates = new LinkedMap<>();
 
     /**
      * Modified states
      */
-    @SuppressWarnings("unchecked")
-    private final Map<ItemId, ItemState> modifiedStates = (Map<ItemId, ItemState>) new LinkedMap();
+    private final Map<ItemId, ItemState> modifiedStates = new LinkedMap<>();
 
     /**
      * Deleted states
      */
-    @SuppressWarnings("unchecked")
-    private final Map<ItemId, ItemState> deletedStates = (Map<ItemId, ItemState>) new LinkedMap();
+    private final Map<ItemId, ItemState> deletedStates = new LinkedMap<>();
 
     /**
      * Modified references
      */
-    @SuppressWarnings("unchecked")
-    private final Map<NodeId, NodeReferences> modifiedRefs = (Map<NodeId, NodeReferences>) new LinkedMap();
+    private final Map<NodeId, NodeReferences> modifiedRefs = new LinkedMap<>();
 
     private long updateSize;
 

Modified: jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/ChildNodeEntries.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/ChildNodeEntries.java?rev=1905799&r1=1905798&r2=1905799&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/ChildNodeEntries.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/ChildNodeEntries.java Tue Dec  6 17:14:26 2022
@@ -16,7 +16,7 @@
  */
 package org.apache.jackrabbit.core.state;
 
-import org.apache.commons.collections.map.LinkedMap;
+import org.apache.commons.collections4.map.LinkedMap;
 import org.apache.jackrabbit.core.id.NodeId;
 import org.apache.jackrabbit.core.util.EmptyLinkedMap;
 import org.apache.jackrabbit.spi.Name;

Modified: jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/ItemStateReferenceCache.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/ItemStateReferenceCache.java?rev=1905799&r1=1905798&r2=1905799&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/ItemStateReferenceCache.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/ItemStateReferenceCache.java Tue Dec  6 17:14:26 2022
@@ -16,7 +16,8 @@
  */
 package org.apache.jackrabbit.core.state;
 
-import org.apache.commons.collections.map.ReferenceMap;
+import org.apache.commons.collections4.map.AbstractReferenceMap.ReferenceStrength;
+import org.apache.commons.collections4.map.ReferenceMap;
 import org.apache.jackrabbit.core.id.ItemId;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -102,7 +103,7 @@ public class ItemStateReferenceCache imp
             // are generally recommended over weak references for caching
             // purposes, it seems that using weak references is safer here.
             segments[i] =
-                new ReferenceMap(ReferenceMap.HARD, ReferenceMap.WEAK);
+                new ReferenceMap<>(ReferenceStrength.HARD, ReferenceStrength.WEAK);
         }
     }
 

Modified: jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/MLRUItemStateCache.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/MLRUItemStateCache.java?rev=1905799&r1=1905798&r2=1905799&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/MLRUItemStateCache.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/MLRUItemStateCache.java Tue Dec  6 17:14:26 2022
@@ -18,7 +18,6 @@ package org.apache.jackrabbit.core.state
 
 import java.util.List;
 
-import org.apache.commons.collections.map.LinkedMap;
 import org.apache.jackrabbit.core.cache.CacheManager;
 import org.apache.jackrabbit.core.cache.ConcurrentCache;
 import org.apache.jackrabbit.core.id.ItemId;
@@ -27,7 +26,7 @@ import org.slf4j.LoggerFactory;
 
 /**
  * An <code>ItemStateCache</code> implementation that internally uses a
- * {@link LinkedMap} to maintain a cache of <code>ItemState</code> objects. The
+ * {@link ConcurrentCache} to maintain a cache of <code>ItemState</code> objects. The
  * cache uses a rough estimate of the memory consumption of the cached item
  * states for calculating the maximum number of entries. The oldest entries
  * are flushed once the cache size has exceeded a certain limit.

Modified: jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/XAItemStateManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/XAItemStateManager.java?rev=1905799&r1=1905798&r2=1905799&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/XAItemStateManager.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/XAItemStateManager.java Tue Dec  6 17:14:26 2022
@@ -24,8 +24,8 @@ import java.util.Map;
 import javax.jcr.PropertyType;
 import javax.jcr.ReferentialIntegrityException;
 
-import org.apache.commons.collections.Predicate;
-import org.apache.commons.collections.iterators.FilterIterator;
+import org.apache.commons.collections4.Predicate;
+import org.apache.commons.collections4.iterators.FilterIterator;
 import org.apache.jackrabbit.core.id.ItemId;
 import org.apache.jackrabbit.core.id.NodeId;
 import org.apache.jackrabbit.core.id.PropertyId;
@@ -60,7 +60,7 @@ public class XAItemStateManager extends
      * manager is in one of the {@link #prepare}, {@link #commit}, {@link
      * #rollback} methods.
      */
-    private final Map commitLogs = Collections.synchronizedMap(new IdentityHashMap());
+    private final Map<Thread, ChangeLog> commitLogs = Collections.synchronizedMap(new IdentityHashMap<>());
 
     /**
      * Current instance-local change log.
@@ -213,7 +213,7 @@ public class XAItemStateManager extends
      * change log was found.
      */
     public ChangeLog getChangeLog() {
-        ChangeLog changeLog = (ChangeLog) commitLogs.get(Thread.currentThread());
+        ChangeLog changeLog = commitLogs.get(Thread.currentThread());
         if (changeLog == null) {
             changeLog = txLog;
         }
@@ -443,12 +443,11 @@ public class XAItemStateManager extends
     private Iterable<PropertyState> filterReferenceProperties(
             final Iterable<ItemState> itemStates) {
         return new Iterable<PropertyState>() {
-            @SuppressWarnings("unchecked")
+            @SuppressWarnings({ "unchecked", "rawtypes" })
             public Iterator<PropertyState> iterator() {
                 return (Iterator<PropertyState>) new FilterIterator(
-                        itemStates.iterator(), new Predicate() {
-                    public boolean evaluate(Object object) {
-                        ItemState state = (ItemState) object;
+                        itemStates.iterator(), new Predicate<ItemState>() {
+                    public boolean evaluate(ItemState state) {
                         if (!state.isNode()) {
                             PropertyState prop = (PropertyState) state;
                             return prop.getType() == PropertyType.REFERENCE;

Modified: jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/util/EmptyLinkedMap.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/util/EmptyLinkedMap.java?rev=1905799&r1=1905798&r2=1905799&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/util/EmptyLinkedMap.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/util/EmptyLinkedMap.java Tue Dec  6 17:14:26 2022
@@ -16,7 +16,7 @@
  */
 package org.apache.jackrabbit.core.util;
 
-import org.apache.commons.collections.map.LinkedMap;
+import org.apache.commons.collections4.map.LinkedMap;
 
 import java.util.Map;
 import java.util.Set;
@@ -26,13 +26,14 @@ import java.util.Collections;
 /**
  * <code>EmptyLinkedMap</code> implements an empty unmodifiable {@link LinkedMap}.
  */
-public class EmptyLinkedMap extends LinkedMap {
+public class EmptyLinkedMap<K, V> extends LinkedMap<K, V> {
 
     private static final long serialVersionUID = -9165910643562370800L;
 
     /**
      * The only instance of this class.
      */
+    @SuppressWarnings("rawtypes")
     public static final LinkedMap INSTANCE = new EmptyLinkedMap();
 
     private EmptyLinkedMap() {
@@ -42,7 +43,7 @@ public class EmptyLinkedMap extends Link
     /**
      * @throws UnsupportedOperationException always.
      */
-    public Object remove(int i) {
+    public V remove(int i) {
         throw new UnsupportedOperationException();
     }
 
@@ -56,13 +57,14 @@ public class EmptyLinkedMap extends Link
     /**
      * @throws UnsupportedOperationException always.
      */
-    public Object put(Object o, Object o1) {
+    public V put(Object o, Object o1) {
         throw new UnsupportedOperationException();
     }
 
     /**
      * @throws UnsupportedOperationException always.
      */
+    @SuppressWarnings("rawtypes")
     public void putAll(Map map) {
         throw new UnsupportedOperationException();
     }
@@ -70,7 +72,7 @@ public class EmptyLinkedMap extends Link
     /**
      * @throws UnsupportedOperationException always.
      */
-    public Object remove(Object o) {
+    public V remove(Object o) {
         throw new UnsupportedOperationException();
     }
 
@@ -79,8 +81,8 @@ public class EmptyLinkedMap extends Link
      *
      * @return an unmodifiable empty set.
      */
-    public Set entrySet() {
-        return Collections.EMPTY_SET;
+    public Set<Map.Entry<K, V>> entrySet() {
+        return Collections.emptySet();
     }
 
     /**
@@ -88,8 +90,8 @@ public class EmptyLinkedMap extends Link
      *
      * @return an unmodifiable empty set.
      */
-    public Set keySet() {
-        return Collections.EMPTY_SET;
+    public Set<K> keySet() {
+        return Collections.emptySet();
     }
 
     /**
@@ -97,8 +99,8 @@ public class EmptyLinkedMap extends Link
      *
      * @return an unmodifiable empty collection.
      */
-    public Collection values() {
-        return Collections.EMPTY_LIST;
+    public Collection<V> values() {
+        return Collections.emptyList();
     }
 
     //----------------------------------------------------< Cloneable support >
@@ -108,7 +110,8 @@ public class EmptyLinkedMap extends Link
      *
      * @return {@link #INSTANCE}.
      */
-    public Object clone() {
+    @SuppressWarnings("unchecked")
+    public LinkedMap<K, V> clone() {
         return INSTANCE;
     }
 

Modified: jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionManagerImpl.java?rev=1905799&r1=1905798&r2=1905799&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionManagerImpl.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionManagerImpl.java Tue Dec  6 17:14:26 2022
@@ -29,7 +29,8 @@ import javax.jcr.Session;
 import javax.jcr.version.ActivityViolationException;
 import javax.jcr.version.VersionException;
 
-import org.apache.commons.collections.map.ReferenceMap;
+import org.apache.commons.collections4.map.AbstractReferenceMap.ReferenceStrength;
+import org.apache.commons.collections4.map.ReferenceMap;
 import org.apache.jackrabbit.core.SessionImpl;
 import org.apache.jackrabbit.core.cluster.UpdateEventChannel;
 import org.apache.jackrabbit.core.cluster.UpdateEventListener;
@@ -125,9 +126,8 @@ public class InternalVersionManagerImpl
     /**
      * Map of returned items. this is kept for invalidating
      */
-    @SuppressWarnings("unchecked")
     private final Map<ItemId, InternalVersionItem> versionItems =
-            new ReferenceMap(ReferenceMap.HARD, ReferenceMap.WEAK);
+            new ReferenceMap<>(ReferenceStrength.HARD, ReferenceStrength.WEAK);
 
     /**
      * Creates a new internal version manager

Modified: jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionItemStateProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionItemStateProvider.java?rev=1905799&r1=1905798&r2=1905799&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionItemStateProvider.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionItemStateProvider.java Tue Dec  6 17:14:26 2022
@@ -18,7 +18,8 @@ package org.apache.jackrabbit.core.versi
 
 import javax.jcr.RepositoryException;
 
-import org.apache.commons.collections.map.ReferenceMap;
+import org.apache.commons.collections4.map.AbstractReferenceMap.ReferenceStrength;
+import org.apache.commons.collections4.map.ReferenceMap;
 import org.apache.jackrabbit.core.id.ItemId;
 import org.apache.jackrabbit.core.id.NodeId;
 import org.apache.jackrabbit.core.state.ChangeLog;
@@ -55,7 +56,7 @@ class VersionItemStateProvider implement
     /**
      * Map of returned items. this is kept for invalidating
      */
-    private ReferenceMap items = new ReferenceMap(ReferenceMap.HARD, ReferenceMap.WEAK);
+    private ReferenceMap<ItemId, ItemState> items = new ReferenceMap<>(ReferenceStrength.HARD, ReferenceStrength.WEAK);
 
     /**
      * Creates a new version manager
@@ -118,7 +119,7 @@ class VersionItemStateProvider implement
      */
     public synchronized ItemState getItemState(ItemId id)
             throws NoSuchItemStateException, ItemStateException {
-        ItemState item = (ItemState) items.get(id);
+        ItemState item = items.get(id);
         if (item == null) {
             item = stateMgr.getItemState(id);
             items.put(id, item);

Modified: jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/virtual/AbstractVISProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/virtual/AbstractVISProvider.java?rev=1905799&r1=1905798&r2=1905799&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/virtual/AbstractVISProvider.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/virtual/AbstractVISProvider.java Tue Dec  6 17:14:26 2022
@@ -16,7 +16,8 @@
  */
 package org.apache.jackrabbit.core.virtual;
 
-import org.apache.commons.collections.map.ReferenceMap;
+import org.apache.commons.collections4.map.AbstractReferenceMap.ReferenceStrength;
+import org.apache.commons.collections4.map.ReferenceMap;
 import org.apache.jackrabbit.core.id.ItemId;
 import org.apache.jackrabbit.core.id.NodeId;
 import org.apache.jackrabbit.core.id.PropertyId;
@@ -69,12 +70,11 @@ public abstract class AbstractVISProvide
     /**
      * the cache node states. key=ItemId, value=ItemState
      */
-    @SuppressWarnings("unchecked")
     private final Map<NodeId, NodeState> nodes =
         // Using soft references instead of weak ones seems to have
         // some unexpected performance consequences, so for now it's
         // better to stick with weak references.
-        new ReferenceMap(ReferenceMap.HARD, ReferenceMap.WEAK);
+        new ReferenceMap<>(ReferenceStrength.HARD, ReferenceStrength.WEAK);
 
     /**
      * Listeners (weak references)

Modified: jackrabbit/branches/2.20/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/TestRepository.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/TestRepository.java?rev=1905799&r1=1905798&r2=1905799&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/TestRepository.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/TestRepository.java Tue Dec  6 17:14:26 2022
@@ -24,7 +24,7 @@ import javax.jcr.Repository;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 
-import org.apache.commons.collections.BeanMap;
+import org.apache.commons.beanutils.BeanMap;
 import org.apache.jackrabbit.commons.repository.ProxyRepository;
 import org.apache.jackrabbit.commons.repository.RepositoryFactory;
 import org.apache.jackrabbit.core.config.ConfigurationException;

Modified: jackrabbit/branches/2.20/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/integration/random/operation/OperationSequence.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/integration/random/operation/OperationSequence.java?rev=1905799&r1=1905798&r2=1905799&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/integration/random/operation/OperationSequence.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/integration/random/operation/OperationSequence.java Tue Dec  6 17:14:26 2022
@@ -16,7 +16,7 @@
  */
 package org.apache.jackrabbit.core.integration.random.operation;
 
-import org.apache.commons.collections.iterators.IteratorChain;
+import org.apache.commons.collections4.iterators.IteratorChain;
 import org.apache.jackrabbit.commons.iterator.NodeIteratorAdapter;
 
 import javax.jcr.NodeIterator;
@@ -31,13 +31,14 @@ public class OperationSequence extends O
 
     private final Operation[] ops;
 
-    public OperationSequence(Session s, List operations) {
+    public OperationSequence(Session s, List<Operation> operations) {
         super(s, "/");
-        this.ops = (Operation[]) operations.toArray(new Operation[operations.size()]);
+        this.ops = operations.toArray(new Operation[operations.size()]);
     }
 
+    @SuppressWarnings("unchecked")
     public NodeIterator execute() throws Exception {
-        IteratorChain chain = new IteratorChain();
+        IteratorChain<NodeIterator> chain = new IteratorChain<>();
         for (int i = 0; i < ops.length; i++) {
             chain.addIterator(ops[i].execute());
         }