[jbosstools-commits] JBoss Tools SVN: r42682 - branches/jbosstools-3.3.x/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Tue Jul 24 00:04:41 EDT 2012


Author: rob.stryker at jboss.com
Date: 2012-07-24 00:04:40 -0400 (Tue, 24 Jul 2012)
New Revision: 42682

Modified:
   branches/jbosstools-3.3.x/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/JBoss7ManagerServicePoller.java
Log:
JBIDE_12216 missed file to branch

Modified: branches/jbosstools-3.3.x/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/JBoss7ManagerServicePoller.java
===================================================================
--- branches/jbosstools-3.3.x/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/JBoss7ManagerServicePoller.java	2012-07-24 04:03:57 UTC (rev 42681)
+++ branches/jbosstools-3.3.x/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/JBoss7ManagerServicePoller.java	2012-07-24 04:04:40 UTC (rev 42682)
@@ -99,15 +99,17 @@
 	}
 
 	private String[] handleAsynchCallbacks(String[] prompts) {
-		List<String> tmp = new ArrayList<String>();
-		tmp.addAll(Arrays.asList(prompts));
-		setRequiredProperties(tmp);
-		RequiresInfoException e2 = new RequiresInfoException("Requires proper credentials"); //$NON-NLS-1$
-		setRequiredInfoException(e2);
-		while( !getDone() && !getCanceled() && getRequiredPropertiesReturned() == null ) {
-			try {
-				Thread.sleep(500);
-			} catch(InterruptedException ie) {/* Do nothing */}
+		if( getRequiredPropertiesReturned() == null ) {
+			List<String> tmp = new ArrayList<String>();
+			tmp.addAll(Arrays.asList(prompts));
+			setRequiredProperties(tmp);
+			RequiresInfoException e2 = new RequiresInfoException("Requires proper credentials"); //$NON-NLS-1$
+			setRequiredInfoException(e2);
+			while( !getDone() && !getCanceled() && getRequiredPropertiesReturned() == null ) {
+				try {
+					Thread.sleep(500);
+				} catch(InterruptedException ie) {/* Do nothing */}
+			}
 		}
 		
 		if( getDone() || getCanceled() )
@@ -119,6 +121,7 @@
 		
 		// If not cleared then it will keep asking for username/password
 		setRequiredInfoException(null);
+		setRequiredProperties(null);
 		
 		return retPrompts;
 	}
@@ -184,9 +187,21 @@
 			serverState = service.getServerState(managementDetails);
 			return serverState == JBoss7ServerState.RUNNING;
 		} catch (Exception e) {
+			Throwable root = getRootException(e);
+			// If the exception is one that autnentication failed, re-prompt.
+			if(root != null && root.getMessage() != null && root.getMessage().startsWith("Authentication failed:")) //$NON-NLS-1$
+				provideCredentials(null);
+			// Otherwise, keep trying. 
 			return false;
 		}
 	}
+	
+	private Throwable getRootException(Throwable e) {
+		Throwable cause = e.getCause();
+		if( cause != e && cause != null )
+			return getRootException(cause);
+		return cause == null ? e : cause;
+	}
 
 	private boolean checkShutdown(IJBoss7ManagerService service) {
 		try {



More information about the jbosstools-commits mailing list