projects
/
org.ibex.mail.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
35642b8
)
bugfix for NPE on newsgroup not found
author
adam
<adam@megacz.com>
Sat, 4 Feb 2006 10:10:11 +0000
(10:10 +0000)
committer
adam
<adam@megacz.com>
Sat, 4 Feb 2006 10:10:11 +0000
(10:10 +0000)
darcs-hash:
20060204101011
-5007d-
393afffd1bbb42a51ddef8a06a28bf81b2c715a7
.gz
src/org/ibex/mail/protocol/NNTP.java
patch
|
blob
|
history
diff --git
a/src/org/ibex/mail/protocol/NNTP.java
b/src/org/ibex/mail/protocol/NNTP.java
index
dde6a85
..
bbe4ca7
100644
(file)
--- a/
src/org/ibex/mail/protocol/NNTP.java
+++ b/
src/org/ibex/mail/protocol/NNTP.java
@@
-60,7
+60,13
@@
public class NNTP {
private Mailbox current;
private int ptr = 0;
public MailboxWrapper(Mailbox root) { this.root = root; }
private Mailbox current;
private int ptr = 0;
public MailboxWrapper(Mailbox root) { this.root = root; }
- public Group group(String s) { ptr = 0; setgroup(s); return getgroup(s); }
+ public Group group(String s) {
+ ptr = 0;
+ Group g = getgroup(s);
+ if (g==null) return null;
+ setgroup(s);
+ return g;
+ }
public boolean ihave(String messageid) { /* FEATURE */ return false; }
public boolean post(Message m) { /* FEATURE */ return false; }
public boolean ihave(String messageid) { /* FEATURE */ return false; }
public boolean post(Message m) { /* FEATURE */ return false; }
@@
-93,14
+99,16
@@
public class NNTP {
}
private void setgroup(String s) {
}
private void setgroup(String s) {
- current = root;
+ Mailbox ncurrent = root;
for(StringTokenizer st = new StringTokenizer(s, ".");
for(StringTokenizer st = new StringTokenizer(s, ".");
- st.hasMoreTokens();
- current = current.slash(st.nextToken(), false));
+ ncurrent != null && st.hasMoreTokens();
+ ncurrent = ncurrent.slash(st.nextToken(), false));
+ if (ncurrent!=null) current=ncurrent;
}
private Group getgroup(String s) {
Mailbox box = root;
}
private Group getgroup(String s) {
Mailbox box = root;
- for(StringTokenizer st = new StringTokenizer(s, "."); st.hasMoreTokens(); box = box.slash(st.nextToken(), false));
+ for(StringTokenizer st = new StringTokenizer(s, "."); box!=null && st.hasMoreTokens(); box = box.slash(st.nextToken(), false));
+ if (box==null) return null;
return new Group(s, true, 1, box.count(Query.all()), box.count(Query.all()));
}
return new Group(s, true, 1, box.count(Query.all()), box.count(Query.all()));
}
@@
-209,7
+217,8
@@
public class NNTP {
} else if (command.equals("QUIT")) { println("205 Bye."); conn.close(); return;
} else if (command.equals("GROUP")) {
Group g = api.group(st.nextToken().toLowerCase());
} else if (command.equals("QUIT")) { println("205 Bye."); conn.close(); return;
} else if (command.equals("GROUP")) {
Group g = api.group(st.nextToken().toLowerCase());
- println("211 " + g.count + " " + g.first + " " + g.last + " " + g.name);
+ if (g==null) println("411 no such group");
+ else println("211 " + g.count + " " + g.first + " " + g.last + " " + g.name);
} else if (command.equals("NEWGROUPS") || command.equals("NEWNEWS")) {
// FIXME: * and ! unsupported
// NEWNEWS is often not supported
} else if (command.equals("NEWGROUPS") || command.equals("NEWNEWS")) {
// FIXME: * and ! unsupported
// NEWNEWS is often not supported