You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "BattousaiX (JIRA)" <ji...@apache.org> on 2011/04/28 06:28:03 UTC

[jira] [Commented] (NET-276) NNTPClient has problems with group listings for large groups.

    [ https://issues.apache.org/jira/browse/NET-276?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13026112#comment-13026112 ] 

BattousaiX commented on NET-276:
--------------------------------

I have tried your code, but there is an error with the following line.
result._setNewsgroup(tokenizer.nextToken());
_setNewsgroup method is not visible.  

Were any other modifications made?

> 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
>          Components: NNTP
>    Affects Versions: 2.0
>            Reporter: Erik
>             Fix For: 3.0
>
>
> 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.
For more information on JIRA, see: http://www.atlassian.com/software/jira