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 no...@apache.org on 2010/10/05 20:19:02 UTC
svn commit: r1004755 - in /james/server/trunk:
spoolmanager/src/main/java/org/apache/james/transport/JamesSpoolManager.java
spring-deployment/src/main/config/james/spring-beans.xml
Author: norman
Date: Tue Oct 5 18:19:02 2010
New Revision: 1004755
URL: http://svn.apache.org/viewvc?rev=1004755&view=rev
Log:
Explicit tell MailQueueFactory to depends on broker bean so spring does the shutdown ordering right. Also ignore exceptions while stop spoolmanage threads on destroying
Modified:
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/JamesSpoolManager.java
james/server/trunk/spring-deployment/src/main/config/james/spring-beans.xml
Modified: james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/JamesSpoolManager.java
URL: http://svn.apache.org/viewvc/james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/JamesSpoolManager.java?rev=1004755&r1=1004754&r2=1004755&view=diff
==============================================================================
--- james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/JamesSpoolManager.java (original)
+++ james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/JamesSpoolManager.java Tue Oct 5 18:19:02 2010
@@ -24,6 +24,7 @@ package org.apache.james.transport;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
+import java.util.concurrent.atomic.AtomicBoolean;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
@@ -77,7 +78,7 @@ public class JamesSpoolManager implement
/**
* Spool threads are active
*/
- private boolean active;
+ private AtomicBoolean active = new AtomicBoolean(false);
/**
* Spool threads
@@ -130,7 +131,7 @@ public class JamesSpoolManager implement
logger.info(infoBuffer.toString());
}
- active = true;
+ active.set(true);
numActive = 0;
spoolThreads = new java.util.ArrayList<Thread>(numThreads);
for ( int i = 0 ; i < numThreads ; i++ ) {
@@ -153,7 +154,7 @@ public class JamesSpoolManager implement
}
numActive++;
- while(active) {
+ while(active.get()) {
try {
queue.deQueue(new DequeueOperation() {
@@ -184,7 +185,7 @@ public class JamesSpoolManager implement
} catch (Throwable e) {
- if (logger.isErrorEnabled()) {
+ if (active.get() && logger.isErrorEnabled()) {
logger.error("Exception processing mail in JamesSpoolManager.run "
+ e.getMessage(), e);
}
@@ -209,7 +210,7 @@ public class JamesSpoolManager implement
@PreDestroy
public void dispose() {
logger.info("JamesSpoolManager dispose...");
- active = false; // shutdown the threads
+ active.set(false); // shutdown the threads
for (Thread thread: spoolThreads) {
thread.interrupt(); // interrupt any waiting accept() calls.
}
Modified: james/server/trunk/spring-deployment/src/main/config/james/spring-beans.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/spring-deployment/src/main/config/james/spring-beans.xml?rev=1004755&r1=1004754&r2=1004755&view=diff
==============================================================================
--- james/server/trunk/spring-deployment/src/main/config/james/spring-beans.xml (original)
+++ james/server/trunk/spring-deployment/src/main/config/james/spring-beans.xml Tue Oct 5 18:19:02 2010
@@ -150,7 +150,7 @@
<property name="start" value="true" />
</bean>
- <bean id="mailQueueFactory" class="org.apache.james.queue.activemq.ActiveMQMailQueueFactory">
+ <bean id="mailQueueFactory" class="org.apache.james.queue.activemq.ActiveMQMailQueueFactory" depends-on="broker">
<!-- Allow to specify if BlobMessage or BytesMessage should be used for storing the Mail in the queue-->
<!-- Please have a look at the javadocs of ActiveMQMailQueue for more information -->
<!-- By default only BytesMessage is used -->
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org