Update of /var/cvs/src/org/mmbase/framework/basic
In directory james.mmbase.org:/tmp/cvs-serv19514/src/org/mmbase/framework/basic

Modified Files:
        BasicFramework.java 
Log Message:
small NPE fix


See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/framework/basic


Index: BasicFramework.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/basic/BasicFramework.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- BasicFramework.java 24 Feb 2008 10:46:20 -0000      1.12
+++ BasicFramework.java 11 Apr 2008 15:03:31 -0000      1.13
@@ -11,12 +11,15 @@
 import org.mmbase.framework.*;
 import java.util.*;
 import java.io.*;
+import java.net.URI;
+
 import javax.servlet.ServletRequest;
 import javax.servlet.http.HttpServletRequest;
 import org.mmbase.util.*;
 import org.mmbase.util.xml.Instantiator;
 import org.mmbase.bridge.Node;
 import org.mmbase.bridge.Cloud;
+import org.mmbase.core.util.SystemProperties;
 import org.mmbase.util.functions.*;
 import org.mmbase.util.transformers.Url;
 import org.mmbase.util.transformers.CharTransformer;
@@ -25,12 +28,14 @@
 import org.w3c.dom.Element;
 import org.w3c.dom.NodeList;
 
+import sun.security.krb5.internal.crypto.c;
+
 /**
  * The Basic framework is based on a list of [EMAIL PROTECTED] UrlConverter}s. 
It is
  * configured with an XML 'framework.xml'.
  *
  * @author Michiel Meeuwissen
- * @version $Id: BasicFramework.java,v 1.12 2008/02/24 10:46:20 michiel Exp $
+ * @version $Id: BasicFramework.java,v 1.13 2008/04/11 15:03:31 nklasens Exp $
  * @since MMBase-1.9
  */
 public class BasicFramework extends Framework {
@@ -244,7 +249,8 @@
             setBlockParametersForRender(state, blockParameters);
             actualRenderer.render(blockParameters, frameworkParameters, w, 
windowState);
         } catch (FrameworkException fe) {
-            Renderer error = new ErrorRenderer(renderer.getType(), 
renderer.getBlock(), renderer.getUri().toString(), 500, fe);
+            URI uri = renderer.getUri();
+            Renderer error = new ErrorRenderer(renderer.getType(), 
renderer.getBlock(), (uri != null) ? uri.toString() : null, 500, fe);
             error.render(blockParameters, frameworkParameters, w, windowState);
         } finally {
             state.endBlock();
@@ -328,6 +334,11 @@
         if (settingValues.containsKey(setting)) {
             return (C) settingValues.get(setting);
         } else {
+            C settingValue = loadSettingValue(setting);
+            if (settingValue != null) {
+                settingValues.put(setting, settingValue);
+                return settingValue;
+            }
             return setting.getDataType().getDefaultValue();
         }
     }
@@ -343,6 +354,7 @@
         } else {
             Cloud cloud = parameters.get(Parameter.CLOUD);
             if (cloud.getUser().getRank() == org.mmbase.security.Rank.ADMIN) {
+                saveSettingValue(setting, value);
                 return (C) settingValues.put(setting, value);
             } else {
                 throw new SecurityException("Permission denied");
@@ -350,7 +362,17 @@
         }
     }
 
+    public <C> C loadSettingValue(Setting<C> setting) {
+        String v = 
SystemProperties.getComponentProperty(setting.getComponent().getName(),
+                setting.getName());
+        if (v != null) {
+            return setting.getDataType().cast(v, null, null);
+        }
+        return null;
+    }
 
-
-
+    public <C> void saveSettingValue(Setting<C> setting, C value) {
+        SystemProperties.setComponentProperty(setting.getComponent().getName(),
+                setting.getName(), value.toString());
+    }
 }
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to