You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2008/02/29 08:42:51 UTC

svn commit: r632252 - in /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core: ./ data/ data/db/ fs/ fs/db/ fs/local/ journal/ persistence/bundle/ persistence/bundle/util/ persistence/db/ persistence/util/ query/lucene/ state/ value/

Author: jukka
Date: Thu Feb 28 23:42:44 2008
New Revision: 632252

URL: http://svn.apache.org/viewvc?rev=632252&view=rev
Log:
JCR-1395: Use Commons IO 1.4
    - Use IOUtils.closeQuietly to simplify code
    - Use IOUtils.copy to simplify code
    - Use FileUtils.copyFile to simplify code
    - Use DataInputStream.readFully to simplify code
    - Use DigestOutputStream to simplify code
    

Modified:
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/TransientRepository.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/FileDataStore.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/db/TempFileInputStream.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/FileSystemResource.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/DatabaseFileSystem.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/OracleFileSystem.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/local/FileUtil.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/FileRecordLog.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/Oracle9PersistenceManager.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/BundleBinding.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/ItemStateBinding.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/db/OraclePersistenceManager.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/FileSystemBLOBStore.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/TextExtractorJob.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/PropertyState.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/value/BLOBFileValue.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/value/BLOBInTempFile.java

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/TransientRepository.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/TransientRepository.java?rev=632252&r1=632251&r2=632252&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/TransientRepository.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/TransientRepository.java Thu Feb 28 23:42:44 2008
@@ -33,6 +33,7 @@
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 
+import org.apache.commons.io.IOUtils;
 import org.apache.jackrabbit.api.JackrabbitRepository;
 import org.apache.jackrabbit.core.config.ConfigurationException;
 import org.apache.jackrabbit.core.config.RepositoryConfig;
@@ -220,13 +221,8 @@
                             InputStream input =
                                 TransientRepository.class.getResourceAsStream(
                                         DEFAULT_REPOSITORY_XML);
-                            byte[] buffer = new byte[BUFFER_SIZE];
                             try {
-                                int n = input.read(buffer);
-                                while (n != -1) {
-                                    output.write(buffer, 0, n);
-                                    n = input.read(buffer);
-                                }
+                                IOUtils.copy(input, output);
                             } finally {
                                input.close();
                             }

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/FileDataStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/FileDataStore.java?rev=632252&r1=632251&r2=632252&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/FileDataStore.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/FileDataStore.java Thu Feb 28 23:42:44 2008
@@ -22,6 +22,7 @@
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.lang.ref.WeakReference;
+import java.security.DigestOutputStream;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
@@ -31,6 +32,8 @@
 import java.util.Map;
 import java.util.WeakHashMap;
 
+import org.apache.commons.io.IOUtils;
+
 /**
  * Simple file-based data store. Data records are stored as normal files
  * named using a message digest of the contained binary stream.
@@ -166,14 +169,10 @@
             // stream length and the message digest of the stream
             long length = 0;
             MessageDigest digest = MessageDigest.getInstance(DIGEST);
-            OutputStream output = new FileOutputStream(temporary);
+            OutputStream output = new DigestOutputStream(
+                    new FileOutputStream(temporary), digest);
             try {
-                byte[] b = new byte[4096];
-                for (int n = input.read(b); n != -1; n = input.read(b)) {
-                    output.write(b, 0, n);
-                    digest.update(b, 0, n);
-                    length += n;
-                }
+                length = IOUtils.copyLarge(input, output);
             } finally {
                 output.close();
             }

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/db/TempFileInputStream.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/db/TempFileInputStream.java?rev=632252&r1=632251&r2=632252&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/db/TempFileInputStream.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/db/TempFileInputStream.java Thu Feb 28 23:42:44 2008
@@ -25,6 +25,8 @@
 import java.io.InputStream;
 import java.io.OutputStream;
 
+import org.apache.commons.io.IOUtils;
+
 /**
  * An input stream from a temp file that self-destructs when fully read or closed.
  */
