PropertyState binary type desirialsation only returns half of content
---------------------------------------------------------------------

         Key: JCR-424
         URL: http://issues.apache.org/jira/browse/JCR-424
     Project: Jackrabbit
        Type: Bug

  Components: core  
    Versions: 1.0    
 Environment: Jackrabbit checkout revision 399293
    Reporter: c keller
    Priority: Minor


Create a PropertyState for a binary Property (e.g jcr:data) set a value larger 
than the BLOBFileValues#MAX_BUFFER_SIZE  (e.g. 300Kbyte) serialse it.
On deserialisation the resulting PropertyState's InternalValue's size is only 
half as the origianl (e.g. 150Kbyte)

Most probably this is due to the States InputStream implementation marking 
bytes twice to be read.
Following fix solves the issue for call to #read(byte[], in, int),
but other Stream methods may fail as well.

Index: jackrabbit/java/org/apache/jackrabbit/core/state/PropertyState.java
===================================================================
--- jackrabbit/java/org/apache/jackrabbit/core/state/PropertyState.java 
(revision 399293)
+++ jackrabbit/java/org/apache/jackrabbit/core/state/PropertyState.java 
(working  copy)
@@ -305,7 +305,6 @@
                                 len = (int) (length - consumed);
                             }
                             int read = super.read(b, off, len);
-                            consumed += read;
                             return read;
                         }


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to