[prev in list] [next in list] [prev in thread] [next in thread]
List: openejb-cvs
Subject: svn commit: r1403263 - /openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openej
From: rmannibucau () apache ! org
Date: 2012-10-29 12:20:42
Message-ID: 20121029122042.9342223888E4 () eris ! apache ! org
[Download RAW message or body]
Author: rmannibucau
Date: Mon Oct 29 12:20:42 2012
New Revision: 1403263
URL: http://svn.apache.org/viewvc?rev=1403263&view=rev
Log:
waiting for tomee shutdown in stop method
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/mai \
n/java/org/apache/openejb/config/RemoteServer.java?rev=1403263&r1=1403262&r2=1403263&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java \
(original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java \
Mon Oct 29 12:20:42 2012 @@ -24,13 +24,9 @@ import org.apache.openejb.util.Pipe;
import java.io.File;
import java.io.OutputStream;
import java.lang.reflect.Field;
+import java.net.InetSocketAddress;
import java.net.Socket;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
+import java.util.*;
/**
* @version $Rev$ $Date$
@@ -428,12 +424,32 @@ public class RemoteServer {
if (!serverHasAlreadyBeenStarted) {
try {
shutdown();
+
+ // check tomcat was effectively shutted down
+ // we can have some concurrent shutdown commands (catalina shutdown \
hook for instance) + // so we can have to wait here since it is \
important to be synchronous in this method + waitForServerShutdown();
} catch (Exception e) {
e.printStackTrace(System.err);
}
}
}
+ private void waitForServerShutdown() throws InterruptedException {
+ if (verbose) {
+ System.out.print("Waiting for TomEE shutdown.");
+ }
+ while (connect()) {
+ Thread.sleep(1000);
+ if (verbose) {
+ System.out.print(".");
+ }
+ }
+ if (verbose) {
+ System.out.println();
+ }
+ }
+
private void forceShutdown() throws Exception {
String fcommand = command + Character.toString((char) 0); // SHUTDOWN + EOF
@@ -463,7 +479,8 @@ public class RemoteServer {
Socket socket = null;
try {
- socket = new Socket(host, shutdownPort);
+ socket = new Socket(); // wee need a timeout here
+ socket.connect(new InetSocketAddress(host, shutdownPort), 1000);
socket.getOutputStream().close();
if (verbose) System.out.println("[] CONNECTED IN " + (this.tries - \
tries)); } catch (Exception e) {
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic