Author: dabbous
Date: 2008-05-03 08:24:30-0700
New Revision: 10550
Modified:
trunk/src/java/org/tigris/scarab/actions/admin/AppConfigurationSettings.java
trunk/src/java/org/tigris/scarab/tools/ScarabGlobalTool.java
trunk/src/webapp/WEB-INF/templates/screens/admin/AppConfigurationSettings.vm
Log:
fixed ConfigurationException in JBOSS, when calling the scarab configuration editor
Modified: trunk/src/java/org/tigris/scarab/actions/admin/AppConfigurationSettings.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/actions/admin/AppConfigurationSettings.java?view=diff&rev=10550&p1=trunk/src/java/org/tigris/scarab/actions/admin/AppConfigurationSettings.java&p2=trunk/src/java/org/tigris/scarab/actions/admin/AppConfigurationSettings.java&r1=10549&r2=10550
==============================================================================
--- trunk/src/java/org/tigris/scarab/actions/admin/AppConfigurationSettings.java (original)
+++ trunk/src/java/org/tigris/scarab/actions/admin/AppConfigurationSettings.java 2008-05-03 08:24:30-0700
@@ -52,13 +52,17 @@
import org.apache.commons.collections.IteratorUtils;
import org.apache.commons.collections.iterators.EnumerationIterator;
import org.apache.commons.configuration.CompositeConfiguration;
+import org.apache.commons.configuration.ConversionException;
import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.fulcrum.parser.ParameterParser;
+import org.apache.log4j.Logger;
import org.apache.turbine.RunData;
import org.apache.turbine.TemplateContext;
import org.apache.turbine.Turbine;
import org.tigris.scarab.actions.base.RequireLoginFirstAction;
+import org.tigris.scarab.notification.ScarabNewNotificationManager;
import org.tigris.scarab.tools.localization.L10NKeySet;
+import org.tigris.scarab.util.Log;
import org.tigris.scarab.util.comparators.StartsWithPredicate;
/**
@@ -70,6 +74,7 @@
public class AppConfigurationSettings
extends RequireLoginFirstAction
{
+ public static Logger log = Log.get(AppConfigurationSettings.class.getName());
public void doSave(RunData data, TemplateContext context)
throws Exception
@@ -103,7 +108,22 @@
String realKey = pp.getString(key);
String value = pp.getString("configuration.value." + realKey);
- if (!Turbine.getConfiguration().getString(realKey).equals(value)){
+ String turbineValue;
+ try
+ {
+ turbineValue = Turbine.getConfiguration().getString(realKey);
+ }
+ catch( ConversionException ce)
+ {
+ // This happens, if the Turbine Property is not a String.
+ // This has been seen on JBOSS. Since we can't provide any
+ // reasonable value here, ignore the entry and continue.
+ log.warn("Turbine property ["+realKey+"] is not a String value. No update done. (continue)");
+ turbineValue = null;
+ }
+
+ if (turbineValue != null && !turbineValue.equals(value))
+ {
Turbine.getConfiguration().setProperty(realKey,value);
customSettings.setProperty(realKey,value);
customSettingsChanged=true;
Modified: trunk/src/java/org/tigris/scarab/tools/ScarabGlobalTool.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/tools/ScarabGlobalTool.java?view=diff&rev=10550&p1=trunk/src/java/org/tigris/scarab/tools/ScarabGlobalTool.java&p2=trunk/src/java/org/tigris/scarab/tools/ScarabGlobalTool.java&r1=10549&r2=10550
==============================================================================
--- trunk/src/java/org/tigris/scarab/tools/ScarabGlobalTool.java (original)
+++ trunk/src/java/org/tigris/scarab/tools/ScarabGlobalTool.java 2008-05-03 08:24:30-0700
@@ -55,6 +55,7 @@
import java.util.Enumeration;
import java.util.Vector;
+import org.apache.commons.configuration.ConversionException;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.apache.fulcrum.TurbineServices;
@@ -903,5 +904,31 @@
{
return Turbine.getConfiguration();
}
-
+
+ /**
+ * @return Returns the string value of a turbine property. If the property
+ * does not map to a String, return Object.toString() instead.
+ */
+ public String getTurbineProperty(String key)
+ {
+ String result = null;
+ try
+ {
+ result = getTurbineConfiguration().getString(key);
+ }
+ catch( ConversionException ce)
+ {
+ // This happens, if the Turbine Property contains data, which can
+ // not be converted to a String. This has been seen on JBOSS.
+ // Note: getProperty() does not resolve ${} values, so it is not an
+ // option to use it instead of getString(). But in the case of
+ // non convertible objects, getProperty().toString() is the best bet.
+ // In my opinion this should be handled inside of Configuration,
+ // or at least we should be given a test method Configuration.isString(key)
+ // So we could avoid this stuff here...
+ // just my 2 cents. (hussayn dabbous)
+ result = getTurbineConfiguration().getProperty(key).toString();
+ }
+ return result;
+ }
}
Modified: trunk/src/webapp/WEB-INF/templates/screens/admin/AppConfigurationSettings.vm
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/webapp/WEB-INF/templates/screens/admin/AppConfigurationSettings.vm?view=diff&rev=10550&p1=trunk/src/webapp/WEB-INF/templates/screens/admin/AppConfigurationSettings.vm&p2=trunk/src/webapp/WEB-INF/templates/screens/admin/AppConfigurationSettings.vm&r1=10549&r2=10550
==============================================================================
--- trunk/src/webapp/WEB-INF/templates/screens/admin/AppConfigurationSettings.vm (original)
+++ trunk/src/webapp/WEB-INF/templates/screens/admin/AppConfigurationSettings.vm 2008-05-03 08:24:30-0700
@@ -15,7 +15,7 @@
<th>$key</th>
<td>
<input type="hidden" name="configuration.key.$key" value="$key" />
- <input type="text" name="configuration.value.$key" value="$scarabG.getTurbineConfiguration().getString($key)" size="80"/>
+ <input type="text" name="configuration.value.$key" value="$scarabG.getTurbineProperty($key)" size="80"/>
</td>
</tr>
#end
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.