You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by tr...@apache.org on 2010/03/25 15:01:52 UTC

svn commit: r927406 - in /jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex: BinaryPartSource.java QValueFactoryImpl.java ValueLoader.java

Author: tripod
Date: Thu Mar 25 14:01:52 2010
New Revision: 927406

URL: http://svn.apache.org/viewvc?rev=927406&view=rev
Log:
JCR-2582 spi2dav: temp files are not clean up after batch submit

Modified:
    jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/BinaryPartSource.java
    jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/QValueFactoryImpl.java
    jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/ValueLoader.java

Modified: jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/BinaryPartSource.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/BinaryPartSource.java?rev=927406&r1=927405&r2=927406&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/BinaryPartSource.java (original)
+++ jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/BinaryPartSource.java Thu Mar 25 14:01:52 2010
@@ -55,6 +55,8 @@ public class BinaryPartSource implements
     }
 
     public void dispose() {
-        value.discard();
+        if (value instanceof ValueLoader.Target) {
+            ((ValueLoader.Target) value).reset();
+        }
     }
 }
\ No newline at end of file

Modified: jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/QValueFactoryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/QValueFactoryImpl.java?rev=927406&r1=927405&r2=927406&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/QValueFactoryImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/QValueFactoryImpl.java Thu Mar 25 14:01:52 2010
@@ -316,9 +316,33 @@ class QValueFactoryImpl extends org.apac
             if (file != null) {
                 // this instance is backed by a temp file
                 file.delete();
+            } else if (buffer != null) {
+                // this instance is backed by an in-memory buffer
+                buffer = EMPTY_BYTE_ARRAY;
+            }
+        }
+
+        /**
+         * Resets the state of this value. a subsequent call to init() can be
+         * used to load the binary again.
+         *
+         * If this <code>BinaryQValue</code> is backed by a persistent resource
+         * calling this method will have no effect.
+         * @see QValue#discard()
+         */
+        public void reset() {
+            if (!temp) {
+                // do nothing if this instance is not backed by temporarily
+                // allocated resource/buffer
+                return;
+            }
+            if (file != null) {
+                // this instance is backed by a temp file
+                file.delete();
             }
             file = null;
             buffer = null;
+            initialized = false;
         }
 
         //-----------------------------------------------< java.lang.Object >---

Modified: jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/ValueLoader.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/ValueLoader.java?rev=927406&r1=927405&r2=927406&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/ValueLoader.java (original)
+++ jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/ValueLoader.java Thu Mar 25 14:01:52 2010
@@ -102,5 +102,11 @@ class ValueLoader {
          * @throws IOException
          */
         void setStream(InputStream in) throws IOException;
+
+        /**
+         * Resets (clears) the state and this target is in the state as
+         * prior to setStream()
+         */
+        void reset();
     }
 }