You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ma...@apache.org on 2013/07/24 12:23:01 UTC

svn commit: r1506481 - in /commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/impl: LinkedBlockingDeque.java PooledObject.java

Author: markt
Date: Wed Jul 24 10:23:01 2013
New Revision: 1506481

URL: http://svn.apache.org/r1506481
Log:
Decouple PooledObject from the Deque implementation (required for some refactoring to follow)

Modified:
    commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/impl/LinkedBlockingDeque.java
    commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/impl/PooledObject.java

Modified: commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/impl/LinkedBlockingDeque.java
URL: http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/impl/LinkedBlockingDeque.java?rev=1506481&r1=1506480&r2=1506481&view=diff
==============================================================================
--- commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/impl/LinkedBlockingDeque.java (original)
+++ commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/impl/LinkedBlockingDeque.java Wed Jul 24 10:23:01 2013
@@ -16,8 +16,10 @@
  */
 package org.apache.commons.pool2.impl;
 
+import java.io.Serializable;
 import java.util.AbstractQueue;
 import java.util.Collection;
+import java.util.Deque;
 import java.util.Iterator;
 import java.util.NoSuchElementException;
 import java.util.concurrent.TimeUnit;
@@ -55,7 +57,7 @@ import java.util.concurrent.locks.Reentr
  *       Commons Pool.
  */
 class LinkedBlockingDeque<E> extends AbstractQueue<E>
