svn commit: r1051828 - in /commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl: SoftReferenceObjectPool.java SoftReferenceObjectPoolMBean.java

2010-12-22 Thread simonetripodi
Author: simonetripodi
Date: Wed Dec 22 10:59:13 2010
New Revision: 1051828

URL: http://svn.apache.org/viewvc?rev=1051828view=rev
Log:
added SoftReferenceObjectPool JMX MBean interface

Added:

commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/SoftReferenceObjectPoolMBean.java
   (with props)
Modified:

commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/SoftReferenceObjectPool.java

Modified: 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/SoftReferenceObjectPool.java
URL: 
http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/SoftReferenceObjectPool.java?rev=1051828r1=1051827r2=1051828view=diff
==
--- 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/SoftReferenceObjectPool.java
 (original)
+++ 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/SoftReferenceObjectPool.java
 Wed Dec 22 10:59:13 2010
@@ -38,7 +38,7 @@ import org.apache.commons.pool2.Poolable
  * @version $Revision$ $Date$
  * @since Pool 1.0
  */
-public class SoftReferenceObjectPoolT extends BaseObjectPoolT implements 
ObjectPoolT {
+public class SoftReferenceObjectPoolT extends BaseObjectPoolT implements 
ObjectPoolT, SoftReferenceObjectPoolMBean {
 
 /**
  * Create a codeSoftReferenceObjectPool/code with the specified 
factory.

Added: 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/SoftReferenceObjectPoolMBean.java
URL: 
http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/SoftReferenceObjectPoolMBean.java?rev=1051828view=auto
==
--- 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/SoftReferenceObjectPoolMBean.java
 (added)
+++ 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/SoftReferenceObjectPoolMBean.java
 Wed Dec 22 10:59:13 2010
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the License); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.pool2.impl;
+
+/**
+ * The codeSoftReference/code-based codeObjectPool/code JMX interface.
+ *
+ * @version $Revision$ $Date$
+ * @since 2.0
+ */
+public interface SoftReferenceObjectPoolMBean {
+
+/**
+ * Returns an approximation not less than the of the number of idle 
instances in the pool.
+ * 
+ * @return estimated number of idle instances in the pool
+ */
+int getNumIdle();
+
+/**
+ * Return the number of instances currently borrowed from this pool.
+ *
+ * @return the number of instances currently borrowed from this pool
+ */
+int getNumActive();
+
+}
\ No newline at end of file

Propchange: 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/SoftReferenceObjectPoolMBean.java
--
svn:eol-style = native

Propchange: 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/SoftReferenceObjectPoolMBean.java
--
svn:keywords = Date Author Id Revision HeadURL

Propchange: 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/SoftReferenceObjectPoolMBean.java
--
svn:mime-type = text/plain




svn commit: r1051849 - /commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackObjectPool.java

2010-12-22 Thread simonetripodi
Author: simonetripodi
Date: Wed Dec 22 11:28:16 2010
New Revision: 1051849

URL: http://svn.apache.org/viewvc?rev=1051849view=rev
Log:
getFactory() method doesn't need to be synchronized since _factory is private 
final

Modified:

commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackObjectPool.java

Modified: 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackObjectPool.java
URL: 
http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackObjectPool.java?rev=1051849r1=1051848r2=1051849view=diff
==
--- 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackObjectPool.java
 (original)
+++ 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackObjectPool.java
 Wed Dec 22 11:28:16 2010
@@ -345,7 +345,7 @@ public class StackObjectPoolT extends 
  * @return the factory
  * @since 1.5.5
  */
-public synchronized PoolableObjectFactoryT getFactory() {
+public PoolableObjectFactoryT getFactory() {
 return _factory;
 }
 




svn commit: r1051852 - in /commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl: StackObjectPool.java StackObjectPoolFactory.java

2010-12-22 Thread simonetripodi
Author: simonetripodi
Date: Wed Dec 22 11:36:49 2010
New Revision: 1051852

URL: http://svn.apache.org/viewvc?rev=1051852view=rev
Log:
made classes fields volatile
removed synchronization on getters/setters methods

Modified:

commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackObjectPool.java

commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackObjectPoolFactory.java

Modified: 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackObjectPool.java
URL: 
http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackObjectPool.java?rev=1051852r1=1051851r2=1051852view=diff
==
--- 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackObjectPool.java
 (original)
+++ 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackObjectPool.java
 Wed Dec 22 11:36:49 2010
@@ -226,7 +226,7 @@ public class StackObjectPoolT extends 
  * @return the number of instances currently borrowed from this pool
  */
 @Override
-public synchronized int getNumActive() {
+public int getNumActive() {
 return _numActive;
 }
 
@@ -332,12 +332,12 @@ public class StackObjectPoolT extends 
 /**
  * cap on the number of sleeping instances in the pool
  */
-private int maxSleeping; // @GuardedBy(this)
+private volatile int maxSleeping; // @GuardedBy(this)
 
 /**
  * Number of objects borrowed but not yet returned to the pool.
  */
-private int _numActive = 0; // @GuardedBy(this)
+private volatile int _numActive = 0; // @GuardedBy(this)
 
 /**
  * Returns the {...@link PoolableObjectFactory} used by this pool to 
create and manage object instances.
@@ -355,7 +355,7 @@ public class StackObjectPoolT extends 
  * @return maxSleeping
  * @since 1.5.5
  */
-public synchronized int getMaxSleeping() {
+public int getMaxSleeping() {
 return this.maxSleeping;
 }
 
@@ -365,7 +365,7 @@ public class StackObjectPoolT extends 
  * @param maxSleeping
  * @since 2.0
  */
-public synchronized void setMaxSleeping(int maxSleeping) {
+public void setMaxSleeping(int maxSleeping) {
 this.maxSleeping = maxSleeping;
 }
 }

Modified: 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackObjectPoolFactory.java
URL: 
http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackObjectPoolFactory.java?rev=1051852r1=1051851r2=1051852view=diff
==
--- 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackObjectPoolFactory.java
 (original)
+++ 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackObjectPoolFactory.java
 Wed Dec 22 11:36:49 2010
@@ -80,13 +80,13 @@ public class StackObjectPoolFactoryT i
 /**
  * cap on the number of sleeping instances in the pool
  */
-private int maxSleeping; // @GuardedBy(this)
+private volatile int maxSleeping; // @GuardedBy(this)
 
 /**
  * initial size of the pool (this specifies the size of the container,
  * it does not cause the pool to be pre-populated.)
  */
-private int initIdleCapacity; // @GuardedBy(this)
+private volatile int initIdleCapacity; // @GuardedBy(this)
 
 /**
  * Returns the factory used by created pools.
@@ -104,7 +104,7 @@ public class StackObjectPoolFactoryT i
  * @return the maximum number of idle instances in created pools
  * @since 1.5.5
  */
-public synchronized int getMaxSleeping() {
+public int getMaxSleeping() {
 return this.maxSleeping;
 }
 
@@ -114,7 +114,7 @@ public class StackObjectPoolFactoryT i
  * @param maxSleeping
  * @since 2.0
  */
-public synchronized void setMaxSleeping(int maxSleeping) {
+public void setMaxSleeping(int maxSleeping) {
 this.maxSleeping = maxSleeping;
 }
 
@@ -124,7 +124,7 @@ public class StackObjectPoolFactoryT i
  * @return size of created containers (created pools are not pre-populated)
  * @since 1.5.5
  */
-public synchronized int getInitCapacity() {
+public int getInitCapacity() {
 return this.initIdleCapacity;
 }
 
@@ -133,7 +133,7 @@ public class StackObjectPoolFactoryT i
  *
  * @param initIdleCapacity size of created containers (created pools are 
not pre-populated)
  */
-public synchronized void setInitCapacity(int initIdleCapacity) {
+public void setInitCapacity(int initIdleCapacity) {
 this.initIdleCapacity = initIdleCapacity;
 }
 




svn commit: r1051854 - /commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackKeyedObjectPoolFactory.java

2010-12-22 Thread simonetripodi
Author: simonetripodi
Date: Wed Dec 22 11:39:31 2010
New Revision: 1051854

URL: http://svn.apache.org/viewvc?rev=1051854view=rev
Log:
getFactory() method doesn't need to be synchronized since _factory is private 
final

Modified:

commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackKeyedObjectPoolFactory.java

Modified: 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackKeyedObjectPoolFactory.java
URL: 
http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackKeyedObjectPoolFactory.java?rev=1051854r1=1051853r2=1051854view=diff
==
--- 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackKeyedObjectPoolFactory.java
 (original)
+++ 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackKeyedObjectPoolFactory.java
 Wed Dec 22 11:39:31 2010
@@ -95,7 +95,7 @@ public class StackKeyedObjectPoolFactory
  * @return factory setting for created pools
  * @since 1.5.5
  */
-public synchronized KeyedPoolableObjectFactoryK,V getFactory() {
+public KeyedPoolableObjectFactoryK,V getFactory() {
 return _factory;
 }
 




svn commit: r1051863 - /commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackKeyedObjectPoolFactory.java

2010-12-22 Thread simonetripodi
Author: simonetripodi
Date: Wed Dec 22 11:52:09 2010
New Revision: 1051863

URL: http://svn.apache.org/viewvc?rev=1051863view=rev
Log:
made fields volatile
removed synchronization on getters/setters methods

Modified:

commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackKeyedObjectPoolFactory.java

Modified: 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackKeyedObjectPoolFactory.java
URL: 
http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackKeyedObjectPoolFactory.java?rev=1051863r1=1051862r2=1051863view=diff
==
--- 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackKeyedObjectPoolFactory.java
 (original)
+++ 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackKeyedObjectPoolFactory.java
 Wed Dec 22 11:52:09 2010
@@ -81,13 +81,13 @@ public class StackKeyedObjectPoolFactory
 /**
  * cap on the number of sleeping instances in the pool
  */
-private int maxSleeping; // @GuardedBy(this)
+private volatile int maxSleeping; // @GuardedBy(this)
 
 /**
  * initial size of the pool (this specifies the size of the container,
  * it does not cause the pool to be pre-populated.)
  */
-private int initIdleCapacity; // @GuardedBy(this)
+private volatile int initIdleCapacity; // @GuardedBy(this)
 
 /**
  * Returns the KeyedPoolableObjectFactory used by StackKeyedObjectPools 
created by this factory
@@ -105,7 +105,7 @@ public class StackKeyedObjectPoolFactory
  * @return maxSleeping setting for created pools
  * @since 1.5.5
  */
-public synchronized int getMaxSleeping() {
+public int getMaxSleeping() {
 return this.maxSleeping;
 }
 
@@ -115,7 +115,7 @@ public class StackKeyedObjectPoolFactory
  * @param maxSleeping
  * @since 2.0
  */
-public synchronized void setMaxSleeping(int maxSleeping) {
+public void setMaxSleeping(int maxSleeping) {
 this.maxSleeping = maxSleeping;
 }
 
@@ -125,7 +125,7 @@ public class StackKeyedObjectPoolFactory
  * @return initial capacity setting for created pools
  * @since 1.5.5
  */
-public synchronized int getInitialCapacity() {
+public int getInitialCapacity() {
 return this.initIdleCapacity;
 }
 
@@ -135,7 +135,7 @@ public class StackKeyedObjectPoolFactory
  * @param initIdleCapacity
  * @since 2.0
  */
-public synchronized void setInitIdleCapacity(int initIdleCapacity) {
+public void setInitIdleCapacity(int initIdleCapacity) {
 this.initIdleCapacity = initIdleCapacity;
 }
 




svn commit: r1051946 - in /commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl: StackKeyedObjectPoolFactory.java StackObjectPool.java StackObjectPoolFactory.java

2010-12-22 Thread simonetripodi
Author: simonetripodi
Date: Wed Dec 22 15:21:18 2010
New Revision: 1051946

URL: http://svn.apache.org/viewvc?rev=1051946view=rev
Log:
removed no more needed @GuardedBy(this) comments

Modified:

commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackKeyedObjectPoolFactory.java

commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackObjectPool.java

commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackObjectPoolFactory.java

Modified: 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackKeyedObjectPoolFactory.java
URL: 
http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackKeyedObjectPoolFactory.java?rev=1051946r1=1051945r2=1051946view=diff
==
--- 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackKeyedObjectPoolFactory.java
 (original)
+++ 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackKeyedObjectPoolFactory.java
 Wed Dec 22 15:21:18 2010
@@ -81,13 +81,13 @@ public class StackKeyedObjectPoolFactory
 /**
  * cap on the number of sleeping instances in the pool
  */
-private volatile int maxSleeping; // @GuardedBy(this)
+private volatile int maxSleeping;
 
 /**
  * initial size of the pool (this specifies the size of the container,
  * it does not cause the pool to be pre-populated.)
  */
-private volatile int initIdleCapacity; // @GuardedBy(this)
+private volatile int initIdleCapacity;
 
 /**
  * Returns the KeyedPoolableObjectFactory used by StackKeyedObjectPools 
created by this factory

Modified: 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackObjectPool.java
URL: 
http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackObjectPool.java?rev=1051946r1=1051945r2=1051946view=diff
==
--- 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackObjectPool.java
 (original)
+++ 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackObjectPool.java
 Wed Dec 22 15:21:18 2010
@@ -332,12 +332,12 @@ public class StackObjectPoolT extends 
 /**
  * cap on the number of sleeping instances in the pool
  */
-private volatile int maxSleeping; // @GuardedBy(this)
+private volatile int maxSleeping;
 
 /**
  * Number of objects borrowed but not yet returned to the pool.
  */
-private volatile int _numActive = 0; // @GuardedBy(this)
+private volatile int _numActive = 0;
 
 /**
  * Returns the {...@link PoolableObjectFactory} used by this pool to 
create and manage object instances.

Modified: 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackObjectPoolFactory.java
URL: 
http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackObjectPoolFactory.java?rev=1051946r1=1051945r2=1051946view=diff
==
--- 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackObjectPoolFactory.java
 (original)
+++ 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackObjectPoolFactory.java
 Wed Dec 22 15:21:18 2010
@@ -80,13 +80,13 @@ public class StackObjectPoolFactoryT i
 /**
  * cap on the number of sleeping instances in the pool
  */
-private volatile int maxSleeping; // @GuardedBy(this)
+private volatile int maxSleeping;
 
 /**
  * initial size of the pool (this specifies the size of the container,
  * it does not cause the pool to be pre-populated.)
  */
-private volatile int initIdleCapacity; // @GuardedBy(this)
+private volatile int initIdleCapacity;
 
 /**
  * Returns the factory used by created pools.




svn commit: r1052095 - in /commons/proper/io/trunk/src: main/java/org/apache/commons/io/input/BOMInputStream.java test/java/org/apache/commons/io/input/BOMInputStreamTest.java

2010-12-22 Thread niallp
Author: niallp
Date: Wed Dec 22 23:03:20 2010
New Revision: 1052095

URL: http://svn.apache.org/viewvc?rev=1052095view=rev
Log:
IO-257 Fix BOMInputStream's read(byte[]) can return 0 which it should not - 
thanks to Teemu Lång

Modified:

commons/proper/io/trunk/src/main/java/org/apache/commons/io/input/BOMInputStream.java

commons/proper/io/trunk/src/test/java/org/apache/commons/io/input/BOMInputStreamTest.java

Modified: 
commons/proper/io/trunk/src/main/java/org/apache/commons/io/input/BOMInputStream.java
URL: 
http://svn.apache.org/viewvc/commons/proper/io/trunk/src/main/java/org/apache/commons/io/input/BOMInputStream.java?rev=1052095r1=1052094r2=1052095view=diff
==
--- 
commons/proper/io/trunk/src/main/java/org/apache/commons/io/input/BOMInputStream.java
 (original)
+++ 
commons/proper/io/trunk/src/main/java/org/apache/commons/io/input/BOMInputStream.java
 Wed Dec 22 23:03:20 2010
@@ -284,7 +284,7 @@ public class BOMInputStream extends Prox
 }
 }
 int secondCount = in.read(buf, off, len);
-return (secondCount  0) ? firstCount : firstCount + secondCount;
+return (secondCount  0) ? (firstCount  0 ? firstCount : -1) : 
firstCount + secondCount;
 }
 
 /**

Modified: 
commons/proper/io/trunk/src/test/java/org/apache/commons/io/input/BOMInputStreamTest.java
URL: 
http://svn.apache.org/viewvc/commons/proper/io/trunk/src/test/java/org/apache/commons/io/input/BOMInputStreamTest.java?rev=1052095r1=1052094r2=1052095view=diff
==
--- 
commons/proper/io/trunk/src/test/java/org/apache/commons/io/input/BOMInputStreamTest.java
 (original)
+++ 
commons/proper/io/trunk/src/test/java/org/apache/commons/io/input/BOMInputStreamTest.java
 Wed Dec 22 23:03:20 2010
@@ -204,6 +204,20 @@ public class BOMInputStreamTest extends 
 assertEquals(getBOM, ByteOrderMark.UTF_8, in.getBOM());
 }
 
+public void testEmptyBufferWithoutBOM() throws Exception {
+byte[] data = new byte[] {};
+InputStream in = new BOMInputStream(createDataStream(data, false));
+byte[] buf = new byte[1024];
+assertEquals(-1, in.read(buf));
+}
+
+public void testEmptyBufferWithBOM() throws Exception {
+byte[] data = new byte[] {};
+InputStream in = new BOMInputStream(createDataStream(data, true));
+byte[] buf = new byte[1024];
+assertEquals(-1, in.read(buf));
+}
+
 public void testLargeBufferWithoutBOM() throws Exception {
 byte[] data = new byte[] { 'A', 'B', 'C' };
 InputStream in = new BOMInputStream(createDataStream(data, false));




svn commit: r1052102 - /commons/proper/io/trunk/src/main/java/org/apache/commons/io/monitor/FileAlterationMonitor.java

2010-12-22 Thread niallp
Author: niallp
Date: Wed Dec 22 23:40:58 2010
New Revision: 1052102

URL: http://svn.apache.org/viewvc?rev=1052102view=rev
Log:
Minor code re-organization

Modified:

commons/proper/io/trunk/src/main/java/org/apache/commons/io/monitor/FileAlterationMonitor.java

Modified: 
commons/proper/io/trunk/src/main/java/org/apache/commons/io/monitor/FileAlterationMonitor.java
URL: 
http://svn.apache.org/viewvc/commons/proper/io/trunk/src/main/java/org/apache/commons/io/monitor/FileAlterationMonitor.java?rev=1052102r1=1052101r2=1052102view=diff
==
--- 
commons/proper/io/trunk/src/main/java/org/apache/commons/io/monitor/FileAlterationMonitor.java
 (original)
+++ 
commons/proper/io/trunk/src/main/java/org/apache/commons/io/monitor/FileAlterationMonitor.java
 Wed Dec 22 23:40:58 2010
@@ -52,15 +52,6 @@ public final class FileAlterationMonitor
 }
 
 /**
- * Return the interval.
- *
- * @return the interval
- */
-public long getInterval() {
-return interval;
-}
-
-/**
  * Construct a monitor with the specified interval and set of observers.
  *
  * @param interval The amount of time in miliseconds to wait between
@@ -77,6 +68,15 @@ public final class FileAlterationMonitor
 }
 
 /**
+ * Return the interval.
+ *
+ * @return the interval
+ */
+public long getInterval() {
+return interval;
+}
+
+/**
  * Add a file system observer to this monitor.
  *
  * @param observer The file system observer to add




svn commit: r1052114 - in /commons/proper/io/trunk/src: main/java/org/apache/commons/io/monitor/FileAlterationMonitor.java test/java/org/apache/commons/io/monitor/FileAlterationMonitorTestCase.java

2010-12-22 Thread niallp
Author: niallp
Date: Thu Dec 23 00:13:25 2010
New Revision: 1052114

URL: http://svn.apache.org/viewvc?rev=1052114view=rev
Log:
IO-256 - Provide ThreadFactory for FileAlternationMonitor - thanks to Martin 
Beránek

Modified:

commons/proper/io/trunk/src/main/java/org/apache/commons/io/monitor/FileAlterationMonitor.java

commons/proper/io/trunk/src/test/java/org/apache/commons/io/monitor/FileAlterationMonitorTestCase.java

Modified: 
commons/proper/io/trunk/src/main/java/org/apache/commons/io/monitor/FileAlterationMonitor.java
URL: 
http://svn.apache.org/viewvc/commons/proper/io/trunk/src/main/java/org/apache/commons/io/monitor/FileAlterationMonitor.java?rev=1052114r1=1052113r2=1052114view=diff
==
--- 
commons/proper/io/trunk/src/main/java/org/apache/commons/io/monitor/FileAlterationMonitor.java
 (original)
+++ 
commons/proper/io/trunk/src/main/java/org/apache/commons/io/monitor/FileAlterationMonitor.java
 Thu Dec 23 00:13:25 2010
@@ -18,6 +18,7 @@ package org.apache.commons.io.monitor;
 
 import java.util.List;
 import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.ThreadFactory;
 
 /**
  * A runnable that spawns a monitoring thread triggering any
@@ -32,6 +33,7 @@ public final class FileAlterationMonitor
 private final long interval;
 private final ListFileAlterationObserver observers = new 
CopyOnWriteArrayListFileAlterationObserver();
 private Thread thread = null;
+private ThreadFactory threadFactory;
 private volatile boolean running = false;
 
 /**
@@ -77,6 +79,24 @@ public final class FileAlterationMonitor
 }
 
 /**
+ * Return the thread factory.
+ *
+ * @return the threadFactory
+ */
+public ThreadFactory getThreadFactory() {
+return threadFactory;
+}
+
+/**
+ * Set the thread factory.
+ *
+ * @param threadFactory the thread factory
+ */
+public void setThreadFactory(ThreadFactory threadFactory) {
+this.threadFactory = threadFactory;
+}
+
+/**
  * Add a file system observer to this monitor.
  *
  * @param observer The file system observer to add
@@ -122,7 +142,11 @@ public final class FileAlterationMonitor
 observer.initialize();
 }
 running = true;
-thread = new Thread(this);
+if (threadFactory != null) {
+thread = threadFactory.newThread(this);
+} else {
+thread = new Thread(this);
+}
 thread.start();
 }
 

Modified: 
commons/proper/io/trunk/src/test/java/org/apache/commons/io/monitor/FileAlterationMonitorTestCase.java
URL: 
http://svn.apache.org/viewvc/commons/proper/io/trunk/src/test/java/org/apache/commons/io/monitor/FileAlterationMonitorTestCase.java?rev=1052114r1=1052113r2=1052114view=diff
==
--- 
commons/proper/io/trunk/src/test/java/org/apache/commons/io/monitor/FileAlterationMonitorTestCase.java
 (original)
+++ 
commons/proper/io/trunk/src/test/java/org/apache/commons/io/monitor/FileAlterationMonitorTestCase.java
 Thu Dec 23 00:13:25 2010
@@ -19,6 +19,7 @@ package org.apache.commons.io.monitor;
 import java.io.File;
 import java.util.Collection;
 import java.util.Iterator;
+import java.util.concurrent.Executors;
 
 /**
  * {...@link FileAlterationMonitor} Test Case.
@@ -90,8 +91,10 @@ public class FileAlterationMonitorTestCa
 public void testMonitor() {
 try {
 long interval = 100;
+listener.clear();
 FileAlterationMonitor monitor = new 
FileAlterationMonitor(interval, observer);
 assertEquals(Interval, interval, monitor.getInterval());
+assertNull(Thread Factory, monitor.getThreadFactory());
 monitor.start();
 
 try {
@@ -133,6 +136,40 @@ public class FileAlterationMonitorTestCa
 }
 
 /**
+ * Test using a thread factory.
+ */
+public void testThreadFactory() {
+try {
+long interval = 100;
+listener.clear();
+FileAlterationMonitor monitor = new 
FileAlterationMonitor(interval, observer);
+monitor.setThreadFactory(Executors.defaultThreadFactory());
+assertEquals(Interval, interval, monitor.getInterval());
+assertNotNull(Thread Factory, monitor.getThreadFactory());
+monitor.start();
+
+// Create a File
+checkCollectionsEmpty(A);
+File file2 = touch(new File(testDir, file2.java));
+checkFile(Create, file2, listener.getCreatedFiles());
+listener.clear();
+
+// Delete a file
+checkCollectionsEmpty(B);
+file2.delete();
+checkFile(Delete, file2, listener.getDeletedFiles());
+listener.clear();
+
+// Stop monitoring
+monitor.stop();
+
+} catch (Exception 

svn commit: r1052118 - in /commons/proper/io/trunk/src: main/java/org/apache/commons/io/monitor/FileAlterationMonitor.java test/java/org/apache/commons/io/monitor/FileAlterationMonitorTestCase.java

2010-12-22 Thread niallp
Author: niallp
Date: Thu Dec 23 00:32:34 2010
New Revision: 1052118

URL: http://svn.apache.org/viewvc?rev=1052118view=rev
Log:
IO-256 - Fix Inconsistent Synchonization on new ThreadFactory highlighted by 
FindBugs

Modified:

commons/proper/io/trunk/src/main/java/org/apache/commons/io/monitor/FileAlterationMonitor.java

commons/proper/io/trunk/src/test/java/org/apache/commons/io/monitor/FileAlterationMonitorTestCase.java

Modified: 
commons/proper/io/trunk/src/main/java/org/apache/commons/io/monitor/FileAlterationMonitor.java
URL: 
http://svn.apache.org/viewvc/commons/proper/io/trunk/src/main/java/org/apache/commons/io/monitor/FileAlterationMonitor.java?rev=1052118r1=1052117r2=1052118view=diff
==
--- 
commons/proper/io/trunk/src/main/java/org/apache/commons/io/monitor/FileAlterationMonitor.java
 (original)
+++ 
commons/proper/io/trunk/src/main/java/org/apache/commons/io/monitor/FileAlterationMonitor.java
 Thu Dec 23 00:32:34 2010
@@ -79,20 +79,11 @@ public final class FileAlterationMonitor
 }
 
 /**
- * Return the thread factory.
- *
- * @return the threadFactory
- */
-public ThreadFactory getThreadFactory() {
-return threadFactory;
-}
-
-/**
  * Set the thread factory.
  *
  * @param threadFactory the thread factory
  */
-public void setThreadFactory(ThreadFactory threadFactory) {
+public synchronized void setThreadFactory(ThreadFactory threadFactory) {
 this.threadFactory = threadFactory;
 }
 

Modified: 
commons/proper/io/trunk/src/test/java/org/apache/commons/io/monitor/FileAlterationMonitorTestCase.java
URL: 
http://svn.apache.org/viewvc/commons/proper/io/trunk/src/test/java/org/apache/commons/io/monitor/FileAlterationMonitorTestCase.java?rev=1052118r1=1052117r2=1052118view=diff
==
--- 
commons/proper/io/trunk/src/test/java/org/apache/commons/io/monitor/FileAlterationMonitorTestCase.java
 (original)
+++ 
commons/proper/io/trunk/src/test/java/org/apache/commons/io/monitor/FileAlterationMonitorTestCase.java
 Thu Dec 23 00:32:34 2010
@@ -94,7 +94,6 @@ public class FileAlterationMonitorTestCa
 listener.clear();
 FileAlterationMonitor monitor = new 
FileAlterationMonitor(interval, observer);
 assertEquals(Interval, interval, monitor.getInterval());
-assertNull(Thread Factory, monitor.getThreadFactory());
 monitor.start();
 
 try {
@@ -145,7 +144,6 @@ public class FileAlterationMonitorTestCa
 FileAlterationMonitor monitor = new 
FileAlterationMonitor(interval, observer);
 monitor.setThreadFactory(Executors.defaultThreadFactory());
 assertEquals(Interval, interval, monitor.getInterval());
-assertNotNull(Thread Factory, monitor.getThreadFactory());
 monitor.start();
 
 // Create a File




svn commit: r1052161 - in /commons/proper/io/trunk/src: main/java/org/apache/commons/io/input/XmlStreamReader.java test/java/org/apache/commons/io/input/XmlStreamReaderTest.java

2010-12-22 Thread niallp
Author: niallp
Date: Thu Dec 23 03:12:09 2010
New Revision: 1052161

URL: http://svn.apache.org/viewvc?rev=1052161view=rev
Log:
IO-258 - Fix XmlStreamReader consumes the stream during encoding detection

Modified:

commons/proper/io/trunk/src/main/java/org/apache/commons/io/input/XmlStreamReader.java

commons/proper/io/trunk/src/test/java/org/apache/commons/io/input/XmlStreamReaderTest.java

Modified: 
commons/proper/io/trunk/src/main/java/org/apache/commons/io/input/XmlStreamReader.java
URL: 
http://svn.apache.org/viewvc/commons/proper/io/trunk/src/main/java/org/apache/commons/io/input/XmlStreamReader.java?rev=1052161r1=1052160r2=1052161view=diff
==
--- 
commons/proper/io/trunk/src/main/java/org/apache/commons/io/input/XmlStreamReader.java
 (original)
+++ 
commons/proper/io/trunk/src/main/java/org/apache/commons/io/input/XmlStreamReader.java
 Thu Dec 23 03:12:09 2010
@@ -201,8 +201,10 @@ public class XmlStreamReader extends Rea
  */
 public XmlStreamReader(InputStream is, boolean lenient, String 
defaultEncoding) throws IOException {
 this.defaultEncoding = defaultEncoding;
-this.encoding = doRawStream(is, lenient);
-this.reader = new InputStreamReader(is, encoding);
+BOMInputStream bom = new BOMInputStream(new BufferedInputStream(is, 
BUFFER_SIZE), false, BOMS);
+BOMInputStream pis = new BOMInputStream(bom, true, XML_GUESS_BYTES);
+this.encoding = doRawStream(bom, pis, lenient);
+this.reader = new InputStreamReader(pis, encoding);
 }
 
 /**
@@ -250,12 +252,14 @@ public class XmlStreamReader extends Rea
 boolean lenient = true;
 String contentType = conn.getContentType();
 InputStream is = conn.getInputStream();
+BOMInputStream bom = new BOMInputStream(new BufferedInputStream(is, 
BUFFER_SIZE), false, BOMS);
+BOMInputStream pis = new BOMInputStream(bom, true, XML_GUESS_BYTES);
 if (conn instanceof HttpURLConnection || contentType != null) {
-this.encoding = doHttpStream(is, contentType, lenient);
+this.encoding = doHttpStream(bom, pis, contentType, lenient);
 } else {
-this.encoding = doRawStream(is, lenient);
+this.encoding = doRawStream(bom, pis, lenient);
 }
-this.reader = new InputStreamReader(is, encoding);
+this.reader = new InputStreamReader(pis, encoding);
 }
 
 /**
@@ -317,8 +321,10 @@ public class XmlStreamReader extends Rea
 public XmlStreamReader(InputStream is, String httpContentType,
 boolean lenient, String defaultEncoding) throws IOException {
 this.defaultEncoding = defaultEncoding;
-this.encoding = doHttpStream(is, httpContentType, lenient);
-this.reader = new InputStreamReader(is, encoding);
+BOMInputStream bom = new BOMInputStream(new BufferedInputStream(is, 
BUFFER_SIZE), false, BOMS);
+BOMInputStream pis = new BOMInputStream(bom, true, XML_GUESS_BYTES);
+this.encoding = doHttpStream(bom, pis, httpContentType, lenient);
+this.reader = new InputStreamReader(pis, encoding);
 }
 
 /**
@@ -394,16 +400,15 @@ public class XmlStreamReader extends Rea
 /**
  * Process the raw stream.
  *
- * @param is InputStream to create the reader from.
+ * @param bom BOMInputStream to detect byte order marks
+ * @param pis BOMInputStream to guess XML encoding
  * @param lenient indicates if the charset encoding detection should be
  *relaxed.
  * @return the encoding to be used
  * @throws IOException thrown if there is a problem reading the stream.
  */
-private String doRawStream(InputStream is, boolean lenient)
+private String doRawStream(BOMInputStream bom, BOMInputStream pis, boolean 
lenient)
 throws IOException {
-BOMInputStream bom = new BOMInputStream(new BufferedInputStream(is, 
BUFFER_SIZE), false, BOMS);
-BOMInputStream pis = new BOMInputStream(bom, true, XML_GUESS_BYTES);
 String bomEnc  = bom.getBOMCharsetName();
 String xmlGuessEnc = pis.getBOMCharsetName();
 String xmlEnc = getXmlProlog(pis, xmlGuessEnc);
@@ -411,7 +416,7 @@ public class XmlStreamReader extends Rea
 return calculateRawEncoding(bomEnc, xmlGuessEnc, xmlEnc);
 } catch (XmlStreamReaderException ex) {
 if (lenient) {
-return doLenientDetection(null, is, ex);
+return doLenientDetection(null, ex);
 } else {
 throw ex;
 }
@@ -421,17 +426,16 @@ public class XmlStreamReader extends Rea
 /**
  * Process a HTTP stream.
  *
- * @param is InputStream to create the reader from.
+ * @param bom BOMInputStream to detect byte order marks
+ * @param pis BOMInputStream to guess XML encoding
  * @param httpContentType The HTTP content 

svn commit: r1052167 - in /commons/proper/io/trunk: RELEASE-NOTES.txt build.xml pom.xml src/site/site.xml src/site/xdoc/building.xml src/site/xdoc/download_io.xml src/site/xdoc/index.xml src/site/xdoc

2010-12-22 Thread niallp
Author: niallp
Date: Thu Dec 23 03:32:58 2010
New Revision: 1052167

URL: http://svn.apache.org/viewvc?rev=1052167view=rev
Log:
prepare for IO 2.0.1 release

Added:
commons/proper/io/trunk/src/site/xdoc/upgradeto2_0_1.xml   (with props)
Modified:
commons/proper/io/trunk/RELEASE-NOTES.txt
commons/proper/io/trunk/build.xml
commons/proper/io/trunk/pom.xml
commons/proper/io/trunk/src/site/site.xml
commons/proper/io/trunk/src/site/xdoc/building.xml
commons/proper/io/trunk/src/site/xdoc/download_io.xml
commons/proper/io/trunk/src/site/xdoc/index.xml

Modified: commons/proper/io/trunk/RELEASE-NOTES.txt
URL: 
http://svn.apache.org/viewvc/commons/proper/io/trunk/RELEASE-NOTES.txt?rev=1052167r1=1052166r2=1052167view=diff
==
--- commons/proper/io/trunk/RELEASE-NOTES.txt (original)
+++ commons/proper/io/trunk/RELEASE-NOTES.txt Thu Dec 23 03:32:58 2010
@@ -1,7 +1,7 @@
 $Id$
 
 Commons IO Package
-   Version 2.0
+   Version 2.0.1
   Release Notes
 
 
@@ -15,8 +15,8 @@ Commons IO contains utility classes, str
 file comparators and endian transformation classes.
 
 
-Compatibility with 1.4
---
+Compatibility with 2.0 and 1.4
+--
 Binary compatible - Yes
 
 Source compatible - Yes
@@ -24,112 +24,21 @@ Source compatible - Yes
 Semantic compatible - Yes
   Check the bug fixes section for semantic bug fixes
 
-Commons IO 2.0 requires a minimum of JDK 1.5
+Commons IO 2.0.1 requires a minimum of JDK 1.5
  (Commons IO 1.4 had a minimum of JDK 1.3) 
 
 
-Deprecations from 1.4
+Enhancements from 2.0
 -
 
-- IOUtils
-  - write(StringBuffer, Writer) in favour of write(CharSequence, Writer)
-  - write(StringBuffer, OutputStream)  in favour of write(CharSequence, 
OutputStream)
-  - write(StringBuffer, OutputStream, String) in favour of write(CharSequence, 
OutputStream, String)
-
-- FileFilterUtils
-  - andFileFilter(IOFileFilter, IOFileFilter) in favour of 
and(IOFileFilter...) 
-  - orFileFilter(IOFileFilter, IOFileFilter)  in favour of or(IOFileFilter...)
-
-
-Enhancements from 1.4
--
+   * [IO-256] - Provide thread factory for FileAlternationMonitor
 
-  * [IO-140] Move minimum Java requirement from JDK 1.3 to JDK 1.5
- - use Generics
- - add new CharSequence write() flavour methods to IOUtils and 
FileUtils
- - replace StringBuffer with StringBuilder, where appropriate
- - add new Reader/Writer methods to ProxyReader and ProxyWriter
- - Annotate with @Override and @Deprecated
-
-  * [IO-178] New BOMInputStream and ByteOrderMark implementations - to detect 
and optionally exclude an initial Byte Order mark (BOM)
-  * [IO-197] New BoundedInputStream (copied from from Apache JackRabbit)
-  * [IO-193] New Broken Input and Output streams
-  * [IO-132] New File Listener/Monitor facility
-  * [IO-158] New ReaderInputStream and WriterOutputStream implementations
-  * [IO-139] New StringBuilder Writer implementation
-  * [IO-192] New Tagged Input and Output streams
-  * [IO-177] New Tailer class - simple implementation of the Unix tail -f 
functionality
-  * [IO-162] New XML Stream Reader/Writer implementations (from ROME via 
plexus-utils)
-
-  * [IO-142] Comparators - add facility to sort file lists/arrays
-  * [IO-186] Comparators - new Composite and Directory File Comparator 
implementations
-  * [IO-176] DirectoryWalker - add filterDirectoryContents() callback method 
for filtering directory contents
-  * [IO-210] FileFilter - new Magic Number FileFilter
-  * [IO-221] FileFilterUtils - add methods for suffix and prefix filters which 
take an IOCase object
-  * [IO-232] FileFilterUtils - add method for name filters which take an 
IOCase object
-  * [IO-229] FileFilterUtils - add varargs and() and or() methods
-  * [IO-198] FileFilterUtils - add ability to apply file filters to 
collections and arrays
-  * [IO-156] FilenameUtils - add normalize() and normalizeNoEndSeparator() 
methods which allow the separator character to be specified
-  * [IO-194] FileSystemUtils - add freeSpaceKb() method with no input arguments
-  * [IO-185] FileSystemUtils - add freeSpaceKb() methods that take a timeout 
parameter - fixes freeSpaceWindows() blocks
-  * [IO-155] FileUtils - use NIO to copy files
-  * [IO-168] FileUtils - add new isSymlink() method
-  * [IO-219] FileUtils - throw FileExistsException when moving a file or 
directory if the destination already exists
-  * [IO-234] FileUtils - add Methods for retrieving System User/Temp 
directories/paths
-  * [IO-208] FileUtils - add timeout (connection and read) support for 
copyURLToFile() method 
-  * [IO-238] FileUtils - add sizeOf(File) method
-  * [IO-181] LineIterator now implements Iterable
-  * [IO-224] IOUtils - add closeQuietly(Closeable) and 

svn commit: r1052168 - in /commons/proper/io/tags/commons-io-2.0.1-rc1: ./ build.xml pom.xml

2010-12-22 Thread niallp
Author: niallp
Date: Thu Dec 23 03:42:30 2010
New Revision: 1052168

URL: http://svn.apache.org/viewvc?rev=1052168view=rev
Log:
Tag IO 2.0.1 RC1

Added:
commons/proper/io/tags/commons-io-2.0.1-rc1/
  - copied from r1052167, commons/proper/io/trunk/
Modified:
commons/proper/io/tags/commons-io-2.0.1-rc1/build.xml
commons/proper/io/tags/commons-io-2.0.1-rc1/pom.xml

Modified: commons/proper/io/tags/commons-io-2.0.1-rc1/build.xml
URL: 
http://svn.apache.org/viewvc/commons/proper/io/tags/commons-io-2.0.1-rc1/build.xml?rev=1052168r1=1052167r2=1052168view=diff
==
--- commons/proper/io/tags/commons-io-2.0.1-rc1/build.xml (original)
+++ commons/proper/io/tags/commons-io-2.0.1-rc1/build.xml Thu Dec 23 03:42:30 
2010
@@ -56,7 +56,7 @@
   property name=component.title value=Commons IO/
 
   !-- The current version number of this component --
-  property name=component.version   value=2.0.1-SNAPSHOT/
+  property name=component.version   value=2.0.1/
 
   !-- The base directory for component sources --
   property name=source.home value=src/main/java/

Modified: commons/proper/io/tags/commons-io-2.0.1-rc1/pom.xml
URL: 
http://svn.apache.org/viewvc/commons/proper/io/tags/commons-io-2.0.1-rc1/pom.xml?rev=1052168r1=1052167r2=1052168view=diff
==
--- commons/proper/io/tags/commons-io-2.0.1-rc1/pom.xml (original)
+++ commons/proper/io/tags/commons-io-2.0.1-rc1/pom.xml Thu Dec 23 03:42:30 2010
@@ -24,7 +24,7 @@
   modelVersion4.0.0/modelVersion
   groupIdcommons-io/groupId
   artifactIdcommons-io/artifactId
-  version2.0.1-SNAPSHOT/version
+  version2.0.1/version
   nameCommons IO/name
 
   inceptionYear2002/inceptionYear




svn commit: r1052190 - /commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackObjectPool.java

2010-12-22 Thread simonetripodi
Author: simonetripodi
Date: Thu Dec 23 07:34:41 2010
New Revision: 1052190

URL: http://svn.apache.org/viewvc?rev=1052190view=rev
Log:
_numActive is also incremented in borrowObject() method, so access to this data 
member needs to be protected, thanks Phil

Modified:

commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackObjectPool.java

Modified: 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackObjectPool.java
URL: 
http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackObjectPool.java?rev=1052190r1=1052189r2=1052190view=diff
==
--- 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackObjectPool.java
 (original)
+++ 
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/StackObjectPool.java
 Thu Dec 23 07:34:41 2010
@@ -226,7 +226,7 @@ public class StackObjectPoolT extends 
  * @return the number of instances currently borrowed from this pool
  */
 @Override
-public int getNumActive() {
+public synchronized int getNumActive() {
 return _numActive;
 }
 
@@ -337,7 +337,7 @@ public class StackObjectPoolT extends 
 /**
  * Number of objects borrowed but not yet returned to the pool.
  */
-private volatile int _numActive = 0;
+private int _numActive = 0;
 
 /**
  * Returns the {...@link PoolableObjectFactory} used by this pool to 
create and manage object instances.