Author: markt Date: Tue Aug 7 17:39:29 2012 New Revision: 1370382 URL: http://svn.apache.org/viewvc?rev=1370382&view=rev Log: FindBugs: Thread-safe update
Modified: tomcat/trunk/java/org/apache/catalina/tribes/transport/bio/util/FastQueue.java Modified: tomcat/trunk/java/org/apache/catalina/tribes/transport/bio/util/FastQueue.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/transport/bio/util/FastQueue.java?rev=1370382&r1=1370381&r2=1370382&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/tribes/transport/bio/util/FastQueue.java (original) +++ tomcat/trunk/java/org/apache/catalina/tribes/transport/bio/util/FastQueue.java Tue Aug 7 17:39:29 2012 @@ -17,6 +17,8 @@ package org.apache.catalina.tribes.transport.bio.util; +import java.util.concurrent.atomic.AtomicInteger; + import org.apache.catalina.tribes.ChannelMessage; import org.apache.catalina.tribes.Member; import org.apache.catalina.tribes.group.InterceptorPayload; @@ -54,7 +56,7 @@ public class FastQueue { /** * Current Queue elements size */ - private volatile int size = 0; + private AtomicInteger size = new AtomicInteger(0); /** * limit the queue length ( default is unlimited) @@ -182,7 +184,7 @@ public class FastQueue { } public int getSize() { - return size; + return size.get(); } /** @@ -202,39 +204,39 @@ public class FastQueue { lock.lockAdd(); try { if (log.isTraceEnabled()) { - log.trace("FastQueue.add: starting with size " + size); + log.trace("FastQueue.add: starting with size " + size.get()); } - if ((maxQueueLength > 0) && (size >= maxQueueLength)) { + if ((maxQueueLength > 0) && (size.get() >= maxQueueLength)) { ok = false; if (log.isTraceEnabled()) { - log.trace("FastQueue.add: Could not add, since queue is full (" + size + ">=" + maxQueueLength + ")"); + log.trace("FastQueue.add: Could not add, since queue is full (" + size.get() + ">=" + maxQueueLength + ")"); } } else { LinkObject element = new LinkObject(msg,destination, payload); - if (size == 0) { + if (size.get() == 0) { first = last = element; - size = 1; + size.set(1); } else { if (last == null) { ok = false; - log.error("FastQueue.add: Could not add, since last is null although size is "+ size + " (>0)"); + log.error("FastQueue.add: Could not add, since last is null although size is "+ size.get() + " (>0)"); } else { last.append(element); last = element; - size++; + size.incrementAndGet(); } } } if (first == null) { - log.error("FastQueue.add: first is null, size is " + size + " at end of add"); + log.error("FastQueue.add: first is null, size is " + size.get() + " at end of add"); } if (last == null) { - log.error("FastQueue.add: last is null, size is " + size+ " at end of add"); + log.error("FastQueue.add: last is null, size is " + size.get() + " at end of add"); } - if (log.isTraceEnabled()) log.trace("FastQueue.add: add ending with size " + size); + if (log.isTraceEnabled()) log.trace("FastQueue.add: add ending with size " + size.get()); } finally { lock.unlockAdd(true); @@ -271,16 +273,16 @@ public class FastQueue { } if (log.isTraceEnabled()) { - log.trace("FastQueue.remove: remove starting with size " + size); + log.trace("FastQueue.remove: remove starting with size " + size.get()); } element = first; first = last = null; - size = 0; + size.set(0); if (log.isTraceEnabled()) { - log.trace("FastQueue.remove: remove ending with size " + size); + log.trace("FastQueue.remove: remove ending with size " + size.get()); } } finally { --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org