-        implements java.io.Serializable {
+        implements Deque<E>, Serializable {
 
     /*
      * Implemented as a simple doubly-linked list protected by a
@@ -303,6 +305,7 @@ class LinkedBlockingDeque<E> extends Abs
      * @throws IllegalStateException
      * @throws NullPointerException
      */
+    @Override
     public void addFirst(E e) {
         if (!offerFirst(e))
             throw new IllegalStateException("Deque full");
@@ -312,6 +315,7 @@ class LinkedBlockingDeque<E> extends Abs
      * @throws IllegalStateException
      * @throws NullPointerException
      */
+    @Override
     public void addLast(E e) {
         if (!offerLast(e))
             throw new IllegalStateException("Deque full");
@@ -320,6 +324,7 @@ class LinkedBlockingDeque<E> extends Abs
     /**
      * @throws NullPointerException
      */
+    @Override
     public boolean offerFirst(E e) {
         if (e == null) throw new NullPointerException();
         final ReentrantLock lock = this.lock;
@@ -334,6 +339,7 @@ class LinkedBlockingDeque<E> extends Abs
     /**
      * @throws NullPointerException
      */
+    @Override
     public boolean offerLast(E e) {
         if (e == null) throw new NullPointerException();
         final ReentrantLock lock = this.lock;
@@ -424,6 +430,7 @@ class LinkedBlockingDeque<E> extends Abs
     /**
      * @throws NoSuchElementException
      */
+    @Override
     public E removeFirst() {
         E x = pollFirst();
         if (x == null) throw new NoSuchElementException();
@@ -433,12 +440,14 @@ class LinkedBlockingDeque<E> extends Abs
     /**
      * @throws NoSuchElementException
      */
+    @Override
     public E removeLast() {
         E x = pollLast();
         if (x == null) throw new NoSuchElementException();
         return x;
     }
 
+    @Override
     public E pollFirst() {
         final ReentrantLock lock = this.lock;
         lock.lock();
@@ -449,6 +458,7 @@ class LinkedBlockingDeque<E> extends Abs
         }
     }
 
+    @Override
     public E pollLast() {
         final ReentrantLock lock = this.lock;
         lock.lock();
@@ -524,6 +534,7 @@ class LinkedBlockingDeque<E> extends Abs
     /**
      * @throws NoSuchElementException
      */
+    @Override
     public E getFirst() {
         E x = peekFirst();
         if (x == null) throw new NoSuchElementException();
@@ -533,12 +544,14 @@ class LinkedBlockingDeque<E> extends Abs
     /**
      * @throws NoSuchElementException
      */
+    @Override
     public E getLast() {
         E x = peekLast();
         if (x == null) throw new NoSuchElementException();
         return x;
     }
 
+    @Override
     public E peekFirst() {
         final ReentrantLock lock = this.lock;
         lock.lock();
@@ -549,6 +562,7 @@ class LinkedBlockingDeque<E> extends Abs
         }
     }
 
+    @Override
     public E peekLast() {
         final ReentrantLock lock = this.lock;
         lock.lock();
@@ -559,6 +573,7 @@ class LinkedBlockingDeque<E> extends Abs
         }
     }
 
+    @Override
     public boolean removeFirstOccurrence(Object o) {
         if (o == null) return false;
         final ReentrantLock lock = this.lock;
@@ -576,6 +591,7 @@ class LinkedBlockingDeque<E> extends Abs
         }
     }
 
+    @Override
     public boolean removeLastOccurrence(Object o) {
         if (o == null) return false;
         final ReentrantLock lock = this.lock;
@@ -747,6 +763,7 @@ class LinkedBlockingDeque<E> extends Abs
      * @throws IllegalStateException
      * @throws NullPointerException
      */
+    @Override
     public void push(E e) {
         addFirst(e);
     }
@@ -754,6 +771,7 @@ class LinkedBlockingDeque<E> extends Abs
     /**
      * @throws NoSuchElementException
      */
+    @Override
     public E pop() {
         return removeFirst();
     }
@@ -1007,6 +1025,7 @@ class LinkedBlockingDeque<E> extends Abs
      * construction of the iterator, and may (but is not guaranteed to)
      * reflect any modifications subsequent to construction.
      */
+    @Override
     public Iterator<E> descendingIterator() {
         return new DescendingItr();
     }

Modified: commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/impl/PooledObject.java
URL: http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/impl/PooledObject.java?rev=1506481&r1=1506480&r2=1506481&view=diff
==============================================================================
--- commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/impl/PooledObject.java (original)
+++ commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/impl/PooledObject.java Wed Jul 24 10:23:01 2013
@@ -19,6 +19,7 @@ package org.apache.commons.pool2.impl;
 import java.io.PrintWriter;
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.Deque;
 
 /**
  * This wrapper is used to track the additional information, such as state, for
@@ -47,7 +48,7 @@ public class PooledObject<T> implements 
         createdBy = null;
         logWriter = null;
     }
-    
+
     public PooledObject(T object, PrintWriter logWriter) {
         this.object = object;
         this.logWriter = logWriter;
@@ -103,14 +104,14 @@ public class PooledObject<T> implements 
     public long getLastReturnTime() {
         return lastReturnTime;
     }
-    
+
     /**
      * Return an estimate of the last time this object was used.  If the class
-     * of the pooled object implements {@link TrackedUse}, what is returned is 
+     * of the pooled object implements {@link TrackedUse}, what is returned is
      * the maximum of {@link TrackedUse#getLastUsed()} and
      * {@link #getLastBorrowTime()}; otherwise this method gives the same
      * value as {@link #getLastBorrowTime()}.
-     * 
+     *
      * @return the last time this object was used
      */
     public long getLastUsed() {
@@ -184,7 +185,7 @@ public class PooledObject<T> implements 
     }
 
     public synchronized boolean endEvictionTest(
-            LinkedBlockingDeque<PooledObject<T>> idleQueue) {
+            Deque<PooledObject<T>> idleQueue) {
         if (state == PooledObjectState.EVICTION) {
             state = PooledObjectState.IDLE;
             return true;
@@ -241,7 +242,7 @@ public class PooledObject<T> implements 
     public synchronized void invalidate() {
         state = PooledObjectState.INVALID;
     }
-    
+
     /**
      * Prints the stack trace of the code that created this pooled object to
      * the configured log writer.  Does nothing of no PrintWriter was supplied
@@ -252,7 +253,7 @@ public class PooledObject<T> implements 
             createdBy.printStackTrace(logWriter);
         }
     }
-    
+
     /**
      * Returns the state of this object.
      * @return state
@@ -260,21 +261,21 @@ public class PooledObject<T> implements 
     public synchronized PooledObjectState getState() {
         return state;
     }
-    
+
     /**
      * Marks the pooled object as abandoned.
      */
     public synchronized void markAbandoned() {
         state = PooledObjectState.ABANDONED;
     }
-    
+
     /**
      * Marks the object as returning to the pool.
      */
     public synchronized void markReturning() {
         state = PooledObjectState.RETURNING;
     }
-    
+
     static class AbandonedObjectException extends Exception {
 
         private static final long serialVersionUID = 7398692158058772916L;