Uploaded image for project: 'Commons Net'
  1. Commons Net
  2. NET-276

NNTPClient has problems with group listings for large groups.

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.0
    • Fix Version/s: 3.0
    • Component/s: NNTP
    • Labels:
      None

      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

      { lastNum = Integer.parseInt(last); }

      catch (NumberFormatException nfe) {
      if (last.matches("
      d++"))

      { lastNum = Integer.MAX_VALUE; }

      else

      { throw nfe; }

      }

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                stressede Erik
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: