You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ra...@apache.org on 2007/10/08 19:47:47 UTC

svn commit: r582910 - /activemq/trunk/activemq-core/src/main/java/org/apache/activemq/kaha/impl/index/VMIndexLinkedList.java

Author: rajdavies
Date: Mon Oct  8 10:47:47 2007
New Revision: 582910

URL: http://svn.apache.org/viewvc?rev=582910&view=rev
Log:
quick fix for npe

Modified:
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/kaha/impl/index/VMIndexLinkedList.java

Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/kaha/impl/index/VMIndexLinkedList.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/kaha/impl/index/VMIndexLinkedList.java?rev=582910&r1=582909&r2=582910&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/kaha/impl/index/VMIndexLinkedList.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/kaha/impl/index/VMIndexLinkedList.java Mon Oct  8 10:47:47 2007
@@ -36,7 +36,7 @@
         root.prev = root;
     }
 
-    public IndexItem getRoot() {
+    public synchronized IndexItem getRoot() {
         return root;
     }
 
@@ -45,7 +45,7 @@
      * 
      * @see org.apache.activemq.kaha.impl.IndexLinkedList#getFirst()
      */
-    public IndexItem getFirst() {
+    public synchronized IndexItem getFirst() {
         if (size == 0) {
             return null;
         }
@@ -57,7 +57,7 @@
      * 
      * @see org.apache.activemq.kaha.impl.IndexLinkedList#getLast()
      */
-    public IndexItem getLast() {
+    public synchronized IndexItem getLast() {
         if (size == 0) {
             return null;
         }
@@ -69,7 +69,7 @@
      * 
      * @see org.apache.activemq.kaha.impl.IndexLinkedList#removeFirst()
      */
-    public StoreEntry removeFirst() {
+    public synchronized StoreEntry removeFirst() {
         if (size == 0) {
             return null;
         }
@@ -83,7 +83,7 @@
      * 
      * @see org.apache.activemq.kaha.impl.IndexLinkedList#removeLast()
      */
-    public Object removeLast() {
+    public synchronized Object removeLast() {
         if (size == 0) {
             return null;
         }
@@ -97,7 +97,7 @@
      * 
      * @see org.apache.activemq.kaha.impl.IndexLinkedList#addFirst(org.apache.activemq.kaha.impl.IndexItem)
      */
-    public void addFirst(IndexItem item) {
+    public synchronized void addFirst(IndexItem item) {
         addBefore(item, root.next);
     }
 
@@ -106,7 +106,7 @@
      * 
      * @see org.apache.activemq.kaha.impl.IndexLinkedList#addLast(org.apache.activemq.kaha.impl.IndexItem)
      */
-    public void addLast(IndexItem item) {
+    public synchronized void addLast(IndexItem item) {
         addBefore(item, root);
     }
 
@@ -115,7 +115,7 @@
      * 
      * @see org.apache.activemq.kaha.impl.IndexLinkedList#size()
      */
-    public int size() {
+    public synchronized int size() {
         return size;
     }
 
@@ -124,7 +124,7 @@
      * 
      * @see org.apache.activemq.kaha.impl.IndexLinkedList#isEmpty()
      */
-    public boolean isEmpty() {
+    public synchronized boolean isEmpty() {
         return size == 0;
     }
 
@@ -133,7 +133,7 @@
      * 
      * @see org.apache.activemq.kaha.impl.IndexLinkedList#add(org.apache.activemq.kaha.impl.IndexItem)
      */
-    public boolean add(IndexItem item) {
+    public synchronized boolean add(IndexItem item) {
         addBefore(item, root);
         return true;
     }
@@ -143,7 +143,7 @@
      * 
      * @see org.apache.activemq.kaha.impl.IndexLinkedList#clear()
      */
-    public void clear() {
+    public synchronized void clear() {
         root.next = root;
         root.prev = root;
         size = 0;
@@ -155,7 +155,7 @@
      * 
      * @see org.apache.activemq.kaha.impl.IndexLinkedList#get(int)
      */
-    public IndexItem get(int index) {
+    public synchronized IndexItem get(int index) {
         return entry(index);
     }
 
@@ -165,7 +165,7 @@
      * @see org.apache.activemq.kaha.impl.IndexLinkedList#add(int,
      *      org.apache.activemq.kaha.impl.IndexItem)
      */
-    public void add(int index, IndexItem element) {
+    public synchronized void add(int index, IndexItem element) {
         addBefore(element, index == size ? root : entry(index));
     }
 
@@ -174,7 +174,7 @@
      * 
      * @see org.apache.activemq.kaha.impl.IndexLinkedList#remove(int)
      */
-    public Object remove(int index) {
+    public synchronized Object remove(int index) {
         IndexItem e = entry(index);
         remove(e);
         return e;
@@ -206,7 +206,7 @@
      * 
      * @see org.apache.activemq.kaha.impl.IndexLinkedList#indexOf(org.apache.activemq.kaha.impl.IndexItem)
      */
-    public int indexOf(StoreEntry o) {
+    public synchronized int indexOf(StoreEntry o) {
         int index = 0;
         for (IndexItem e = root.next; e != root; e = e.next) {
             if (o == e) {
@@ -222,7 +222,7 @@
      * 
      * @see org.apache.activemq.kaha.impl.IndexLinkedList#getNextEntry(org.apache.activemq.kaha.impl.IndexItem)
      */
-    public IndexItem getNextEntry(IndexItem entry) {
+    public synchronized IndexItem getNextEntry(IndexItem entry) {
         return entry.next != root ? entry.next : null;
     }
 
@@ -231,7 +231,7 @@
      * 
      * @see org.apache.activemq.kaha.impl.IndexLinkedList#getPrevEntry(org.apache.activemq.kaha.impl.IndexItem)
      */
-    public IndexItem getPrevEntry(IndexItem entry) {
+    public synchronized IndexItem getPrevEntry(IndexItem entry) {
         return entry.prev != root ? entry.prev : null;
     }
 
@@ -241,7 +241,7 @@
      * @see org.apache.activemq.kaha.impl.IndexLinkedList#addBefore(org.apache.activemq.kaha.impl.IndexItem,
      *      org.apache.activemq.kaha.impl.IndexItem)
      */
-    public void addBefore(IndexItem insert, IndexItem e) {
+    public synchronized void addBefore(IndexItem insert, IndexItem e) {
         insert.next = e;
         insert.prev = e.prev;
         insert.prev.next = insert;
@@ -254,10 +254,16 @@
      * 
      * @see org.apache.activemq.kaha.impl.IndexLinkedList#remove(org.apache.activemq.kaha.impl.IndexItem)
      */
-    public void remove(IndexItem e) {
-        if (e == root) {
+    public synchronized void remove(IndexItem e) {
+        if (e == root || e.equals(root)) {
             return;
         }
+        if (e.prev==null){
+        	e.prev=root;
+        }
+        if (e.next==null){
+        	e.next=root;
+        }
         e.prev.next = e.next;
         e.next.prev = e.prev;
         size--;
@@ -266,7 +272,7 @@
     /**
      * @return clone
      */
-    public Object clone() {
+    public synchronized Object clone() {
         IndexLinkedList clone = new VMIndexLinkedList(this.root);
         for (IndexItem e = root.next; e != root; e = e.next) {
             clone.add(e);
@@ -274,7 +280,7 @@
         return clone;
     }
 
-    public StoreEntry getEntry(StoreEntry current) {
+    public synchronized StoreEntry getEntry(StoreEntry current) {
         return current;
     }
 
@@ -283,7 +289,7 @@
      * 
      * @param current
      */
-    public StoreEntry refreshEntry(StoreEntry current) {
+    public synchronized StoreEntry refreshEntry(StoreEntry current) {
         return current;
     }
 }