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

Freeman Fang resolved CXF-4227.
-------------------------------

       Resolution: Fixed
    Fix Version/s: 2.6
                   2.5.3
                   2.4.7
                   2.3.10

Apply patch on behalf of Andreas Krüger with thanks 
http://svn.apache.org/viewvc?rev=1310200&view=rev for trunk
http://svn.apache.org/viewvc?rev=1310214&view=rev for 2.5.x branch
http://svn.apache.org/viewvc?rev=1310216&view=rev for 2.4.x branch
http://svn.apache.org/viewvc?rev=1310218&view=rev for 2.3.x branch
                
> AttachmentDeserializerTest contains buggy code for reading an InputStream.
> --------------------------------------------------------------------------
>
>                 Key: CXF-4227
>                 URL: https://issues.apache.org/jira/browse/CXF-4227
>             Project: CXF
>          Issue Type: Bug
>          Components: WS-* Components
>            Reporter: Andreas Krüger
>            Assignee: Freeman Fang
>            Priority: Minor
>              Labels: patch
>             Fix For: 2.3.10, 2.4.7, 2.5.3, 2.6
>
>         Attachments: AttachmentDeserializerTest.patch
>
>   Original Estimate: 0.5h
>  Remaining Estimate: 0.5h
>
> Browsing through the CXF code, I stumbled over the following in 
> AttachmentDeserializerTest, method testCXF3383():
> {code}
> for (int x = 1; x < 50; x++) {
>     String cid = "1882f79d-e20a-4b36-a222-7a75518cf395-" + x + 
> "@cxf.apache.org";
>     DataSource ds = AttachmentUtil.getAttachmentDataSource(cid, 
> message.getAttachments());
>     byte bts[] = new byte[1024];
>             
>     InputStream ins = ds.getInputStream();
>     int count = ins.read(bts, 0, bts.length);
>     int sz = ins.read(bts, count, bts.length - count);
>     while (sz != -1) {
>         sz = ins.read(bts, count, bts.length - count);
>     }
>     assertEquals(x + 1, count);
> }
> {code}
> I think some "count += sz" has been forgotten. Details:
> * The while-loop does nothing to change the test result.
> * Endless loop, should "ins" ever deliver 1025 bytes or more.
> * (If "ins" is 0 bytes, then count will be -1.)
> * The fix is obvious, I'll attach a patch.
> The problem does not show as long as "ins" contains less than 1024 bytes and 
> all its content is delivered with the first read operation. So no functional 
> impairment, just code hygiene.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to