Bug 45215 - Request reader returns length zero
Summary: Request reader returns length zero
Status: RESOLVED DUPLICATE of bug 44494
Alias: None
Product: Tomcat 5
Classification: Unclassified
Component: Connector:Coyote (show other bugs)
Version: 5.5.26
Hardware: All Linux
: P2 critical (vote)
Target Milestone: ---
Assignee: Tomcat Developers Mailing List
Depends on:
Reported: 2008-06-16 10:58 UTC by Mike Douglass
Modified: 2008-09-24 13:25 UTC (History)
0 users


Note You need to log in before you can comment on or make changes to this bug.
Description Mike Douglass 2008-06-16 10:58:30 UTC
Experienced as ArrayIndexOutOfBounds exceptions in Xerces

Due to the Reader returning a length of zero which should never occur unless the input length parameetr is zero (which it isn').

A CalDAV REPORT request of 31k+ bytes produces the error.

Debugged it down through the CharChunk.subtract method called with off=1 and len=2047.

The fields start and end both equal 8192.

In this code 

        if ((end - start) == 0) {
            if (in == null)
                return -1;
            int n = in.realReadChars( buff, end, buff.length - end);
            if (n < 0)
                return -1;

        int n = len;
        if (len > getLength()) {
            n = getLength();

buf.length - end = 0, so we call realReadChars with len = 0
And then n = getLength() sets n to zero.

Difficult to attach any test case as it involves debugging a whole system Possibly a large POST would reveal the problem.
Comment 1 Mark Thomas 2008-06-16 11:13:53 UTC
Sounds like a duplicate of one of the many issues exposed by bug 44494. These have been fixed in trunk for 6.x. Can you build trunk from svn and test against it?
Comment 2 Mark Thomas 2008-09-24 13:25:29 UTC
No response for over three months. The 44494 fixes are all in 5.5.27 so I am closing this as a dup.

*** This bug has been marked as a duplicate of bug 44494 ***