[jboss-cvs] jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/runtime/server/polling ...
Robert Stryker
rawblem at gmail.com
Mon Jan 29 21:39:56 EST 2007
User: rawb
Date: 07/01/29 21:39:56
Modified: as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/runtime/server/polling
PollThread.java TwiddlePoller.java
Log:
Added some exceptions for JBIDE-400.
Exception gets logged to event log
Revision Changes Path
1.6 +33 -4 jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/runtime/server/polling/PollThread.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: PollThread.java
===================================================================
RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/runtime/server/polling/PollThread.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- PollThread.java 11 Jan 2007 15:55:01 -0000 1.5
+++ PollThread.java 30 Jan 2007 02:39:56 -0000 1.6
@@ -29,6 +29,7 @@
import org.jboss.ide.eclipse.as.core.model.EventLogModel.EventLogRoot;
import org.jboss.ide.eclipse.as.core.model.EventLogModel.EventLogTreeItem;
import org.jboss.ide.eclipse.as.core.runtime.server.IServerStatePoller;
+import org.jboss.ide.eclipse.as.core.runtime.server.IServerStatePoller.PollingException;
import org.jboss.ide.eclipse.as.core.server.JBossServer;
import org.jboss.ide.eclipse.as.core.server.JBossServerBehavior;
import org.jboss.ide.eclipse.as.core.server.ServerAttributeHelper;
@@ -49,8 +50,9 @@
public static final String SUCCESS = "org.jboss.ide.eclipse.as.core.runtime.server.PollThread.success";
public static final String POLL_THREAD_ABORTED = "org.jboss.ide.eclipse.as.core.runtime.server.PollThread.aborted";
public static final String POLL_THREAD_TIMEOUT = "org.jboss.ide.eclipse.as.core.runtime.server.PollThread.timeout";
-
public static final String EXPECTED_STATE = "org.jboss.ide.eclipse.as.core.runtime.server.PollThreadEvent.expectedState";
+ public static final String POLL_THREAD_EXCEPTION = "org.jboss.ide.eclipse.as.core.runtime.server.PollThread.exception";
+ public static final String POLL_THREAD_EXCEPTION_MESSAGE = "org.jboss.ide.eclipse.as.core.runtime.server.PollThread.exception.message";
private boolean expectedState;
@@ -101,8 +103,19 @@
while( !abort && !done && new Date().getTime() < startTime + maxWait ) {
try {
Thread.sleep(100);
- done = poller.isComplete();
} catch( InterruptedException ie ) { }
+
+ try {
+ done = poller.isComplete();
+ } catch( PollingException e ) {
+ // abort and put the message in event log
+ poller.cancel(IServerStatePoller.CANCEL);
+ poller.cleanup();
+ if( expectedState == IServerStatePoller.SERVER_UP) behavior.stop(true);
+ if( expectedState == IServerStatePoller.SERVER_DOWN) behavior.setServerStarted();
+ alertEventLogPollerException(e);
+ return;
+ }
}
boolean currentState = !expectedState;
if( abort ) {
@@ -113,8 +126,18 @@
boolean finalAlert = true;
if( done ) {
// the poller has an answer
+ try {
currentState = poller.getState();
poller.cleanup();
+ } catch( PollingException pe) {
+ // abort and put the message in event log
+ poller.cancel(IServerStatePoller.CANCEL);
+ poller.cleanup();
+ if( expectedState == IServerStatePoller.SERVER_UP) behavior.stop(true);
+ if( expectedState == IServerStatePoller.SERVER_DOWN) behavior.setServerStarted();
+ alertEventLogPollerException(pe);
+ return;
+ }
} else {
// we timed out. get response from preferences
poller.cancel(IServerStatePoller.TIMEOUT_REACHED);
@@ -180,6 +203,12 @@
return activeEvent;
}
+ protected void alertEventLogPollerException(PollingException e) {
+ PollThreadEvent event = new PollThreadEvent(activeEvent, POLL_THREAD_EXCEPTION, expectedState);
+ event.setProperty(POLL_THREAD_EXCEPTION_MESSAGE, e.getMessage());
+ EventLogModel.markChanged(activeEvent);
+ }
+
protected void alertEventLogAbort() {
PollThreadEvent event = new PollThreadEvent(activeEvent, POLL_THREAD_ABORTED, expectedState);
EventLogModel.markChanged(activeEvent);
1.5 +10 -2 jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/runtime/server/polling/TwiddlePoller.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: TwiddlePoller.java
===================================================================
RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/runtime/server/polling/TwiddlePoller.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- TwiddlePoller.java 11 Jan 2007 15:55:01 -0000 1.4
+++ TwiddlePoller.java 30 Jan 2007 02:39:56 -0000 1.5
@@ -51,6 +51,7 @@
private boolean canceled;
private boolean done;
private IServer server;
+ private boolean securityException = false;
private EventLogTreeItem event;
public void beginPolling(IServer server, boolean expectedState, PollThread pt) {
@@ -84,6 +85,9 @@
started = STATE_STARTED;
} else if(out.startsWith("Started=false")) {
started = STATE_TRANSITION; // it's alive and responding
+ } else if( out.indexOf("java.lang.SecurityException") != -1 ) {
+ // throw exception
+ securityException = true;
} else {
started = STATE_STOPPED; // It's fully down
}
@@ -136,7 +140,11 @@
}
}
- public boolean getState() {
+ public class PollingSecurityException extends PollingException {
+ public PollingSecurityException(String msg) {super(msg);}
+ }
+ public boolean getState() throws PollingException {
+ if( securityException ) throw new PollingSecurityException("Security Exception");
if( started == 0 ) return SERVER_DOWN;
if( started == 1 ) return SERVER_UP;
@@ -146,7 +154,7 @@
return expectedState; // done or canceled, doesnt matter
}
- public boolean isComplete() {
+ public boolean isComplete() throws PollingException {
return done;
}
More information about the jboss-cvs-commits
mailing list