[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