boolean restartRequired = false;
// Temporarily store the properties
if (log.isDebugEnabled())
log.debug("Commiting properties");
AbstractPropertiesForm f = (AbstractPropertiesForm) form;
f.storeItems();
// Check for save ability
if (!((PropertiesForm) form).getEnabled()) {
throw new Exception("Disabled.");
}
// Set the properties
String oldVal, newVal;
PropertyDefinition def;
for (Iterator i = f.storedItems(); i.hasNext();) {
PropertyItem item = (PropertyItem) i.next();
def = item.getDefinition();
newVal = String.valueOf(item.getPropertyValue());
if (log.isDebugEnabled())
log.debug("Setting '" + def.getName() + "' to '" + newVal + "'");
oldVal = Property.setProperty(createKey(def, f, sessionInfo), newVal, sessionInfo);
if ((oldVal == null && newVal != null) || !oldVal.equals(newVal)) {
if (def.isRestartRequired()) {
restartRequired = true;
}
}
}
CoreUtil.resetMainNavigation(request.getSession());
// Clean up and forward
f.clearValues();
ActionForward fwd;
if (f.getForwardTo() != null && !f.getForwardTo().equals("")) {
fwd = new ActionForward(f.getForwardTo(), f.isRedirect());
} else {
fwd = cancel(mapping, form, request, response);
}
if (restartRequired) {
String orig = fwd.getPath();