Author: fhanik
Date: Tue Oct 28 15:26:03 2008
New Revision: 708702
URL: http://svn.apache.org/viewvc?rev=708702&view=rev
Log:
stupid eclipse
Modified:
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/FairBlockingQueue.java
Modified:
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java?rev=708702&r1=708701&r2=708702&view=diff
==============================================================================
---
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java
(original)
+++
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java
Tue Oct 28 15:26:03 2008
@@ -489,12 +489,12 @@
throw new SQLException("Failed to validate a newly
established connection.");
}
} catch (Exception x) {
- release(con);
+ release(con);
setToNull = true;
if (x instanceof SQLException) {
throw (SQLException)x;
} else {
- throw new SQLException(x);
+ throw new SQLException(getStackTrace(x));
}
}
} finally {
@@ -514,7 +514,7 @@
//if the connection pool is closed
//close the connection instead of returning it
release(con);
- return;
+ return;
} //end if
if (con != null) {
Modified:
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/FairBlockingQueue.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/FairBlockingQueue.java?rev=708702&r1=708701&r2=708702&view=diff
==============================================================================
---
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/FairBlockingQueue.java
(original)
+++
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/FairBlockingQueue.java
Tue Oct 28 15:26:03 2008
@@ -25,28 +25,28 @@
import java.util.concurrent.locks.ReentrantLock;
/**
- *
+ *
* A simple implementation of a blocking queue with fairness waiting.
* invocations to method poll(...) will get handed out in the order they were
received.
* @author Filip Hanik
- *
+ *
*/
public class FairBlockingQueue<E> implements BlockingQueue<E> {
ReentrantLock lock = new ReentrantLock();
-
+
LinkedList<E> items = null;
-
+
LinkedList<ExchangeCountDownLatch<E>> waiters = null;
-
+
public FairBlockingQueue() {
items = new LinkedList<E>();
waiters = new LinkedList<ExchangeCountDownLatch<E>>();
}
-
- //------------------------------------------------------------------
+
+ //------------------------------------------------------------------
// USED BY CONPOOL IMPLEMENTATION
- //------------------------------------------------------------------
+ //------------------------------------------------------------------
public boolean offer(E e) {
final ReentrantLock lock = this.lock;
lock.lock();
@@ -67,7 +67,7 @@
public boolean offer(E e, long timeout, TimeUnit unit) throws
InterruptedException {
return offer(e);
}
-
+
public E poll(long timeout, TimeUnit unit) throws InterruptedException {
E result = null;
final ReentrantLock lock = this.lock;
@@ -96,7 +96,7 @@
}
return result;
}
-
+
public boolean remove(Object e) {
final ReentrantLock lock = this.lock;
lock.lock();
@@ -106,15 +106,15 @@
lock.unlock();
}
}
-
+
public int size() {
return items.size();
}
-
+
public Iterator<E> iterator() {
return new FairIterator();
}
-
+
public E poll() {
final ReentrantLock lock = this.lock;
lock.lock();
@@ -124,7 +124,7 @@
lock.unlock();
}
}
-
+
public boolean contains(Object e) {
final ReentrantLock lock = this.lock;
lock.lock();
@@ -134,43 +134,36 @@
lock.unlock();
}
}
-
- //------------------------------------------------------------------
+
+ //------------------------------------------------------------------
// NOT USED BY CONPOOL IMPLEMENTATION
- //------------------------------------------------------------------
-
- @Override
+ //------------------------------------------------------------------
+
public boolean add(E e) {
return offer(e);
}
- @Override
public int drainTo(Collection<? super E> c, int maxElements) {
throw new UnsupportedOperationException("int drainTo(Collection<?
super E> c, int maxElements)");
}
- @Override
public int drainTo(Collection<? super E> c) {
return drainTo(c,Integer.MAX_VALUE);
}
- @Override
public void put(E e) throws InterruptedException {
offer(e);
}
- @Override
public int remainingCapacity() {
return Integer.MAX_VALUE - size();
}
- @Override
public E take() throws InterruptedException {
return this.poll(Long.MAX_VALUE, TimeUnit.MILLISECONDS);
}
- @Override
public boolean addAll(Collection<? extends E> c) {
Iterator i = c.iterator();
while (i.hasNext()) {
@@ -180,53 +173,43 @@
return true;
}
- @Override
public void clear() {
throw new UnsupportedOperationException("void clear()");
-
+
}
- @Override
public boolean containsAll(Collection<?> c) {
throw new UnsupportedOperationException("boolean
containsAll(Collection<?> c)");
}
- @Override
public boolean isEmpty() {
return size() == 0;
}
- @Override
public boolean removeAll(Collection<?> c) {
throw new UnsupportedOperationException("boolean
removeAll(Collection<?> c)");
}
- @Override
public boolean retainAll(Collection<?> c) {
throw new UnsupportedOperationException("boolean
retainAll(Collection<?> c)");
}
- @Override
public Object[] toArray() {
throw new UnsupportedOperationException("Object[] toArray()");
}
- @Override
public <T> T[] toArray(T[] a) {
throw new UnsupportedOperationException("<T> T[] toArray(T[] a)");
}
- @Override
public E element() {
throw new UnsupportedOperationException("E element()");
}
- @Override
public E peek() {
throw new UnsupportedOperationException("E peek()");
}
- @Override
public E remove() {
throw new UnsupportedOperationException("E remove()");
}
@@ -235,9 +218,9 @@
- //------------------------------------------------------------------
+ //------------------------------------------------------------------
// Count down latch that can be used to exchange information
- //------------------------------------------------------------------
+ //------------------------------------------------------------------
protected class ExchangeCountDownLatch<T> extends CountDownLatch {
protected T item;
public ExchangeCountDownLatch(int i) {
@@ -250,15 +233,15 @@
this.item = item;
}
}
-
- //------------------------------------------------------------------
+
+ //------------------------------------------------------------------
// Iterator safe from concurrent modification exceptions
- //------------------------------------------------------------------
+ //------------------------------------------------------------------
protected class FairIterator implements Iterator<E> {
E[] elements = null;
int index;
E element = null;
-
+
public FairIterator() {
final ReentrantLock lock = FairBlockingQueue.this.lock;
lock.lock();
@@ -270,18 +253,15 @@
lock.unlock();
}
}
- @Override
public boolean hasNext() {
return index<elements.length;
}
- @Override
public E next() {
element = elements[index++];
return element;
}
- @Override
public void remove() {
final ReentrantLock lock = FairBlockingQueue.this.lock;
lock.lock();
@@ -293,6 +273,6 @@
lock.unlock();
}
}
-
+
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]