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