[ https://issues.apache.org/jira/browse/JCR-2067?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Thomas Mueller reopened JCR-2067: --------------------------------- I just found out, there is already a class LazyFileInputStream (that does basically the same) in the package org.apache.jackrabbit.util. However this one doesn't close the file after reading the last byte. > FileDataStore: only open a stream when really necessary > ------------------------------------------------------- > > Key: JCR-2067 > URL: https://issues.apache.org/jira/browse/JCR-2067 > Project: Jackrabbit Content Repository > Issue Type: Improvement > Reporter: Thomas Mueller > Assignee: Thomas Mueller > > Currently, PropertyImpl.getValue() opens a FileInputStream if the > FileDataStore is used. > If the application doesn't use the value, this stream is never closed. > PropertyImpl.getValue(): > return internalGetValue().toJCRValue(session); > InternalValue.toJCRValue(..): > case PropertyType.BINARY: > return new BinaryValue(((BLOBFileValue) val).getStream()); > BLOBInDataStore.getStream(): > return getDataRecord().getStream(); > FileDataRecord.getStream(): > return new FileInputStream(file); > One solution is to return a 'lazy' file input stream that only opens the file > when reading from the stream (and closing the file when the last byte was > read). Maybe there is already a class (in Apache Commons maybe?) that can do > that. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.