Author: rmannibucau
Date: Mon Oct 1 16:57:03 2012
New Revision: 1392442
URL: http://svn.apache.org/viewvc?rev=1392442&view=rev
Log:
TOMEE-441 tries was not used
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/main/java/org/apache/openejb/config/RemoteServer.java?rev=1392442&r1=1392441&r2=1392442&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 1 16:57:03 2012
@@ -504,33 +504,35 @@ public class RemoteServer {
public void run() {
long sleep = 0; // recall immediately shutdown (win issue)
int tries = MAX_TRIES;
- try {
- Thread.sleep(sleep);
- sleep += SLEEP_INC;
- if (server != null) {
- server.exitValue();
- }
- } catch (IllegalThreadStateException itse) {
- tries--;
- if (tries == 0) {
+ while (tries > 0) {
+ try {
+ Thread.sleep(sleep);
+ sleep += SLEEP_INC;
if (server != null) {
- // not yet terminated, kill
- server.destroy();
+ server.exitValue();
+ }
+ break; // server == null or exitValue returned (= process
stopped)
+ } catch (IllegalThreadStateException itse) {
+ tries--;
+ if (tries == 0) { // kill if possible
+ if (server != null) {
+ server.destroy();
+ try {
+ server.waitFor();
+ } catch (InterruptedException e) {
+ // no-op
+ }
+ }
+ } else { // under windows we sometimes need to send
shutdown multiple times (see connect())
try {
- server.waitFor();
- } catch (InterruptedException e) {
+ shutdown();
+ } catch (Exception e) {
// no-op
}
}
- } else { // under windows we sometimes need to send shutdown
multiple times
- try {
- shutdown();
- } catch (Exception e) {
- // no-op
- }
+ } catch (InterruptedException e) {
+ // no-op
}
- } catch (InterruptedException e) {
- // no-op
}
}
}