@@ -43,14 +45,7 @@
      */
     public static long writeToFileAndClose(InputStream in, File file) throws IOException {
         OutputStream out = new FileOutputStream(file);
-        byte[] b = new byte[4096];
-        while (true) {
-            int n = in.read(b);
-            if (n < 0) {
-                break;
-            }
-            out.write(b, 0, n);
-        }
+        IOUtils.copy(in, out);
         out.close();
         in.close();
         return file.length();

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/FileSystemResource.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/FileSystemResource.java?rev=632252&r1=632251&r2=632252&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/FileSystemResource.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/FileSystemResource.java Thu Feb 28 23:42:44 2008
@@ -161,11 +161,7 @@
     public void spool(OutputStream out) throws FileSystemException, IOException {
         InputStream in = fs.getInputStream(path);
         try {
-            byte[] buffer = new byte[8192];
-            int read;
-            while ((read = in.read(buffer)) > 0) {
-                out.write(buffer, 0, read);
-            }
+            IOUtils.copy(in, out);
         } finally {
             IOUtils.closeQuietly(in);
         }

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/DatabaseFileSystem.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/DatabaseFileSystem.java?rev=632252&r1=632251&r2=632252&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/DatabaseFileSystem.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/DatabaseFileSystem.java Thu Feb 28 23:42:44 2008
@@ -826,11 +826,7 @@
                 InputStream in = getInputStream(filePath);
                 OutputStream out = new FileOutputStream(tmpFile);
                 try {
-                    int read;
-                    byte[] ba = new byte[8192];
-                    while ((read = in.read(ba, 0, ba.length)) != -1) {
-                        out.write(ba, 0, read);
-                    }
+                    IOUtils.copy(in, out);
                 } finally {
                     out.close();
                     in.close();

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/OracleFileSystem.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/OracleFileSystem.java?rev=632252&r1=632251&r2=632252&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/OracleFileSystem.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/OracleFileSystem.java Thu Feb 28 23:42:44 2008
@@ -456,11 +456,7 @@
                 InputStream in = getInputStream(filePath);
                 OutputStream out = new FileOutputStream(tmpFile);
                 try {
-                    int read;
-                    byte[] ba = new byte[8192];
-                    while ((read = in.read(ba, 0, ba.length)) != -1) {
-                        out.write(ba, 0, read);
-                    }
+                    IOUtils.copy(in, out);
                 } finally {
                     out.close();
                     in.close();
@@ -576,11 +572,7 @@
                 blobClass.getMethod("getBinaryOutputStream", new Class[0]);
         OutputStream out = (OutputStream) getBinaryOutputStream.invoke(blob, null);
         try {
-            int read;
-            byte[] buf = new byte[8192];
-            while ((read = in.read(buf, 0, buf.length)) > -1) {
-                out.write(buf, 0, read);
-            }
+            IOUtils.copy(in, out);
         } finally {
             try {
                 out.flush();

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/local/FileUtil.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/local/FileUtil.java?rev=632252&r1=632251&r2=632252&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/local/FileUtil.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/local/FileUtil.java Thu Feb 28 23:42:44 2008
@@ -17,10 +17,10 @@
 package org.apache.jackrabbit.core.fs.local;
 
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.IOException;
 
+import org.apache.commons.io.FileUtils;
+
 /**
  * Static utility methods for recursively copying and deleting files and
  * directories.
@@ -74,17 +74,7 @@
                 throw new IOException("can't write to " + destParent.getPath());
             }
 
-            FileInputStream fis = new FileInputStream(src);
-            FileOutputStream fos = new FileOutputStream(dest);
-
-            byte[] buffer = new byte[8192];
-            int read = 0;
-            while ((read = fis.read(buffer)) > 0) {
-                fos.write(buffer, 0, read);
-            }
-
-            fis.close();
-            fos.close();
+            FileUtils.copyFile(src, dest);
         }
     }
 

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/FileRecordLog.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/FileRecordLog.java?rev=632252&r1=632251&r2=632252&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/FileRecordLog.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/FileRecordLog.java Thu Feb 28 23:42:44 2008
@@ -16,6 +16,7 @@
  */
 package org.apache.jackrabbit.core.journal;
 
+import org.apache.commons.io.IOUtils;
 import org.apache.jackrabbit.spi.commons.conversion.NamePathResolver;
 import org.apache.jackrabbit.spi.commons.namespace.NamespaceResolver;
 import org.slf4j.Logger;
@@ -256,12 +257,7 @@
             out.writeUTF(producerId);
             out.writeInt(length);
 
-            byte[] buffer = new byte[8192];
-            int len;
-
-            while ((len = in.read(buffer)) > 0) {
-                out.write(buffer, 0, len);
-            }
+            IOUtils.copy(in, out);
             out.flush();
 
             lastRevision +=

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/Oracle9PersistenceManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/Oracle9PersistenceManager.java?rev=632252&r1=632251&r2=632252&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/Oracle9PersistenceManager.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/Oracle9PersistenceManager.java Thu Feb 28 23:42:44 2008
@@ -18,6 +18,7 @@
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.apache.commons.io.IOUtils;
 import org.apache.jackrabbit.core.persistence.PMContext;
 import org.apache.jackrabbit.core.persistence.bundle.util.NodePropBundle;
 import org.apache.jackrabbit.core.persistence.util.Serializer;
@@ -198,11 +199,7 @@
         Method getBinaryOutputStream = blobClass.getMethod("getBinaryOutputStream", new Class[0]);
         OutputStream out = (OutputStream) getBinaryOutputStream.invoke(blob, null);
         try {
-            int read;
-            byte[] buf = new byte[8192];
-            while ((read = in.read(buf, 0, buf.length)) > -1) {
-                out.write(buf, 0, read);
-            }
+            IOUtils.copy(in, out);
         } finally {
             try {
                 out.flush();

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/BundleBinding.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/BundleBinding.java?rev=632252&r1=632251&r2=632252&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/BundleBinding.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/BundleBinding.java Thu Feb 28 23:42:44 2008
@@ -34,7 +34,6 @@
 
 import java.io.DataInputStream;
 import java.io.DataOutputStream;
-import java.io.EOFException;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.HashSet;
@@ -369,10 +368,7 @@
                     // Strings are serialized as <length><byte[]>
                     int len = in.readInt();
                     byte[] bytes = new byte[len];
-                    int pos = 0;
-                    while (pos < len) {
-                        pos += in.read(bytes, pos, len - pos);
-                    }
+                    in.readFully(bytes);
                     val = InternalValue.valueOf(new String(bytes, "UTF-8"), type);
             }
             values[i] = val;
@@ -522,10 +518,7 @@
                     }
                     try {
                         byte[] bytes = new byte[len];
-                        int pos = 0;
-                        while (pos < len) {
-                            pos += in.read(bytes, pos, len - pos);
-                        }
+                        in.readFully(bytes);
                         log.info("  string: " + new String(bytes, "UTF-8"));
                     } catch (IOException e) {
                         log.error("Error while reading string value: " + e);
@@ -623,22 +616,12 @@
                         out.writeInt((int) size);
                         byte[] data = new byte[(int) size];
                         try {
-                            InputStream in = blobVal.getStream();
+                            DataInputStream in =
+                                new DataInputStream(blobVal.getStream());
                             try {
-                                int pos = 0;
-                                while (pos < size) {
-                                    int n = in.read(data, pos, (int) size - pos);
-                                    if (n < 0) {
-                                        throw new EOFException();
-                                    }
-                                    pos += n;
-                                }
+                                in.readFully(data);
                             } finally {
-                                try {
-                                    in.close();
-                                } catch (IOException e) {
-                                    // ignore
-                                }
+                                IOUtils.closeQuietly(in);
                             }
                         } catch (Exception e) {
                             String msg = "Error while storing blob. id="

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/ItemStateBinding.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/ItemStateBinding.java?rev=632252&r1=632251&r2=632252&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/ItemStateBinding.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/ItemStateBinding.java Thu Feb 28 23:42:44 2008
@@ -272,10 +272,7 @@
     public UUID readUUID(DataInputStream in) throws IOException {
         if (in.readBoolean()) {
             byte[] bytes = new byte[16];
-            int pos = 0;
-            while (pos < 16) {
-                pos += in.read(bytes, pos, 16 - pos);
-            }
+            in.readFully(bytes);
             return new UUID(bytes);
         } else {
             return null;

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/db/OraclePersistenceManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/db/OraclePersistenceManager.java?rev=632252&r1=632251&r2=632252&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/db/OraclePersistenceManager.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/db/OraclePersistenceManager.java Thu Feb 28 23:42:44 2008
@@ -378,11 +378,7 @@
                 blobClass.getMethod("getBinaryOutputStream", new Class[0]);
         OutputStream out = (OutputStream) getBinaryOutputStream.invoke(blob, null);
         try {
-            int read;
-            byte[] buf = new byte[8192];
-            while ((read = in.read(buf, 0, buf.length)) > -1) {
-                out.write(buf, 0, read);
-            }
+            IOUtils.copy(in, out);
         } finally {
             try {
                 out.flush();

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/FileSystemBLOBStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/FileSystemBLOBStore.java?rev=632252&r1=632251&r2=632252&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/FileSystemBLOBStore.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/FileSystemBLOBStore.java Thu Feb 28 23:42:44 2008
@@ -16,6 +16,7 @@
  */
 package org.apache.jackrabbit.core.persistence.util;
 
+import org.apache.commons.io.IOUtils;
 import org.apache.jackrabbit.core.PropertyId;
 import org.apache.jackrabbit.core.fs.FileSystem;
 import org.apache.jackrabbit.core.fs.FileSystemPathUtil;
@@ -85,21 +86,14 @@
      * {@inheritDoc}
      */
     public void put(String blobId, InputStream in, long size) throws Exception {
-        OutputStream out = null;
         // the blobId is an absolute file system path
         FileSystemResource internalBlobFile = new FileSystemResource(fs, blobId);
         internalBlobFile.makeParentDirs();
+        OutputStream out = internalBlobFile.getOutputStream();
         try {
-            out = new BufferedOutputStream(internalBlobFile.getOutputStream());
-            byte[] buffer = new byte[8192];
-            int read;
-            while ((read = in.read(buffer)) > 0) {
-                out.write(buffer, 0, read);
-            }
+            IOUtils.copy(in, out);
         } finally {
-            if (out != null) {
-                out.close();
-            }
+            out.close();
         }
     }
 

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/TextExtractorJob.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/TextExtractorJob.java?rev=632252&r1=632251&r2=632252&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/TextExtractorJob.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/TextExtractorJob.java Thu Feb 28 23:42:44 2008
@@ -202,14 +202,10 @@
         }
 
         // spool into temp file
-        char[] buffer = new char[1024];
-        int len;
         InputStream in = null;
         try {
             try {
-                while ((len = r.read(buffer)) >= 0) {
-                    out.write(buffer, 0, len);
-                }
+                IOUtils.copy(r, out);
                 out.close();
             } finally {
                 r.close();

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/PropertyState.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/PropertyState.java?rev=632252&r1=632251&r2=632252&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/PropertyState.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/PropertyState.java Thu Feb 28 23:42:44 2008
@@ -16,6 +16,7 @@
  */
 package org.apache.jackrabbit.core.state;
 
+import org.apache.commons.io.IOUtils;
 import org.apache.jackrabbit.core.PropertyId;
 import org.apache.jackrabbit.core.NodeId;
 import org.apache.jackrabbit.core.ItemId;
@@ -272,14 +273,10 @@
                     if (type == PropertyType.BINARY) {
                         // special handling required for binary value
                         BLOBFileValue blob = val.getBLOBFileValue();
-                        InputStream in = blob.getStream();
                         out.writeLong(blob.getLength());
-                        byte[] buf = new byte[0x2000];
+                        InputStream in = blob.getStream();
                         try {
-                            int read;
-                            while ((read = in.read(buf)) > 0) {
-                                out.write(buf, 0, read);
-                            }
+                            IOUtils.copy(in, out);
                         } finally {
                             in.close();
                         }

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/value/BLOBFileValue.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/value/BLOBFileValue.java?rev=632252&r1=632251&r2=632252&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/value/BLOBFileValue.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/value/BLOBFileValue.java Thu Feb 28 23:42:44 2008
@@ -100,11 +100,7 @@
     public void spool(OutputStream out) throws RepositoryException, IOException {
         InputStream in = getStream();
         try {
-            byte[] buffer = new byte[0x2000];
-            int read;
-            while ((read = in.read(buffer)) > 0) {
-                out.write(buffer, 0, read);
-            }
+            IOUtils.copy(in, out);
         } finally {
             IOUtils.closeQuietly(in);
         }

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/value/BLOBInTempFile.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/value/BLOBInTempFile.java?rev=632252&r1=632251&r2=632252&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/value/BLOBInTempFile.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/value/BLOBInTempFile.java Thu Feb 28 23:42:44 2008
@@ -57,15 +57,7 @@
             TransientFileFactory fileFactory = TransientFileFactory.getInstance();
             file = fileFactory.createTransientFile("bin", null, null);
             out = new FileOutputStream(file);
-            byte[] buffer = new byte[4 * 1024];
-            while (true) {
-                int len = in.read(buffer);
-                if (len < 0) {
-                    break;
-                }
-                out.write(buffer, 0, len);
-                length += len;
-            }
+            length = IOUtils.copyLarge(in, out);
         } catch (IOException e) {
             throw new RepositoryException("Error creating temporary file", e);
         } finally {