You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by mi...@apache.org on 2012/12/01 18:53:33 UTC
svn commit: r1416028 - in /tika/trunk: CHANGES.txt
tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java
tika-app/src/test/java/org/apache/tika/cli/TikaCLITest.java
tika-app/src/test/resources/test-data/testWithSubdirs.zip
Author: mikemccand
Date: Sat Dec 1 17:53:32 2012
New Revision: 1416028
URL: http://svn.apache.org/viewvc?rev=1416028&view=rev
Log:
TIKA-1031: create parent dirs when extracting embedded files
Added:
tika/trunk/tika-app/src/test/resources/test-data/testWithSubdirs.zip (with props)
Modified:
tika/trunk/CHANGES.txt
tika/trunk/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java
tika/trunk/tika-app/src/test/java/org/apache/tika/cli/TikaCLITest.java
Modified: tika/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/tika/trunk/CHANGES.txt?rev=1416028&r1=1416027&r2=1416028&view=diff
==============================================================================
--- tika/trunk/CHANGES.txt (original)
+++ tika/trunk/CHANGES.txt Sat Dec 1 17:53:32 2012
@@ -51,6 +51,10 @@ Release 1.3 - Current Development
certain JVMs this would incorrectly extract the BOM as the tag's
value (TIKA-1024).
+ * ZIP: TikaCLI would hit FileNotFoundException when extracting files
+ that were under sub-directories from a ZIP archive, because it
+ failed to create the parent directories first (TIKA-1031).
+
Release 1.2 - 07/10/2012
---------------------------------
Modified: tika/trunk/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java?rev=1416028&r1=1416027&r2=1416028&view=diff
==============================================================================
--- tika/trunk/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java (original)
+++ tika/trunk/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java Sat Dec 1 17:53:32 2012
@@ -706,16 +706,17 @@ public class TikaCLI {
String relID = metadata.get(Metadata.EMBEDDED_RELATIONSHIP_ID);
if (relID != null && !name.startsWith(relID)) {
- name = relID + "_" + name;
+ name = relID + "_" + name;
}
File outputFile = new File(extractDir, name);
- if (outputFile.exists()) {
- System.err.println("File '"+name+"' already exists; skipping");
- return;
+ File parent = outputFile.getParentFile();
+ if (!parent.exists()) {
+ if (!parent.mkdirs()) {
+ throw new IOException("unable to create directory \"" + parent + "\"");
+ }
}
-
- System.out.println("Extracting '"+name+"' ("+contentType+")");
+ System.out.println("Extracting '"+name+"' ("+contentType+") to " + outputFile);
FileOutputStream os = new FileOutputStream(outputFile);
Modified: tika/trunk/tika-app/src/test/java/org/apache/tika/cli/TikaCLITest.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-app/src/test/java/org/apache/tika/cli/TikaCLITest.java?rev=1416028&r1=1416027&r2=1416028&view=diff
==============================================================================
--- tika/trunk/tika-app/src/test/java/org/apache/tika/cli/TikaCLITest.java (original)
+++ tika/trunk/tika-app/src/test/java/org/apache/tika/cli/TikaCLITest.java Sat Dec 1 17:53:32 2012
@@ -215,4 +215,14 @@ public class TikaCLITest extends TestCas
assertTrue(content.contains("sheetNames: Logical Sheet 3"));
assertTrue(content.contains("sheetNames: Sheet 4"));
}
+
+ // TIKA-1031
+ public void testZipWithSubdirs() throws Exception {
+ String[] params = {"-z", resourcePrefix + "testWithSubdirs.zip"};
+ new File("subdir/foo.txt").delete();
+ new File("subdir").delete();
+ TikaCLI.main(params);
+ String content = outContent.toString();
+ assertTrue(content.contains("Extracting 'subdir/foo.txt'"));
+ }
}
Added: tika/trunk/tika-app/src/test/resources/test-data/testWithSubdirs.zip
URL: http://svn.apache.org/viewvc/tika/trunk/tika-app/src/test/resources/test-data/testWithSubdirs.zip?rev=1416028&view=auto
==============================================================================
Binary file - no diff available.
Propchange: tika/trunk/tika-app/src/test/resources/test-data/testWithSubdirs.zip
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream