You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by bo...@apache.org on 2008/05/10 17:26:28 UTC

svn commit: r655111 - in /ode/trunk: axis2/src/main/java/org/apache/ode/axis2/ODEServer.java bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java

Author: boisvert
Date: Sat May 10 08:26:27 2008
New Revision: 655111

URL: http://svn.apache.org/viewvc?rev=655111&view=rev
Log:
ODE-279: Ode doesn't shutdown properly under Tomcat

Modified:
    ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java
    ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java
    ode/trunk/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java

Modified: ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java
URL: http://svn.apache.org/viewvc/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java?rev=655111&r1=655110&r2=655111&view=diff
==============================================================================
--- ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java (original)
+++ ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java Sat May 10 08:26:27 2008
@@ -274,6 +274,15 @@
                 _txMgr = null;
             }
 
+            if (_connector != null) {
+                try {
+                    __log.debug("shutdown BpelConnector");
+                    _connector.shutdown();
+                } catch (Throwable t) {
+                    __log.error("Unable to cleanup temp files.", t);
+                }
+            }
+            
             try {
                 __log.debug("cleaning up temporary files.");
                 TempFileManager.cleanup();
@@ -281,6 +290,7 @@
                 __log.error("Unable to cleanup temp files.", t);
             }
 
+
             __log.info(__msgs.msgOdeShutdownCompleted());
         } finally {
             Thread.currentThread().setContextClassLoader(old);

Modified: ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java
URL: http://svn.apache.org/viewvc/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java?rev=655111&r1=655110&r2=655111&view=diff
==============================================================================
--- ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java (original)
+++ ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java Sat May 10 08:26:27 2008
@@ -29,6 +29,7 @@
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
+import java.util.concurrent.ThreadFactory;
 import java.util.concurrent.atomic.AtomicLong;
 import java.util.concurrent.locks.ReadWriteLock;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
@@ -187,9 +188,19 @@
             __log.debug("BPEL SERVER starting.");
 
 
-            if (_exec == null)
-                _exec = Executors.newCachedThreadPool();
-
+            if (_exec == null) {
+                ThreadFactory threadFactory = new ThreadFactory() {
+                    int threadNumber = 0;
+                    public Thread newThread(Runnable r) {
+                        threadNumber += 1;
+                        Thread t = new Thread(r, "ODEServerImpl-"+threadNumber);
+                        t.setDaemon(true);
+                        return t;
+                    }
+                };
+                _exec = Executors.newCachedThreadPool(threadFactory);
+            }
+            
             if (_contexts.txManager == null) {
                 String errmsg = "Transaction manager not specified; call setTransactionManager(...)!";
                 __log.fatal(errmsg);

Modified: ode/trunk/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java
URL: http://svn.apache.org/viewvc/ode/trunk/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java?rev=655111&r1=655110&r2=655111&view=diff
==============================================================================
--- ode/trunk/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java (original)
+++ ode/trunk/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java Sat May 10 08:26:27 2008
@@ -32,6 +32,7 @@
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
+import java.util.concurrent.ThreadFactory;
 import java.util.concurrent.locks.ReadWriteLock;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 
@@ -106,7 +107,7 @@
      * to get confused ii) we're already serializing all the operations with a read/write lock. iii) we don't care about
      * performance, these are infrequent operations.
      */
-    private ExecutorService _executor = Executors.newSingleThreadExecutor();
+    private ExecutorService _executor = Executors.newSingleThreadExecutor(new SimpleThreadFactory());
 
     /**
      * In-memory DataSource, or <code>null</code> if we are using a real DS. We need this to shutdown the DB.
@@ -779,4 +780,16 @@
 	public void setExtensionValidators(Map<QName, ExtensionValidator> extensionValidators) {
 		_extensionValidators = extensionValidators;
 	}
+    
+
+    private class SimpleThreadFactory implements ThreadFactory {
+        int threadNumber = 0;
+        public Thread newThread(Runnable r) {
+            threadNumber += 1;
+            Thread t = new Thread(r, "ProcessStoreImpl-"+threadNumber);
+            t.setDaemon(true);
+            return t;
+        }
+    }
+    
 }