Author: toad
Date: 2008-06-18 19:02:46 +0000 (Wed, 18 Jun 2008)
New Revision: 20450

Added:
   branches/db4o/freenet/src/freenet/config/NullBooleanCallback.java
   branches/db4o/freenet/src/freenet/config/NullIntCallback.java
   branches/db4o/freenet/src/freenet/config/NullLongCallback.java
   branches/db4o/freenet/src/freenet/config/NullShortCallback.java
   branches/db4o/freenet/src/freenet/config/NullStringCallback.java
Modified:
   branches/db4o/freenet/src/freenet/config/SubConfig.java
Log:
Fix more NPEs: allow null for the callback for any config option except 
StringArray

Added: branches/db4o/freenet/src/freenet/config/NullBooleanCallback.java
===================================================================
--- branches/db4o/freenet/src/freenet/config/NullBooleanCallback.java           
                (rev 0)
+++ branches/db4o/freenet/src/freenet/config/NullBooleanCallback.java   
2008-06-18 19:02:46 UTC (rev 20450)
@@ -0,0 +1,15 @@
+package freenet.config;
+
+import freenet.support.api.BooleanCallback;
+
+public class NullBooleanCallback implements BooleanCallback {
+
+       public boolean get() {
+               return false;
+       }
+
+       public void set(boolean val) throws InvalidConfigValueException {
+               // Ignore
+       }
+
+}

Added: branches/db4o/freenet/src/freenet/config/NullIntCallback.java
===================================================================
--- branches/db4o/freenet/src/freenet/config/NullIntCallback.java               
                (rev 0)
+++ branches/db4o/freenet/src/freenet/config/NullIntCallback.java       
2008-06-18 19:02:46 UTC (rev 20450)
@@ -0,0 +1,15 @@
+package freenet.config;
+
+import freenet.support.api.IntCallback;
+
+public class NullIntCallback implements IntCallback {
+
+       public int get() {
+               return 0;
+       }
+
+       public void set(int val) throws InvalidConfigValueException {
+               // Ignore
+       }
+
+}

Added: branches/db4o/freenet/src/freenet/config/NullLongCallback.java
===================================================================
--- branches/db4o/freenet/src/freenet/config/NullLongCallback.java              
                (rev 0)
+++ branches/db4o/freenet/src/freenet/config/NullLongCallback.java      
2008-06-18 19:02:46 UTC (rev 20450)
@@ -0,0 +1,15 @@
+package freenet.config;
+
+import freenet.support.api.LongCallback;
+
+public class NullLongCallback implements LongCallback {
+
+       public long get() {
+               return 0;
+       }
+
+       public void set(long val) throws InvalidConfigValueException {
+               // Ignore
+       }
+
+}

Added: branches/db4o/freenet/src/freenet/config/NullShortCallback.java
===================================================================
--- branches/db4o/freenet/src/freenet/config/NullShortCallback.java             
                (rev 0)
+++ branches/db4o/freenet/src/freenet/config/NullShortCallback.java     
2008-06-18 19:02:46 UTC (rev 20450)
@@ -0,0 +1,15 @@
+package freenet.config;
+
+import freenet.support.api.ShortCallback;
+
+public class NullShortCallback implements ShortCallback {
+
+       public short get() {
+               return 0;
+       }
+
+       public void set(short val) throws InvalidConfigValueException {
+               // Ignore
+       }
+
+}

Added: branches/db4o/freenet/src/freenet/config/NullStringCallback.java
===================================================================
--- branches/db4o/freenet/src/freenet/config/NullStringCallback.java            
                (rev 0)
+++ branches/db4o/freenet/src/freenet/config/NullStringCallback.java    
2008-06-18 19:02:46 UTC (rev 20450)
@@ -0,0 +1,15 @@
+package freenet.config;
+
+import freenet.support.api.StringCallback;
+
+public class NullStringCallback implements StringCallback {
+
+       public String get() {
+               return null;
+       }
+
+       public void set(String val) throws InvalidConfigValueException {
+               // Ignore
+       }
+
+}

Modified: branches/db4o/freenet/src/freenet/config/SubConfig.java
===================================================================
--- branches/db4o/freenet/src/freenet/config/SubConfig.java     2008-06-18 
18:51:00 UTC (rev 20449)
+++ branches/db4o/freenet/src/freenet/config/SubConfig.java     2008-06-18 
19:02:46 UTC (rev 20450)
@@ -62,36 +62,43 @@

        public void register(String optionName, int defaultValue, int sortOrder,
                        boolean expert, boolean forceWrite, String shortDesc, 
String longDesc, IntCallback cb) {
+               if(cb == null) cb = new NullIntCallback();
                register(new IntOption(this, optionName, defaultValue, null, 
sortOrder, expert, forceWrite, shortDesc, longDesc, cb));
        }

        public void register(String optionName, long defaultValue, int 
sortOrder,
                        boolean expert, boolean forceWrite, String shortDesc, 
String longDesc, LongCallback cb) {
+               if(cb == null) cb = new NullLongCallback();
                register(new LongOption(this, optionName, defaultValue, null, 
sortOrder, expert, forceWrite, shortDesc, longDesc, cb));
        }

        public void register(String optionName, String defaultValueString, int 
sortOrder,
                        boolean expert, boolean forceWrite, String shortDesc, 
String longDesc, IntCallback cb) {
+               if(cb == null) cb = new NullIntCallback();
                register(new IntOption(this, optionName, defaultValueString, 
sortOrder, expert, forceWrite, shortDesc, longDesc, cb));
        }

        public void register(String optionName, String defaultValueString, int 
sortOrder,
                        boolean expert, boolean forceWrite, String shortDesc, 
String longDesc, LongCallback cb) {
+               if(cb == null) cb = new NullLongCallback();
                register(new LongOption(this, optionName, defaultValueString, 
sortOrder, expert, forceWrite, shortDesc, longDesc, cb));
        }

        public void register(String optionName, boolean defaultValue, int 
sortOrder,
                        boolean expert, boolean forceWrite, String shortDesc, 
String longDesc, BooleanCallback cb) {
+               if(cb == null) cb = new NullBooleanCallback();
                register(new BooleanOption(this, optionName, defaultValue, 
sortOrder, expert, forceWrite, shortDesc, longDesc, cb));
        }

        public void register(String optionName, String defaultValue, int 
sortOrder,
                        boolean expert, boolean forceWrite, String shortDesc, 
String longDesc, StringCallback cb) {
+               if(cb == null) cb = new NullStringCallback();
                register(new StringOption(this, optionName, defaultValue, 
sortOrder, expert, forceWrite, shortDesc, longDesc, cb));
        }

        public void register(String optionName, short defaultValue, int 
sortOrder,
                        boolean expert, boolean forceWrite, String shortDesc, 
String longDesc, ShortCallback cb) {
+               if(cb == null) cb = new NullShortCallback();
                register(new ShortOption(this, optionName, defaultValue, 
sortOrder, expert, forceWrite, shortDesc, longDesc, cb));
        }



Reply via email to