Author: nextgens
Date: 2007-01-03 13:50:48 +0000 (Wed, 03 Jan 2007)
New Revision: 11553

Modified:
   trunk/freenet/src/freenet/node/Version.java
   trunk/freenet/src/freenet/support/Fields.java
Log:
Fix an NPE reported by zothar:
[13:41] < Zothar_Work> | INFO   | jvm 2    | 2007/01/02 10:01:41 | 
java.lang.NullPointerException
[13:41] < Zothar_Work> | INFO   | jvm 2    | 2007/01/02 10:01:41 |       at 
java.lang.String.charAt(String.java:560)
[13:41] < Zothar_Work> | INFO   | jvm 2    | 2007/01/02 10:01:41 |       at 
                            
java.util.StringTokenizer.skipDelimiters(StringTokenizer.java:234)
[13:41] < Zothar_Work> | INFO   | jvm 2    | 2007/01/02 10:01:41 |       at 
                            
java.util.StringTokenizer.countTokens(StringTokenizer.java:406)
[13:41] < Zothar_Work> | INFO   | jvm 2    | 2007/01/02 10:01:41 |       at 
                            freenet.support.Fields.commaList(Fields.java:160)
[13:41] < Zothar_Work> | INFO   | jvm 2    | 2007/01/02 10:01:41 |       at 
                            
freenet.node.Version.checkArbitraryGoodVersion(Version.java:197)
[13:41] < Zothar_Work> | INFO   | jvm 2    | 2007/01/02 10:01:41 |       at 
                            
freenet.node.PeerNode.publicReverseInvalidVersion(PeerNode.java:1608)
[13:41] < Zothar_Work> | INFO   | jvm 2    | 2007/01/02 10:01:41 |       at 
                            
freenet.node.PeerNodeStatus.<init>(PeerNodeStatus.java:117)
[13:41] < Zothar_Work> | INFO   | jvm 2    | 2007/01/02 10:01:41 |       at 
                            freenet.node.PeerNode.getStatus(PeerNode.java:1823)
[13:41] < Zothar_Work> | INFO   | jvm 2    | 2007/01/02 10:01:41 |       at 
                            
freenet.node.Node.getPeerNodeStatuses(Node.java:3161)
[13:41] < Zothar_Work> | INFO   | jvm 2    | 2007/01/02 10:01:41 |       at 
                            
freenet.node.Node.maybeLogPeerNodeStatusSummary(Node.java:2819)


Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2007-01-03 07:32:39 UTC (rev 
11552)
+++ trunk/freenet/src/freenet/node/Version.java 2007-01-03 13:50:48 UTC (rev 
11553)
@@ -196,10 +196,10 @@
                String[] v = Fields.commaList(version);
                String[] lgv = Fields.commaList(lastGoodVersion);

-               if ((v.length < 3) || !goodProtocol(v[2])) {
+               if ((v == null || v.length < 3) || !goodProtocol(v[2])) {
                        return false;
                }
-               if ((lgv.length < 3) || !goodProtocol(lgv[2])) {
+               if ((lgv == null || lgv.length < 3) || !goodProtocol(lgv[2])) {
                        return false;
                }
                if (sameArbitraryVersion(v,lgv)) {

Modified: trunk/freenet/src/freenet/support/Fields.java
===================================================================
--- trunk/freenet/src/freenet/support/Fields.java       2007-01-03 07:32:39 UTC 
(rev 11552)
+++ trunk/freenet/src/freenet/support/Fields.java       2007-01-03 13:50:48 UTC 
(rev 11553)
@@ -156,12 +156,8 @@
        }

        public static final String[] commaList(String ls) {
+               if(ls == null) return null;
                StringTokenizer st = new StringTokenizer(ls, ",");
-               // FIXME: Next line can NPE
-               //       at java.lang.String.charAt(String.java:560)
-               //       at 
java.util.StringTokenizer.skipDelimiters(StringTokenizer.java:234)
-               //       at 
java.util.StringTokenizer.countTokens(StringTokenizer.java:406)
-               //       at freenet.support.Fields.commaList(Fields.java:160)
                String[] r = new String[st.countTokens()];
                for (int i = 0; i < r.length; i++) {
                        r[i] = st.nextToken().trim();


Reply via email to