Author: rob.stryker(a)jboss.com
Date: 2011-07-18 01:05:20 -0400 (Mon, 18 Jul 2011)
New Revision: 32992
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/LocalJBossBehaviorDelegate.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/launch/StopLaunchConfiguration.java
Log:
JBIDE-9354 - fixing regressions
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/LocalJBossBehaviorDelegate.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/LocalJBossBehaviorDelegate.java 2011-07-18
04:27:06 UTC (rev 32991)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/LocalJBossBehaviorDelegate.java 2011-07-18
05:05:20 UTC (rev 32992)
@@ -86,6 +86,10 @@
@Override
protected IStatus gracefullStop() {
+ // If you do not set the server as stopping BEFORE returning from this method,
+ // The WTP framework will assume you have not begun stopping, and will assume
+ // you CANNOT attempt to stop, and thus, that the stop cannot succeed / has failed.
+ setServerStopping();
new Thread() {
@Override
@@ -97,13 +101,12 @@
ILaunch launch = wc.launch(ILaunchManager.RUN_MODE, new NullProgressMonitor());
IProcess stopProcess = launch.getProcesses()[0];
ThreadUtils.sleepWhileRunning(stopProcess);
- if (stopProcess.getExitValue() == 0) {
+ if (stopProcess.getExitValue() != 0) {
// TODO: correct concurrent access to process, pollThread and
nextStopRequiresForce
- if( isProcessRunning() ) {
- setServerStarted();
- cancelPolling(Messages.STOP_FAILED_MESSAGE);
- nextStopRequiresForce = true;
- }
+ // Stop process exit value was NOT zero, so the stop process failed
+ setServerStarted();
+ cancelPolling(Messages.STOP_FAILED_MESSAGE);
+ nextStopRequiresForce = true;
}
} catch( CoreException ce ) {
JBossServerCorePlugin.getDefault().getLog().log(ce.getStatus());
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/launch/StopLaunchConfiguration.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/launch/StopLaunchConfiguration.java 2011-07-18
04:27:06 UTC (rev 32991)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/launch/StopLaunchConfiguration.java 2011-07-18
05:05:20 UTC (rev 32992)
@@ -16,11 +16,13 @@
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Status;
import org.eclipse.debug.core.DebugPlugin;
import org.eclipse.debug.core.ILaunch;
+import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.debug.core.ILaunchConfigurationType;
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
import org.eclipse.debug.core.ILaunchManager;
@@ -33,11 +35,14 @@
import org.jboss.ide.eclipse.as.core.server.IJBoss6Server;
import org.jboss.ide.eclipse.as.core.server.IJBossServerRuntime;
import org.jboss.ide.eclipse.as.core.server.internal.AbstractJBossBehaviourDelegate;
+import org.jboss.ide.eclipse.as.core.server.internal.DelegatingServerBehavior;
import org.jboss.ide.eclipse.as.core.server.internal.JBossServer;
import
org.jboss.ide.eclipse.as.core.server.internal.launch.configuration.JBossLaunchConfigProperties;
import org.jboss.ide.eclipse.as.core.util.IJBossRuntimeConstants;
import org.jboss.ide.eclipse.as.core.util.IJBossRuntimeResourceConstants;
import org.jboss.ide.eclipse.as.core.util.IJBossToolingConstants;
+import org.jboss.ide.eclipse.as.core.util.JBossServerBehaviorUtils;
+import org.jboss.ide.eclipse.as.core.util.LaunchCommandPreferences;
import org.jboss.ide.eclipse.as.core.util.LaunchConfigUtils;
import org.jboss.ide.eclipse.as.core.util.RuntimeUtils;
import org.jboss.ide.eclipse.as.core.util.ServerConverter;
@@ -100,7 +105,23 @@
return wc;
}
+
+ @Override
+ public boolean preLaunchCheck(ILaunchConfiguration configuration, String mode,
IProgressMonitor monitor)
+ throws CoreException {
+ DelegatingServerBehavior jbsBehavior =
JBossServerBehaviorUtils.getServerBehavior(configuration);
+ if (!jbsBehavior.canStop(mode).isOK())
+ throw new CoreException(jbsBehavior.canStart(mode));
+ if (LaunchCommandPreferences.isIgnoreLaunchCommand(jbsBehavior.getServer())) {
+ jbsBehavior.setServerStopping();
+ jbsBehavior.setServerStopped();
+ return false;
+ }
+ jbsBehavior.setServerStopping();
+ return true;
+ }
+
/**
* moved to {@link AbstractJBossBehaviourDelegate#getDefaultStopArguments()}
*/
Show replies by date