You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2014/09/02 17:34:40 UTC
svn commit: r1622035 - in /commons/proper/pool/trunk/src:
main/java/org/apache/commons/pool2/impl/LinkedBlockingDeque.java
test/java/org/apache/commons/pool2/MethodCall.java
test/java/org/apache/commons/pool2/impl/TestAbandonedObjectPool.java
Author: ggregory
Date: Tue Sep 2 15:34:40 2014
New Revision: 1622035
URL: http://svn.apache.org/r1622035
Log:
Always use blocks.
Modified:
commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/impl/LinkedBlockingDeque.java
commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/MethodCall.java
commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestAbandonedObjectPool.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=1622035&r1=1622034&r2=1622035&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 Tue Sep 2 15:34:40 2014
@@ -193,7 +193,9 @@ class LinkedBlockingDeque<E> extends Abs
* @throws IllegalArgumentException if {@code capacity} is less than 1
*/
public LinkedBlockingDeque(int capacity, boolean fairness) {
- if (capacity <= 0) throw new IllegalArgumentException();
+ if (capacity <= 0) {
+ throw new IllegalArgumentException();
+ }
this.capacity = capacity;
lock = new InterruptibleReentrantLock(fairness);
notEmpty = lock.newCondition();
@@ -215,10 +217,12 @@ class LinkedBlockingDeque<E> extends Abs
lock.lock(); // Never contended, but necessary for visibility
try {
for (E e : c) {
- if (e == null)
+ if (e == null) {
throw new NullPointerException();
- if (!linkLast(e))
+ }
+ if (!linkLast(e)) {
throw new IllegalStateException("Deque full");
+ }
}
} finally {
lock.unlock();
@@ -237,15 +241,17 @@ class LinkedBlockingDeque<E> extends Abs
*/
private boolean linkFirst(E e) {
// assert lock.isHeldByCurrentThread();
- if (count >= capacity)
+ if (count >= capacity) {
return false;
+ }
Node<E> f = first;
Node<E> x = new Node<E>(e, null, f);
first = x;
- if (last == null)
+ if (last == null) {
last = x;
- else
+ } else {
f.prev = x;
+ }
++count;
notEmpty.signal();
return true;
@@ -260,15 +266,17 @@ class LinkedBlockingDeque<E> extends Abs
*/
private boolean linkLast(E e) {
// assert lock.isHeldByCurrentThread();
- if (count >= capacity)
+ if (count >= capacity) {
return false;
+ }
Node<E> l = last;
Node<E> x = new Node<E>(e, l, null);
last = x;
- if (first == null)
+ if (first == null) {
first = x;
- else
+ } else {
l.next = x;
+ }
++count;
notEmpty.signal();
return true;
@@ -282,17 +290,19 @@ class LinkedBlockingDeque<E> extends Abs
private E unlinkFirst() {
// assert lock.isHeldByCurrentThread();
Node<E> f = first;
- if (f == null)
+ if (f == null) {
return null;
+ }
Node<E> n = f.next;
E item = f.item;
f.item = null;
f.next = f; // help GC
first = n;
- if (n == null)
+ if (n == null) {
last = null;
- else
+ } else {
n.prev = null;
+ }
--count;
notFull.signal();
return item;
@@ -306,17 +316,19 @@ class LinkedBlockingDeque<E> extends Abs
private E unlinkLast() {
// assert lock.isHeldByCurrentThread();
Node<E> l = last;
- if (l == null)
+ if (l == null) {
return null;
+ }
Node<E> p = l.prev;
E item = l.item;
l.item = null;
l.prev = l; // help GC
last = p;
- if (p == null)
+ if (p == null) {
first = null;
- else
+ } else {
p.next = null;
+ }
--count;
notFull.signal();
return item;
@@ -353,8 +365,9 @@ class LinkedBlockingDeque<E> extends Abs
*/
@Override
public void addFirst(E e) {
- if (!offerFirst(e))
+ if (!offerFirst(e)) {
throw new IllegalStateException("Deque full");
+ }
}
/**
@@ -362,8 +375,9 @@ class LinkedBlockingDeque<E> extends Abs
*/
@Override
public void addLast(E e) {
- if (!offerLast(e))
+ if (!offerLast(e)) {
throw new IllegalStateException("Deque full");
+ }
}
/**
@@ -371,7 +385,9 @@ class LinkedBlockingDeque<E> extends Abs
*/
@Override
public boolean offerFirst(E e) {
- if (e == null) throw new NullPointerException();
+ if (e == null) {
+ throw new NullPointerException();
+ }
lock.lock();
try {
return linkFirst(e);
@@ -385,7 +401,9 @@ class LinkedBlockingDeque<E> extends Abs
*/
@Override
public boolean offerLast(E e) {
- if (e == null) throw new NullPointerException();
+ if (e == null) {
+ throw new NullPointerException();
+ }
lock.lock();
try {
return linkLast(e);
@@ -404,11 +422,14 @@ class LinkedBlockingDeque<E> extends Abs
* @throws InterruptedException
*/
public void putFirst(E e) throws InterruptedException {
- if (e == null) throw new NullPointerException();
+ if (e == null) {
+ throw new NullPointerException();
+ }
lock.lock();
try {
- while (!linkFirst(e))
+ while (!linkFirst(e)) {
notFull.await();
+ }
} finally {
lock.unlock();
}
@@ -424,11 +445,14 @@ class LinkedBlockingDeque<E> extends Abs
* @throws InterruptedException
*/
public void putLast(E e) throws InterruptedException {
- if (e == null) throw new NullPointerException();
+ if (e == null) {
+ throw new NullPointerException();
+ }
lock.lock();
try {
- while (!linkLast(e))
+ while (!linkLast(e)) {
notFull.await();
+ }
} finally {
lock.unlock();
}
@@ -449,13 +473,16 @@ class LinkedBlockingDeque<E> extends Abs
*/
public boolean offerFirst(E e, long timeout, TimeUnit unit)
throws InterruptedException {
- if (e == null) throw new NullPointerException();
+ if (e == null) {
+ throw new NullPointerException();
+ }
long nanos = unit.toNanos(timeout);
lock.lockInterruptibly();
try {
while (!linkFirst(e)) {
- if (nanos <= 0)
+ if (nanos <= 0) {
return false;
+ }
nanos = notFull.awaitNanos(nanos);
}
return true;
@@ -479,13 +506,16 @@ class LinkedBlockingDeque<E> extends Abs
*/
public boolean offerLast(E e, long timeout, TimeUnit unit)
throws InterruptedException {
- if (e == null) throw new NullPointerException();
+ if (e == null) {
+ throw new NullPointerException();
+ }
long nanos = unit.toNanos(timeout);
lock.lockInterruptibly();
try {
while (!linkLast(e)) {
- if (nanos <= 0)
+ if (nanos <= 0) {
return false;
+ }
nanos = notFull.awaitNanos(nanos);
}
return true;
@@ -500,7 +530,9 @@ class LinkedBlockingDeque<E> extends Abs
@Override
public E removeFirst() {
E x = pollFirst();
- if (x == null) throw new NoSuchElementException();
+ if (x == null) {
+ throw new NoSuchElementException();
+ }
return x;
}
@@ -510,7 +542,9 @@ class LinkedBlockingDeque<E> extends Abs
@Override
public E removeLast() {
E x = pollLast();
- if (x == null) throw new NoSuchElementException();
+ if (x == null) {
+ throw new NoSuchElementException();
+ }
return x;
}
@@ -545,8 +579,9 @@ class LinkedBlockingDeque<E> extends Abs
lock.lock();
try {
E x;
- while ( (x = unlinkFirst()) == null)
+ while ( (x = unlinkFirst()) == null) {
notEmpty.await();
+ }
return x;
} finally {
lock.unlock();
@@ -564,8 +599,9 @@ class LinkedBlockingDeque<E> extends Abs
lock.lock();
try {
E x;
- while ( (x = unlinkLast()) == null)
+ while ( (x = unlinkLast()) == null) {
notEmpty.await();
+ }
return x;
} finally {
lock.unlock();
@@ -589,8 +625,9 @@ class LinkedBlockingDeque<E> extends Abs
try {
E x;
while ( (x = unlinkFirst()) == null) {
- if (nanos <= 0)
+ if (nanos <= 0) {
return null;
+ }
nanos = notEmpty.awaitNanos(nanos);
}
return x;
@@ -616,8 +653,9 @@ class LinkedBlockingDeque<E> extends Abs
try {
E x;
while ( (x = unlinkLast()) == null) {
- if (nanos <= 0)
+ if (nanos <= 0) {
return null;
+ }
nanos = notEmpty.awaitNanos(nanos);
}
return x;
@@ -632,7 +670,9 @@ class LinkedBlockingDeque<E> extends Abs
@Override
public E getFirst() {
E x = peekFirst();
- if (x == null) throw new NoSuchElementException();
+ if (x == null) {
+ throw new NoSuchElementException();
+ }
return x;
}
@@ -642,7 +682,9 @@ class LinkedBlockingDeque<E> extends Abs
@Override
public E getLast() {
E x = peekLast();
- if (x == null) throw new NoSuchElementException();
+ if (x == null) {
+ throw new NoSuchElementException();
+ }
return x;
}
@@ -668,7 +710,9 @@ class LinkedBlockingDeque<E> extends Abs
@Override
public boolean removeFirstOccurrence(Object o) {
- if (o == null) return false;
+ if (o == null) {
+ return false;
+ }
lock.lock();
try {
for (Node<E> p = first; p != null; p = p.next) {
@@ -685,7 +729,9 @@ class LinkedBlockingDeque<E> extends Abs
@Override
public boolean removeLastOccurrence(Object o) {
- if (o == null) return false;
+ if (o == null) {
+ return false;
+ }
lock.lock();
try {
for (Node<E> p = last; p != null; p = p.prev) {
@@ -875,10 +921,12 @@ class LinkedBlockingDeque<E> extends Abs
* @throws IllegalArgumentException
*/
public int drainTo(Collection<? super E> c, int maxElements) {
- if (c == null)
+ if (c == null) {
throw new NullPointerException();
- if (c == this)
+ }
+ if (c == this) {
throw new IllegalArgumentException();
+ }
lock.lock();
try {
int n = Math.min(maxElements, count);
@@ -956,12 +1004,16 @@ class LinkedBlockingDeque<E> extends Abs
*/
@Override
public boolean contains(Object o) {
- if (o == null) return false;
+ if (o == null) {
+ return false;
+ }
lock.lock();
try {
- for (Node<E> p = first; p != null; p = p.next)
- if (o.equals(p.item))
+ for (Node<E> p = first; p != null; p = p.next) {
+ if (o.equals(p.item)) {
return true;
+ }
+ }
return false;
} finally {
lock.unlock();
@@ -1028,8 +1080,9 @@ class LinkedBlockingDeque<E> extends Abs
try {
Object[] a = new Object[count];
int k = 0;
- for (Node<E> p = first; p != null; p = p.next)
+ for (Node<E> p = first; p != null; p = p.next) {
a[k++] = p.item;
+ }
return a;
} finally {
lock.unlock();
@@ -1049,8 +1102,9 @@ class LinkedBlockingDeque<E> extends Abs
(a.getClass().getComponentType(), count);
}
int k = 0;
- for (Node<E> p = first; p != null; p = p.next)
+ for (Node<E> p = first; p != null; p = p.next) {
a[k++] = (T)p.item;
+ }
if (a.length > k) {
a[k] = null;
}
@@ -1185,8 +1239,9 @@ class LinkedBlockingDeque<E> extends Abs
} else {
// Skip over removed nodes.
// May be necessary if multiple interior Nodes are removed.
- while (s != null && s.item == null)
+ while (s != null && s.item == null) {
s = nextNode(s);
+ }
next = s;
}
nextItem = (next == null) ? null : next.item;
@@ -1202,8 +1257,9 @@ class LinkedBlockingDeque<E> extends Abs
@Override
public E next() {
- if (next == null)
+ if (next == null) {
throw new NoSuchElementException();
+ }
lastRet = next;
E x = nextItem;
advance();
@@ -1213,13 +1269,15 @@ class LinkedBlockingDeque<E> extends Abs
@Override
public void remove() {
Node<E> n = lastRet;
- if (n == null)
+ if (n == null) {
throw new IllegalStateException();
+ }
lastRet = null;
lock.lock();
try {
- if (n.item != null)
+ if (n.item != null) {
unlink(n);
+ }
} finally {
lock.unlock();
}
@@ -1256,8 +1314,9 @@ class LinkedBlockingDeque<E> extends Abs
// Write out capacity and any hidden stuff
s.defaultWriteObject();
// Write out all elements in the proper order.
- for (Node<E> p = first; p != null; p = p.next)
+ for (Node<E> p = first; p != null; p = p.next) {
s.writeObject(p.item);
+ }
// Use trailing null as sentinel
s.writeObject(null);
} finally {
@@ -1280,8 +1339,9 @@ class LinkedBlockingDeque<E> extends Abs
for (;;) {
@SuppressWarnings("unchecked")
E item = (E)s.readObject();
- if (item == null)
+ if (item == null) {
break;
+ }
add(item);
}
}
Modified: commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/MethodCall.java
URL: http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/MethodCall.java?rev=1622035&r1=1622034&r2=1622035&view=diff
==============================================================================
--- commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/MethodCall.java (original)
+++ commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/MethodCall.java Tue Sep 2 15:34:40 2014
@@ -78,14 +78,24 @@ public class MethodCall {
@Override
public boolean equals(final Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
final MethodCall that = (MethodCall)o;
- if (name != null ? !name.equals(that.name) : that.name != null) return false;
- if (params != null ? !params.equals(that.params) : that.params != null) return false;
- if (returned != null ? !returned.equals(that.returned) : that.returned != null) return false;
+ if (name != null ? !name.equals(that.name) : that.name != null) {
+ return false;
+ }
+ if (params != null ? !params.equals(that.params) : that.params != null) {
+ return false;
+ }
+ if (returned != null ? !returned.equals(that.returned) : that.returned != null) {
+ return false;
+ }
return true;
}
Modified: commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestAbandonedObjectPool.java
URL: http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestAbandonedObjectPool.java?rev=1622035&r1=1622034&r2=1622035&view=diff
==============================================================================
--- commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestAbandonedObjectPool.java (original)
+++ commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestAbandonedObjectPool.java Tue Sep 2 15:34:40 2014
@@ -399,7 +399,9 @@ class PooledTestObject implements Tracke
@Override
public boolean equals(Object obj) {
- if (!(obj instanceof PooledTestObject)) return false;
+ if (!(obj instanceof PooledTestObject)) {
+ return false;
+ }
return obj.hashCode() == hashCode();
}
}