You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by rd...@apache.org on 2008/05/12 20:22:39 UTC
svn commit: r655588 - in /james/server/trunk: build-tools/
phoenix-deployment/ spoolmanager-function/src/main/java/org/apache/james/
spoolmanager-function/src/main/java/org/apache/james/transport/mailets/
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: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org