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 2007/02/25 14:34:33 UTC
svn commit: r511509 -
/jackrabbit/trunk/jackrabbit-index-filters/src/main/java/org/apache/jackrabbit/core/query/PdfTextFilter.java
Author: jukka
Date: Sun Feb 25 05:34:33 2007
New Revision: 511509
URL: http://svn.apache.org/viewvc?view=rev&rev=511509
Log:
JCR-764: Applied the patch from Fabrizio Giustina with some additional comments.
Modified:
jackrabbit/trunk/jackrabbit-index-filters/src/main/java/org/apache/jackrabbit/core/query/PdfTextFilter.java
Modified: jackrabbit/trunk/jackrabbit-index-filters/src/main/java/org/apache/jackrabbit/core/query/PdfTextFilter.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-index-filters/src/main/java/org/apache/jackrabbit/core/query/PdfTextFilter.java?view=diff&rev=511509&r1=511508&r2=511509
==============================================================================
--- jackrabbit/trunk/jackrabbit-index-filters/src/main/java/org/apache/jackrabbit/core/query/PdfTextFilter.java (original)
+++ jackrabbit/trunk/jackrabbit-index-filters/src/main/java/org/apache/jackrabbit/core/query/PdfTextFilter.java Sun Feb 25 05:34:33 2007
@@ -30,6 +30,7 @@
import org.apache.jackrabbit.core.state.PropertyState;
import org.apache.jackrabbit.core.value.BLOBFileValue;
import org.apache.jackrabbit.core.value.InternalValue;
+import org.pdfbox.cos.COSDocument;
import org.pdfbox.pdfparser.PDFParser;
import org.pdfbox.pdmodel.PDDocument;
import org.pdfbox.util.PDFTextStripper;
@@ -69,7 +70,7 @@
final BLOBFileValue blob = (BLOBFileValue) values[0].internalValue();
LazyReader reader = new LazyReader() {
protected void initializeReader() throws IOException {
- PDFParser parser;
+ PDFParser parser = null;
InputStream in;
try {
in = blob.getStream();
@@ -96,6 +97,19 @@
} catch (Exception e) {
// it may happen that PDFParser throws a runtime
// exception when parsing certain pdf documents
+
+ // JCR-764: Check if document is still open and
+ // close it appropriately. Otherwise some temporary
+ // files may get left behind and document finalization
+ // will log a warning.
+ if (parser != null) {
+ try {
+ parser.getDocument().close();
+ } catch (Exception ioe) {
+ // ignore, this means doc has not been generated
+ }
+ }
+
throw new IOException(e.getMessage());
} finally {
in.close();