commons-issues mailing list archives

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

     [ https://issues.apache.org/jira/browse/NET-276?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Rory Winston closed NET-276.
----------------------------

       Resolution: Fixed
    Fix Version/s: 2.1

Changed all article count fields to use long instead of int.

> 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
>             Fix For: 2.1
>
>
> 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