Author: rdonkin
Date: Mon May 12 11:22:39 2008
New Revision: 655588

URL: http://svn.apache.org/viewvc?rev=655588&view=rev
Log:
Classic case for AtomicLong

Modified:
    james/server/trunk/build-tools/base-build.xml
    james/server/trunk/phoenix-deployment/build.xml
    
james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/James.java
    
james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/ToMultiRepository.java

Modified: james/server/trunk/build-tools/base-build.xml
URL: 
http://svn.apache.org/viewvc/james/server/trunk/build-tools/base-build.xml?rev=655588&r1=655587&r2=655588&view=diff
==============================================================================
--- james/server/trunk/build-tools/base-build.xml (original)
+++ james/server/trunk/build-tools/base-build.xml Mon May 12 11:22:39 2008
@@ -225,7 +225,8 @@
                     <include name="${jackrabbit-commons.jar}"/>
                     <include name="${jackrabbit-rmi.jar}"/>
                     <include name="${jcr.jar}"/>
-                    <include name="${base-mailet.jar}"/>   
+                    <include name="${base-mailet.jar}"/>
+                       <include name="${backport-concurrent.jar}"/>
                 </fileset>   
             </path>   
             <path id='classpath.base.test'>  

Modified: james/server/trunk/phoenix-deployment/build.xml
URL: 
http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/build.xml?rev=655588&r1=655587&r2=655588&view=diff
==============================================================================
--- james/server/trunk/phoenix-deployment/build.xml (original)
+++ james/server/trunk/phoenix-deployment/build.xml Mon May 12 11:22:39 2008
@@ -107,7 +107,8 @@
             <include name="${jackrabbit-api.jar}"/>
             <include name="${jackrabbit-commons.jar}"/>
             <include name="${jackrabbit-rmi.jar}"/>
-            <include name="${jcr.jar}"/>   
+            <include name="${jcr.jar}"/>
+               <include name="${backport-concurrent.jar}"/>
             <!-- TODO: include libraries without wildcards -->
             <include 
name="${path.lib.james}/${jars-prefix}*-api-${version}.jar"/>
             <include 
name="${path.lib.james}/${jars-prefix}*-library-${version}.jar"/>

Modified: 
james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/James.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/James.java?rev=655588&r1=655587&r2=655588&view=diff
==============================================================================
--- 
james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/James.java
 (original)
+++ 
james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/James.java
 Mon May 12 11:22:39 2008
@@ -36,6 +36,8 @@
 import org.apache.avalon.framework.service.Serviceable;
 import org.apache.commons.collections.map.ReferenceMap;
 
+import edu.emory.mathcs.backport.java.util.concurrent.atomic.AtomicLong;
+
 import org.apache.james.core.MailHeaders;
 import org.apache.james.core.MailImpl;
 import org.apache.james.core.MailetConfigImpl;
@@ -147,7 +149,7 @@
      * The number of mails generated.  Access needs to be synchronized for
      * thread safety and to ensure that all threads see the latest value.
      */
-    private static long count;
+    private final static AtomicLong count = new AtomicLong(1);
 
     /**
      * The address of the postmaster for this server
@@ -610,10 +612,7 @@
      * @see org.apache.james.services.MailServer#getId()
      */
     public String getId() {
-        long localCount = -1;
-        synchronized (James.class) {
-            localCount = count++;
-        }
+        long localCount =  count.getAndIncrement();
         StringBuffer idBuffer =
             new StringBuffer(64)
                     .append("Mail")

Modified: 
james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/ToMultiRepository.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/ToMultiRepository.java?rev=655588&r1=655587&r2=655588&view=diff
==============================================================================
--- 
james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/ToMultiRepository.java
 (original)
+++ 
james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/ToMultiRepository.java
 Mon May 12 11:22:39 2008
@@ -34,6 +34,8 @@
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.RFC2822Headers;
 
+import edu.emory.mathcs.backport.java.util.concurrent.atomic.AtomicLong;
+
 import javax.mail.Header;
 import javax.mail.MessagingException;
 import javax.mail.internet.InternetHeaders;
@@ -73,7 +75,7 @@
      * The number of mails generated. Access needs to be synchronized for 
thread
      * safety and to ensure that all threads see the latest value.
      */
-    private static long count;
+    private final static AtomicLong count = new AtomicLong(1);
 
     /**
      * The mailserver reference
@@ -246,10 +248,7 @@
      * @return a new mail id
      */
     public String getId() {
-        long localCount = -1;
-        synchronized (this) {
-            localCount = count++;
-        }
+        final long localCount = count.getAndIncrement();
         StringBuffer idBuffer = new StringBuffer(64).append("Mail").append(
                 
System.currentTimeMillis()).append("-").append(localCount).append('L');
         return idBuffer.toString();



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to