Description
The following command causes a MalformedServerReplyException on my usenet server (astraweb):
client.listNewsgroups();
Root Cause:
Caused by: org.apache.commons.net.MalformedServerReplyException: alt.binaries.boneless 2230918506 1662764743 y
at org.apache.commons.net.nntp.NNTPClient.__readNewsgroupListing(NNTPClient.java:255)
at org.apache.commons.net.nntp.NNTPClient.listNewsgroups(NNTPClient.java:930)
at org.lievaart.jleecher.protocol.CommandFactory$2.doOnServer(CommandFactory.java:27)
at org.lievaart.jleecher.protocol.NNTPProtocol.callServer(NNTPProtocol.java:33)
... 2 more
My hypothesis is that NNTP cannot parse the response, because one of the numbers exceeds the Integer range.
Locally I have applied the following quick fix to get it to work:
public class NNTPClient extends NNTP {
...
...
...
private NewsgroupInfo __parseNewsgroupListEntry(final String entry) {
NewsgroupInfo result;
StringTokenizer tokenizer;
int lastNum, firstNum;
String last, first, permission;
result = new NewsgroupInfo();
tokenizer = new StringTokenizer(entry);
if (tokenizer.countTokens() < 4)
{ return null; } result._setNewsgroup(tokenizer.nextToken());
last = tokenizer.nextToken();
first = tokenizer.nextToken();
permission = tokenizer.nextToken();
try {
try
catch (NumberFormatException nfe) {
if (last.matches("
d++"))
else
{ throw nfe; }}
Attachments
Issue Links
- is duplicated by
-
NET-298 Article numbers should be treated as LONG instead of INT in NNTP
- Closed