jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Frericks (JIRA)" <j...@apache.org>
Subject [jira] Created: (JCR-428) Constructor org.apache.jackrabbit.core.value.BLOBFileValue(InputStream in) does not initialize field 'temp' correctly.
Date Mon, 08 May 2006 15:23:20 GMT
Constructor org.apache.jackrabbit.core.value.BLOBFileValue(InputStream in) does not initialize
field 'temp' correctly.
----------------------------------------------------------------------------------------------------------------------

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

  Components: core  
    Versions: 1.0    
    Reporter: Michael Frericks


Situation:

if the internal value of a property of type binary is created by the constructor BLOBFileValue(InputStream
in) and the content is not stored in an temp-file, then calling the methods 

a) #setProperty(InputStream in) on this node and then
b) #refresh(false) on the node of this property 

on the node of this property leads to an internal value of this property with an erased byte[].

Solution:

Only if the spoolFile is created the field 'temp' should be set to true.
If the InputStream is stored in the byte[] the field 'temp' should be set to false.

Patch:

Index: BLOBFileValue.java
===================================================================
retrieving revision 1.1
diff -u -r1.1 BLOBFileValue.java
--- BLOBFileValue.java	8 May 2006 13:57:49 -0000	1.1
+++ BLOBFileValue.java	8 May 2006 15:19:54 -0000
@@ -142,6 +142,7 @@
                     len += read;
                 }
             }
+            in.close();
         } finally {
             if (out != null) {
                 out.close();
@@ -151,8 +152,15 @@
         // init vars
         file = spoolFile;
         fsResource = null;
-        // this instance is backed by a temporarily allocated resource/buffer
-        temp = true;
+        if (file != null)
+        {
+            // this instance is backed by a temporarily allocated resource
+            temp = true;
+        }
+        else
+        {
+            temp = true;
+        }
     }
 
     /**




-- 
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


Mime
View raw message