You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dw...@apache.org on 2008/11/17 20:41:32 UTC
svn commit: r718344 -
/geronimo/server/trunk/plugins/console/console-base-portlets/src/main/java/org/apache/geronimo/console/configmanager/ConfigManagerPortlet.java
Author: dwoods
Date: Mon Nov 17 11:41:31 2008
New Revision: 718344
URL: http://svn.apache.org/viewvc?rev=718344&view=rev
Log:
GERONIMO-4377 Fail to indicate datasource create unsuccessfully in admin console database pool porlet when choosing wrong database driver. Thanks to Ivan for the patch.
Modified:
geronimo/server/trunk/plugins/console/console-base-portlets/src/main/java/org/apache/geronimo/console/configmanager/ConfigManagerPortlet.java
Modified: geronimo/server/trunk/plugins/console/console-base-portlets/src/main/java/org/apache/geronimo/console/configmanager/ConfigManagerPortlet.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/console/console-base-portlets/src/main/java/org/apache/geronimo/console/configmanager/ConfigManagerPortlet.java?rev=718344&r1=718343&r2=718344&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/console/console-base-portlets/src/main/java/org/apache/geronimo/console/configmanager/ConfigManagerPortlet.java (original)
+++ geronimo/server/trunk/plugins/console/console-base-portlets/src/main/java/org/apache/geronimo/console/configmanager/ConfigManagerPortlet.java Mon Nov 17 11:41:31 2008
@@ -40,7 +40,9 @@
import org.apache.geronimo.console.util.PortletManager;
import org.apache.geronimo.gbean.AbstractName;
import org.apache.geronimo.gbean.AbstractNameQuery;
+import org.apache.geronimo.gbean.GBeanData;
import org.apache.geronimo.kernel.DependencyManager;
+import org.apache.geronimo.kernel.InternalKernelException;
import org.apache.geronimo.kernel.Kernel;
import org.apache.geronimo.kernel.KernelRegistry;
import org.apache.geronimo.kernel.config.Configuration;
@@ -176,7 +178,7 @@
// todo we have a much more detailed report now
message(actionResponse, null, "Lifecycle operation failed<br /><br />");
logger.error("Lifecycle operation failed ", e);
- } catch (Exception e) {
+ } catch (Throwable e) {
message(actionResponse, null, "Encountered an unhandled exception<br /><br />");
logger.error("Exception", e);
}
@@ -274,7 +276,7 @@
}
} else if (shouldListConfig(info.getType())) {
- ModuleDetails details = new ModuleDetails(info.getConfigID(), info.getType(), info.getState());
+ ModuleDetails details = new ModuleDetails(info.getConfigID(), info.getType(), getConfigurationState(info));
try {
AbstractName configObjName = Configuration.getConfigurationAbstractName(info.getConfigID());
boolean loaded = loadModule(configManager, configObjName);
@@ -324,6 +326,30 @@
}
}
+ private State getConfigurationState(ConfigurationInfo configurationInfo) {
+ State configurationState = configurationInfo.getState();
+ if (configurationState.isRunning()) {
+ // Check whether the Configuration's sub-gbeans are running
+ try {
+ Configuration configuration = PortletManager.getConfigurationManager().getConfiguration(configurationInfo.getConfigID());
+ Map<AbstractName, GBeanData> abstractNameGBeanDataMap = configuration.getGBeans();
+ // Check one sub-GBean's state, if one gbean fails to start, all will be shutdown
+ Iterator<AbstractName> it = abstractNameGBeanDataMap.keySet().iterator();
+ if (it.hasNext()) {
+ AbstractName abstractName = it.next();
+ if (!PortletManager.getKernel().isRunning(abstractName)) {
+ return State.STOPPED;
+ }
+ }
+ } catch (InternalKernelException e) {
+ return State.STOPPED;
+ } catch (IllegalStateException e) {
+ return State.STOPPED;
+ }
+ }
+ return configurationState;
+ }
+
private WebModule getWebModule(Configuration config, Configuration child) {
try {
Map<String, String> query1 = new HashMap<String, String>();