You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by th...@apache.org on 2009/04/28 12:30:17 UTC
svn commit: r769326 - in
/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core:
data/FileDataRecord.java data/LazyFileInputStream.java
value/BLOBInTempFile.java
Author: thomasm
Date: Tue Apr 28 10:30:17 2009
New Revision: 769326
URL: http://svn.apache.org/viewvc?rev=769326&view=rev
Log:
JCR-2083 BLOB Store: only open a stream when really necessary
Modified:
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/FileDataRecord.java
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/LazyFileInputStream.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/data/FileDataRecord.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/FileDataRecord.java?rev=769326&r1=769325&r2=769326&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/FileDataRecord.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/FileDataRecord.java Tue Apr 28 10:30:17 2009
@@ -17,6 +17,7 @@
package org.apache.jackrabbit.core.data;
import java.io.File;
+import java.io.IOException;
import java.io.InputStream;
/**
@@ -52,7 +53,11 @@
* {@inheritDoc}
*/
public InputStream getStream() throws DataStoreException {
- return new LazyFileInputStream(file);
+ try {
+ return new LazyFileInputStream(file);
+ } catch (IOException e) {
+ throw new DataStoreException("Error opening input stream of " + file.getAbsolutePath(), e);
+ }
}
/**
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/LazyFileInputStream.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/LazyFileInputStream.java?rev=769326&r1=769325&r2=769326&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/LazyFileInputStream.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/LazyFileInputStream.java Tue Apr 28 10:30:17 2009
@@ -18,6 +18,7 @@
import java.io.File;
import java.io.FileInputStream;
+import java.io.FileNotFoundException;
import java.io.IOException;
import org.apache.commons.io.input.AutoCloseInputStream;
@@ -51,8 +52,11 @@
*
* @param file the file
*/
- protected LazyFileInputStream(File file) {
+ public LazyFileInputStream(File file) throws FileNotFoundException {
super(null);
+ if (!file.canRead()) {
+ throw new FileNotFoundException(file.getPath());
+ }
this.file = file;
}
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=769326&r1=769325&r2=769326&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 Tue Apr 28 10:30:17 2009
@@ -17,10 +17,10 @@
package org.apache.jackrabbit.core.value;
import org.apache.commons.io.IOUtils;
+import org.apache.jackrabbit.core.data.LazyFileInputStream;
import org.apache.jackrabbit.util.TransientFileFactory;
import java.io.File;
-import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
@@ -141,7 +141,7 @@
*/
public InputStream getStream() throws IllegalStateException, RepositoryException {
try {
- return new FileInputStream(file);
+ return new LazyFileInputStream(file);
} catch (FileNotFoundException fnfe) {
throw new RepositoryException("file backing binary value not found", fnfe);
}