[freenet-cvs] r11553 - in trunk/freenet/src/freenet: node support

nextgens at freenetproject.org nextgens at freenetproject.org
Wed Jan 3 13:50:48 UTC 2007


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();




More information about the cvs mailing list