You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by cw...@apache.org on 2009/07/30 17:04:29 UTC
svn commit: r799308 -
/incubator/uima/sandbox/trunk/uima-as/uimaj-as-core/src/main/java/org/apache/uima/aae/spi/transport/vm/VmTransport.java
Author: cwiklik
Date: Thu Jul 30 15:04:29 2009
New Revision: 799308
URL: http://svn.apache.org/viewvc?rev=799308&view=rev
Log:
UIMA-1439 Modified stopIt() to wait for threads to stop
Modified:
incubator/uima/sandbox/trunk/uima-as/uimaj-as-core/src/main/java/org/apache/uima/aae/spi/transport/vm/VmTransport.java
Modified: incubator/uima/sandbox/trunk/uima-as/uimaj-as-core/src/main/java/org/apache/uima/aae/spi/transport/vm/VmTransport.java
URL: http://svn.apache.org/viewvc/incubator/uima/sandbox/trunk/uima-as/uimaj-as-core/src/main/java/org/apache/uima/aae/spi/transport/vm/VmTransport.java?rev=799308&r1=799307&r2=799308&view=diff
==============================================================================
--- incubator/uima/sandbox/trunk/uima-as/uimaj-as-core/src/main/java/org/apache/uima/aae/spi/transport/vm/VmTransport.java (original)
+++ incubator/uima/sandbox/trunk/uima-as/uimaj-as-core/src/main/java/org/apache/uima/aae/spi/transport/vm/VmTransport.java Thu Jul 30 15:04:29 2009
@@ -111,12 +111,26 @@
public void stopIt() throws UimaSpiException {
executor.purge();
executor.shutdownNow();
-
Set <Entry<String, UimaVmMessageDispatcher>> set = dispatchers.entrySet();
for( Entry<String, UimaVmMessageDispatcher> entry: set) {
UimaVmMessageDispatcher dispatcher = entry.getValue();
dispatcher.stop();
}
+ while( !executor.isShutdown()) {
+ Thread.currentThread().getThreadGroup().list();
+ synchronized(this) {
+ try {
+ this.wait(50);
+ } catch( InterruptedException e) {break;}
+ }
+ }
+ if ( executor.isShutdown() && threadGroup.activeCount() == 0) {
+ try {
+ threadGroup.destroy();
+ } catch ( Exception e) {
+ System.out.println("Thread Group:"+threadGroup.getName()+ " Still Has Active Threads. Current Count:"+threadGroup.activeCount());
+ }
+ }
}
public void destroy() {
try {