Author: adietish
Date: 2011-07-19 13:41:31 -0400 (Tue, 19 Jul 2011)
New Revision: 33047
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/JBoss7ManagerServicePoller.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/JBoss7ManagerUtil.java
Log:
[JBIDE-9369] corrected NPE when using the service instance variable which is not
instantiated when using the #getCurrentStateSynchronous (the normal life-cycle start with
#beginPolling which initializes all instance variables. if you use
#getCurrentStateSynchronous directly these instance vars are not initialized yet!)
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/JBoss7ManagerServicePoller.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/JBoss7ManagerServicePoller.java 2011-07-19
17:00:30 UTC (rev 33046)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/JBoss7ManagerServicePoller.java 2011-07-19
17:41:31 UTC (rev 33047)
@@ -22,6 +22,7 @@
import org.jboss.ide.eclipse.as.core.server.IServerStatePoller2;
import org.jboss.ide.eclipse.as.core.server.internal.PollThread;
import org.jboss.ide.eclipse.as.core.server.internal.ServerStatePollerType;
+import org.jboss.ide.eclipse.as.core.server.internal.v7.JBoss7ManagerUtil.IServiceAware;
/**
* @author André Dietisheim
@@ -131,18 +132,18 @@
return TIMEOUT_BEHAVIOR_FAIL;
}
- public boolean getCurrentStateSynchronous(IServer server) {
- IJBoss7ManagerService service = null;
+ public boolean getCurrentStateSynchronous(final IServer server) {
try {
- service = JBoss7ManagerUtil.getService(server);
- JBoss7ServerState state = service.getServerState(server.getHost(),
getManagementPort(server));
- return state == JBoss7ServerState.RUNNING ? IServerStatePoller.SERVER_UP :
IServerStatePoller.SERVER_DOWN;
+ JBoss7ManagerUtil.executeWithService(new IServiceAware<Boolean>() {
+
+ @Override
+ public Boolean execute(IJBoss7ManagerService service) throws Exception {
+ JBoss7ServerState state = service.getServerState(server.getHost(),
getManagementPort(server));
+ return state == JBoss7ServerState.RUNNING ? IServerStatePoller.SERVER_UP :
IServerStatePoller.SERVER_DOWN;
+ }
+ }, server);
} catch(Exception e) {
// ignore
- } finally {
- if (service != null) {
- service.dispose();
- }
}
return IServerStatePoller.SERVER_DOWN;
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/JBoss7ManagerUtil.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/JBoss7ManagerUtil.java 2011-07-19
17:00:30 UTC (rev 33046)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/JBoss7ManagerUtil.java 2011-07-19
17:41:31 UTC (rev 33047)
@@ -13,6 +13,7 @@
import org.eclipse.wst.server.core.IServer;
import org.jboss.ide.eclipse.as.core.JBossServerCorePlugin;
import org.jboss.ide.eclipse.as.core.server.IJBoss7ManagerService;
+import org.jboss.ide.eclipse.as.core.server.IServerStatePoller;
import org.osgi.framework.BundleContext;
public class JBoss7ManagerUtil {
@@ -39,4 +40,23 @@
service.dispose();
}
}
+
+ public static <RESULT> RESULT executeWithService(IServiceAware<RESULT>
serviceAware, IServer server) throws Exception {
+ IJBoss7ManagerService service = null;
+ try {
+ service = JBoss7ManagerUtil.getService(server);
+ return serviceAware.execute(service);
+ } finally {
+ if (service != null) {
+ service.dispose();
+ }
+ }
+ }
+
+ public static interface IServiceAware<RESULT> {
+
+ public RESULT execute(IJBoss7ManagerService service) throws Exception;
+
+ }
+
}
Show replies by date