You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Sebb (JIRA)" <ji...@apache.org> on 2011/01/31 19:46:28 UTC
[jira] Updated: (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:all-tabpanel ]
Sebb updated NET-276:
---------------------
Component/s: NNTP
> 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