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 21:02:44 UTC
svn commit: r1905815 - in /jackrabbit/branches/2.20: ./ jackrabbit-jcr2spi/pom.xml jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/LinkedEntries.java
Author: reschke
Date: Tue Dec 6 21:02:44 2022
New Revision: 1905815
URL: http://svn.apache.org/viewvc?rev=1905815&view=rev
Log:
JCR-4862: jackrabbit-jcr2spi: Upgrade LinkedEntries to commons-collections4 (based on Roman Kovarik's work) (merged r1904802 into 2.20)
Modified:
jackrabbit/branches/2.20/ (props changed)
jackrabbit/branches/2.20/jackrabbit-jcr2spi/pom.xml
jackrabbit/branches/2.20/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/LinkedEntries.java
Propchange: jackrabbit/branches/2.20/
------------------------------------------------------------------------------
Merged /jackrabbit/trunk:r1904802
Modified: jackrabbit/branches/2.20/jackrabbit-jcr2spi/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-jcr2spi/pom.xml?rev=1905815&r1=1905814&r2=1905815&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-jcr2spi/pom.xml (original)
+++ jackrabbit/branches/2.20/jackrabbit-jcr2spi/pom.xml Tue Dec 6 21:02:44 2022
@@ -124,10 +124,6 @@
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
- <groupId>commons-collections</groupId>
- <artifactId>commons-collections</artifactId>
- </dependency>
- <dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
</dependency>
Modified: jackrabbit/branches/2.20/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/LinkedEntries.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/LinkedEntries.java?rev=1905815&r1=1905814&r2=1905815&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/LinkedEntries.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/LinkedEntries.java Tue Dec 6 21:02:44 2022
@@ -22,7 +22,7 @@ import java.util.ConcurrentModificationE
import java.util.Iterator;
import java.util.NoSuchElementException;
-import org.apache.commons.collections.list.AbstractLinkedList;
+import org.apache.commons.collections4.list.AbstractLinkedList;
import org.apache.jackrabbit.spi.Name;
import org.apache.jackrabbit.spi.Path;
@@ -30,8 +30,12 @@ import org.apache.jackrabbit.spi.Path;
* An implementation of a linked list which provides access to the internal
* LinkNode which links the entries of the list.
*/
+@SuppressWarnings("rawtypes")
class LinkedEntries extends AbstractLinkedList {
+ private Node<?> header;
+ private volatile int modCount;
+
private final EntryFactory factory;
private final NodeEntry parent;
@@ -42,6 +46,26 @@ class LinkedEntries extends AbstractLink
init();
}
+ @SuppressWarnings("unchecked")
+ @Override
+ protected void addNode(Node nodeToInsert, Node insertBeforeNode) {
+ super.addNode(nodeToInsert, insertBeforeNode);
+ modCount++;
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ protected void removeNode(Node node) {
+ super.removeNode(node);
+ modCount++;
+ }
+
+ @Override
+ protected void removeAllNodes() {
+ super.removeAllNodes();
+ modCount++;
+ }
+
/**
* Returns the matching <code>LinkNode</code> from a list or a single
* <code>LinkNode</code>. This method will return <code>null</code>
@@ -76,7 +100,7 @@ class LinkedEntries extends AbstractLink
*/
LinkedEntries.LinkNode add(NodeEntry cne, int index) {
LinkedEntries.LinkNode ln = new LinkedEntries.LinkNode(cne, index);
- addNode(ln, header);
+ addNode(ln, getHeader());
return ln;
}
@@ -95,7 +119,7 @@ class LinkedEntries extends AbstractLink
if (insertAfter == null) {
// insert at the beginning
newNode = new LinkedEntries.LinkNode(cne, index);
- addNode(newNode, header);
+ addNode(newNode, getHeader());
} else if (insertAfter.getNextLinkNode() == null) {
newNode = add(cne, index);
} else {
@@ -130,7 +154,7 @@ class LinkedEntries extends AbstractLink
void reorderNode(LinkedEntries.LinkNode insert, LinkedEntries.LinkNode before) {
removeNode(insert);
if (before == null) {
- addNode(insert, header);
+ addNode(insert, getHeader());
} else {
addNode(insert, before);
}
@@ -155,7 +179,8 @@ class LinkedEntries extends AbstractLink
*/
@Override
protected Node createHeaderNode() {
- return new LinkedEntries.LinkNode();
+ header = new LinkedEntries.LinkNode();
+ return header;
}
/**
@@ -178,6 +203,7 @@ class LinkedEntries extends AbstractLink
qName = null;
}
+ @SuppressWarnings("unchecked")
protected LinkNode(Object value, int index) {
// add soft reference from linkNode to the NodeEntry (value)
// unless the entry is a SNSibling. TODO: review again.
@@ -190,6 +216,7 @@ class LinkedEntries extends AbstractLink
throw new UnsupportedOperationException("Not implemented");
}
+ @SuppressWarnings("unchecked")
@Override
protected Object getValue() {
Object val = super.getValue();
@@ -203,7 +230,7 @@ class LinkedEntries extends AbstractLink
}
// if the nodeEntry has been g-collected in the mean time
// create a new NodeEntry in order to avoid returning null.
- if (ne == null && this != header) {
+ if (ne == null && this != getHeader()) {
ne = factory.createNodeEntry(parent, qName, null);
super.setValue(new SoftReference<NodeEntry>(ne));
}
@@ -242,7 +269,7 @@ class LinkedEntries extends AbstractLink
//----------------------------------------------------------------------
private class LinkNodeIterator implements Iterator<LinkedEntries.LinkNode> {
- private LinkedEntries.LinkNode next = ((LinkedEntries.LinkNode) header).getNextLinkNode();
+ private LinkedEntries.LinkNode next = getHeader().getNextLinkNode();
private final int expectedModCount = modCount;
public boolean hasNext() {