commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Erik (JIRA)" <j...@apache.org>
Subject [jira] Created: (NET-276) NNTPClient has problems with group listings for large groups.
Date Sat, 02 May 2009 17:29:30 GMT
NNTPClient has problems with group listings for large groups.
-------------------------------------------------------------

                 Key: NET-276
                 URL: https://issues.apache.org/jira/browse/NET-276
             Project: Commons Net
          Issue Type: Bug
    Affects Versions: 2.0
            Reporter: Erik


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 {
				lastNum = Integer.parseInt(last);
			} catch (NumberFormatException nfe) {
				if (last.matches("\\d++")) {
					lastNum = Integer.MAX_VALUE;
				} else {
					throw nfe;
				}
			}


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message