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]