You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ta...@apache.org on 2019/11/20 22:45:25 UTC
[tika] branch branch_1x updated (2786625 -> ecf9b95)
This is an automated email from the ASF dual-hosted git repository.
tallison pushed a change to branch branch_1x
in repository https://gitbox.apache.org/repos/asf/tika.git.
from 2786625 update changes.txt
new f216d84 TIKA-2979 -- tika-server shouldn't throw an exception for a file format for which there is no parser.
new afab2a9 TIKA-2993 -- tika-server's /rmeta endpoint shouldn't throw an exception for regular runtime parse exceptions
new ff93d14 TIKA-2994 -- ExceptionUtils should not extract cause from subclasses of TikaException
new ecf9b95 git add missing test file :(
The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
CHANGES.txt | 3 ++
.../java/org/apache/tika/utils/ExceptionUtils.java | 2 +-
.../server/resource/RecursiveMetadataResource.java | 8 +++++-
.../apache/tika/server/resource/TikaResource.java | 14 ----------
.../tika/server/RecursiveMetadataResourceTest.java | 18 ++++++++----
.../org/apache/tika/server/StackTraceOffTest.java | 32 +++++++++++++++-------
.../org/apache/tika/server/StackTraceTest.java | 31 +++++++++++++++------
.../apache/tika/server/UnpackerResourceTest.java | 4 +--
.../src/test/resources}/testDigilite.fdf | 0
9 files changed, 69 insertions(+), 43 deletions(-)
copy {tika-parsers/src/test/resources/test-documents => tika-server/src/test/resources}/testDigilite.fdf (100%)
[tika] 02/04: TIKA-2993 -- tika-server's /rmeta endpoint shouldn't
throw an exception for regular runtime parse exceptions
Posted by ta...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
tallison pushed a commit to branch branch_1x
in repository https://gitbox.apache.org/repos/asf/tika.git
View the commit online:
https://github.com/apache/tika/commit/afab2a92f91ada54602b028d30979e048bdfbda2
commit afab2a92f91ada54602b028d30979e048bdfbda2
Author: tallison <ta...@apache.org>
AuthorDate: Wed Nov 20 16:35:45 2019 -0500
TIKA-2993 -- tika-server's /rmeta endpoint shouldn't throw an exception for regular runtime parse exceptions
# Conflicts:
# tika-server/src/test/java/org/apache/tika/server/RecursiveMetadataResourceTest.java
---
.../server/resource/RecursiveMetadataResource.java | 8 +++++++-
.../tika/server/RecursiveMetadataResourceTest.java | 18 ++++++++++++------
.../java/org/apache/tika/server/StackTraceOffTest.java | 6 ++++++
.../java/org/apache/tika/server/StackTraceTest.java | 6 ++++++
4 files changed, 31 insertions(+), 7 deletions(-)
diff --git a/tika-server/src/main/java/org/apache/tika/server/resource/RecursiveMetadataResource.java b/tika-server/src/main/java/org/apache/tika/server/resource/RecursiveMetadataResource.java
index 0335026..524759e 100644
--- a/tika-server/src/main/java/org/apache/tika/server/resource/RecursiveMetadataResource.java
+++ b/tika-server/src/main/java/org/apache/tika/server/resource/RecursiveMetadataResource.java
@@ -143,7 +143,13 @@ public class RecursiveMetadataResource {
BasicContentHandlerFactory.parseHandlerType(handlerTypeName, DEFAULT_HANDLER_TYPE);
RecursiveParserWrapperHandler handler = new RecursiveParserWrapperHandler(
new BasicContentHandlerFactory(type, -1), -1);
- TikaResource.parse(wrapper, LOG, info.getPath(), is, handler, metadata, context);
+ try {
+ TikaResource.parse(wrapper, LOG, info.getPath(), is, handler, metadata, context);
+ } catch (SecurityException e) {
+ throw e;
+ } catch (Exception e) {
+ //swallow it and report it via the metadata list
+ }
/*
We used to have this non-functional bit of code...refactor to add it back and make it work?
new LanguageHandler() {
diff --git a/tika-server/src/test/java/org/apache/tika/server/RecursiveMetadataResourceTest.java b/tika-server/src/test/java/org/apache/tika/server/RecursiveMetadataResourceTest.java
index 0acd02b..93243da 100644
--- a/tika-server/src/test/java/org/apache/tika/server/RecursiveMetadataResourceTest.java
+++ b/tika-server/src/test/java/org/apache/tika/server/RecursiveMetadataResourceTest.java
@@ -36,9 +36,10 @@ import org.apache.cxf.jaxrs.client.WebClient;
import org.apache.cxf.jaxrs.ext.multipart.Attachment;
import org.apache.cxf.jaxrs.lifecycle.SingletonResourceProvider;
import org.apache.tika.metadata.Metadata;
+import org.apache.tika.metadata.TikaCoreProperties;
import org.apache.tika.metadata.serialization.JsonMetadataList;
-import org.apache.tika.parser.RecursiveParserWrapper;
import org.apache.tika.sax.AbstractRecursiveParserWrapperHandler;
+import org.apache.tika.sax.RecursiveParserWrapperHandler;
import org.apache.tika.server.resource.RecursiveMetadataResource;
import org.apache.tika.server.writer.MetadataListMessageBodyWriter;
import org.junit.Test;
@@ -97,8 +98,13 @@ public class RecursiveMetadataResourceTest extends CXFTestBase {
.getSystemResourceAsStream(TikaResourceTest.TEST_PASSWORD_PROTECTED));
// Won't work, no password given
- assertEquals(500, response.getStatus());
+ assertEquals(200, response.getStatus());
+ // Check results
+ Reader reader = new InputStreamReader((InputStream) response.getEntity(), UTF_8);
+ List<Metadata> metadataList = JsonMetadataList.fromJson(reader);
+ assertNotNull(metadataList.get(0).get(TikaCoreProperties.CREATOR));
+ assertContains("EncryptedDocumentException", metadataList.get(0).get(RecursiveParserWrapperHandler.CONTAINER_EXCEPTION));
// Try again, this time with the password
response = WebClient
.create(endPoint + META_PATH)
@@ -111,10 +117,10 @@ public class RecursiveMetadataResourceTest extends CXFTestBase {
assertEquals(200, response.getStatus());
// Check results
- Reader reader = new InputStreamReader((InputStream) response.getEntity(), UTF_8);
- List<Metadata> metadataList = JsonMetadataList.fromJson(reader);
- assertNotNull(metadataList.get(0).get("Author"));
- assertEquals("pavel", metadataList.get(0).get("Author"));
+ reader = new InputStreamReader((InputStream) response.getEntity(), UTF_8);
+ metadataList = JsonMetadataList.fromJson(reader);
+ assertNotNull(metadataList.get(0).get(TikaCoreProperties.CREATOR));
+ assertEquals("pavel", metadataList.get(0).get(TikaCoreProperties.CREATOR));
}
@Test
diff --git a/tika-server/src/test/java/org/apache/tika/server/StackTraceOffTest.java b/tika-server/src/test/java/org/apache/tika/server/StackTraceOffTest.java
index 84c7806..5e0bf63 100644
--- a/tika-server/src/test/java/org/apache/tika/server/StackTraceOffTest.java
+++ b/tika-server/src/test/java/org/apache/tika/server/StackTraceOffTest.java
@@ -87,6 +87,9 @@ public class StackTraceOffTest extends CXFTestBase {
@Test
public void testEncrypted() throws Exception {
for (String path : PATHS) {
+ if ("/rmeta".equals(path)) {
+ continue;
+ }
Response response = WebClient
.create(endPoint + path)
.accept("*/*")
@@ -104,6 +107,9 @@ public class StackTraceOffTest extends CXFTestBase {
@Test
public void testNullPointerOnTika() throws Exception {
for (String path : PATHS) {
+ if ("/rmeta".equals(path)) {
+ continue;
+ }
Response response = WebClient
.create(endPoint + path)
.accept("*/*")
diff --git a/tika-server/src/test/java/org/apache/tika/server/StackTraceTest.java b/tika-server/src/test/java/org/apache/tika/server/StackTraceTest.java
index b284d16..f32d991 100644
--- a/tika-server/src/test/java/org/apache/tika/server/StackTraceTest.java
+++ b/tika-server/src/test/java/org/apache/tika/server/StackTraceTest.java
@@ -81,6 +81,9 @@ public class StackTraceTest extends CXFTestBase {
@Test
public void testEncrypted() throws Exception {
for (String path : PATHS) {
+ if ("/rmeta".equals(path)) {
+ continue;
+ }
Response response = WebClient
.create(endPoint + path)
.accept("*/*")
@@ -99,6 +102,9 @@ public class StackTraceTest extends CXFTestBase {
@Test
public void testNullPointerOnTika() throws Exception {
for (String path : PATHS) {
+ if ("/rmeta".equals(path)) {
+ continue;
+ }
Response response = WebClient
.create(endPoint + path)
.accept("*/*")
[tika] 03/04: TIKA-2994 -- ExceptionUtils should not extract cause
from subclasses of TikaException
Posted by ta...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
tallison pushed a commit to branch branch_1x
in repository https://gitbox.apache.org/repos/asf/tika.git
View the commit online:
https://github.com/apache/tika/commit/ff93d145d5e176047b5609233d97a5c78804b795
commit ff93d145d5e176047b5609233d97a5c78804b795
Author: tallison <ta...@apache.org>
AuthorDate: Wed Nov 20 17:16:24 2019 -0500
TIKA-2994 -- ExceptionUtils should not extract cause
from subclasses of TikaException
---
tika-core/src/main/java/org/apache/tika/utils/ExceptionUtils.java | 2 +-
.../test/java/org/apache/tika/server/RecursiveMetadataResourceTest.java | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/tika-core/src/main/java/org/apache/tika/utils/ExceptionUtils.java b/tika-core/src/main/java/org/apache/tika/utils/ExceptionUtils.java
index 190d977..1b7a0a5 100644
--- a/tika-core/src/main/java/org/apache/tika/utils/ExceptionUtils.java
+++ b/tika-core/src/main/java/org/apache/tika/utils/ExceptionUtils.java
@@ -44,7 +44,7 @@ public class ExceptionUtils {
*/
public static String getFilteredStackTrace(Throwable t) {
Throwable cause = t;
- if ((t instanceof TikaException) &&
+ if ((t.getClass().equals(TikaException.class)) &&
t.getCause() != null) {
cause = t.getCause();
}
diff --git a/tika-server/src/test/java/org/apache/tika/server/RecursiveMetadataResourceTest.java b/tika-server/src/test/java/org/apache/tika/server/RecursiveMetadataResourceTest.java
index 93243da..38773be 100644
--- a/tika-server/src/test/java/org/apache/tika/server/RecursiveMetadataResourceTest.java
+++ b/tika-server/src/test/java/org/apache/tika/server/RecursiveMetadataResourceTest.java
@@ -104,7 +104,7 @@ public class RecursiveMetadataResourceTest extends CXFTestBase {
List<Metadata> metadataList = JsonMetadataList.fromJson(reader);
assertNotNull(metadataList.get(0).get(TikaCoreProperties.CREATOR));
- assertContains("EncryptedDocumentException", metadataList.get(0).get(RecursiveParserWrapperHandler.CONTAINER_EXCEPTION));
+ assertContains("org.apache.tika.exception.EncryptedDocumentException", metadataList.get(0).get(RecursiveParserWrapperHandler.CONTAINER_EXCEPTION));
// Try again, this time with the password
response = WebClient
.create(endPoint + META_PATH)
[tika] 04/04: git add missing test file :(
Posted by ta...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
tallison pushed a commit to branch branch_1x
in repository https://gitbox.apache.org/repos/asf/tika.git
View the commit online:
https://github.com/apache/tika/commit/ecf9b95374af6513411da9dc84c8b0bf4d32be20
commit ecf9b95374af6513411da9dc84c8b0bf4d32be20
Author: tallison <ta...@apache.org>
AuthorDate: Wed Nov 20 17:45:06 2019 -0500
git add missing test file :(
---
tika-server/src/test/resources/testDigilite.fdf | 1 +
1 file changed, 1 insertion(+)
diff --git a/tika-server/src/test/resources/testDigilite.fdf b/tika-server/src/test/resources/testDigilite.fdf
new file mode 100644
index 0000000..64828b4
--- /dev/null
+++ b/tika-server/src/test/resources/testDigilite.fdf
@@ -0,0 +1 @@
+D+
\ No newline at end of file
[tika] 01/04: TIKA-2979 -- tika-server shouldn't throw an exception
for a file format for which there is no parser.
Posted by ta...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
tallison pushed a commit to branch branch_1x
in repository https://gitbox.apache.org/repos/asf/tika.git
View the commit online:
https://github.com/apache/tika/commit/f216d84a9a6430fe370233a406054d157dc5fedb
commit f216d84a9a6430fe370233a406054d157dc5fedb
Author: tallison <ta...@apache.org>
AuthorDate: Wed Nov 20 14:33:02 2019 -0500
TIKA-2979 -- tika-server shouldn't throw an exception for
a file format for which there is no parser.
# Conflicts:
# tika-server/src/main/java/org/apache/tika/server/resource/TikaResource.java
---
CHANGES.txt | 3 +++
.../apache/tika/server/resource/TikaResource.java | 14 ------------
.../org/apache/tika/server/StackTraceOffTest.java | 26 +++++++++++++---------
.../org/apache/tika/server/StackTraceTest.java | 25 +++++++++++++--------
.../apache/tika/server/UnpackerResourceTest.java | 4 ++--
5 files changed, 37 insertions(+), 35 deletions(-)
diff --git a/CHANGES.txt b/CHANGES.txt
index ce27843..906e97d 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -4,6 +4,9 @@ Release 1.23 - ??/??/???
users configure OCR on rendered page images. This will have the effect
of increasing rendered image size (TIKA-2624).
+ * NOTE: tika-server no longer returns 415 for file types for which there
+ is no parser.
+
* Upgrade to POI 4.1.1 (TIKA-2851).
* Upgrade to PDFBox 2.0.17 (TIKA-2951).
diff --git a/tika-server/src/main/java/org/apache/tika/server/resource/TikaResource.java b/tika-server/src/main/java/org/apache/tika/server/resource/TikaResource.java
index b0bbdd8..082228e 100644
--- a/tika-server/src/main/java/org/apache/tika/server/resource/TikaResource.java
+++ b/tika-server/src/main/java/org/apache/tika/server/resource/TikaResource.java
@@ -27,7 +27,6 @@ import org.apache.tika.config.TikaConfig;
import org.apache.tika.detect.Detector;
import org.apache.tika.exception.EncryptedDocumentException;
import org.apache.tika.metadata.Metadata;
-import org.apache.tika.metadata.TikaCoreProperties;
import org.apache.tika.metadata.TikaMetadataKeys;
import org.apache.tika.mime.MediaType;
import org.apache.tika.parser.AutoDetectParser;
@@ -117,19 +116,6 @@ public class TikaResource {
public static Parser createParser() {
final Parser parser = new AutoDetectParser(tikaConfig);
- Map<MediaType, Parser> parsers = ((AutoDetectParser)parser).getParsers();
-
- ((AutoDetectParser)parser).setParsers(parsers);
-
- ((AutoDetectParser)parser).setFallback(new Parser() {
- public Set<MediaType> getSupportedTypes(ParseContext parseContext) {
- return parser.getSupportedTypes(parseContext);
- }
-
- public void parse(InputStream inputStream, ContentHandler contentHandler, Metadata metadata, ParseContext parseContext) {
- throw new WebApplicationException(Response.Status.UNSUPPORTED_MEDIA_TYPE);
- }
- });
if (digester != null) {
return new DigestingParser(parser, digester);
}
diff --git a/tika-server/src/test/java/org/apache/tika/server/StackTraceOffTest.java b/tika-server/src/test/java/org/apache/tika/server/StackTraceOffTest.java
index d385581..84c7806 100644
--- a/tika-server/src/test/java/org/apache/tika/server/StackTraceOffTest.java
+++ b/tika-server/src/test/java/org/apache/tika/server/StackTraceOffTest.java
@@ -38,6 +38,7 @@ import org.apache.tika.server.resource.TikaResource;
import org.apache.tika.server.resource.UnpackerResource;
import org.apache.tika.server.writer.CSVMessageBodyWriter;
import org.apache.tika.server.writer.JSONMessageBodyWriter;
+import org.apache.tika.server.writer.MetadataListMessageBodyWriter;
import org.apache.tika.server.writer.TextMessageBodyWriter;
import org.apache.tika.server.writer.XMPMessageBodyWriter;
import org.junit.Assert;
@@ -79,6 +80,7 @@ public class StackTraceOffTest extends CXFTestBase {
providers.add(new CSVMessageBodyWriter());
providers.add(new XMPMessageBodyWriter());
providers.add(new TextMessageBodyWriter());
+ providers.add(new MetadataListMessageBodyWriter());
sf.setProviders(providers);
}
@@ -115,24 +117,28 @@ public class StackTraceOffTest extends CXFTestBase {
}
@Test
- public void test415() throws Exception {
+ public void testEmptyParser() throws Exception {
+ //As of Tika 1.23, we're no longer returning 415 for file types
+ //that don't have a parser
//no stack traces for 415
for (String path : PATHS) {
+
Response response = WebClient
.create(endPoint + path)
- .type("blechdeblah/deblechdeblah")
- .accept("*/*")
- .put(ClassLoader.getSystemResourceAsStream(TEST_NULL));
- assertNotNull("null response: " + path, response);
- assertEquals("bad type: " + path, 415, response.getStatus());
- String msg = getStringFromInputStream((InputStream) response
- .getEntity());
- assertEquals("should be empty: " + path, "", msg);
+ .accept("*:*")
+ .put(ClassLoader.getSystemResourceAsStream("testDigilite.fdf"));
+ if (path.equals("/unpack")) {
+ //"NO CONTENT"
+ assertEquals("bad type: " + path, 204, response.getStatus());
+ } else {
+ assertEquals("bad type: " + path, 200, response.getStatus());
+ assertNotNull("null response: " + path, response);
+ }
}
}
//For now, make sure that non-complete document
- //still returns BAD_REQUEST. We may want to
+ //still returtestXDP.xdpns BAD_REQUEST. We may want to
//make MetadataResource return the same types of parse
//exceptions as the others...
@Test
diff --git a/tika-server/src/test/java/org/apache/tika/server/StackTraceTest.java b/tika-server/src/test/java/org/apache/tika/server/StackTraceTest.java
index 24882f7..b284d16 100644
--- a/tika-server/src/test/java/org/apache/tika/server/StackTraceTest.java
+++ b/tika-server/src/test/java/org/apache/tika/server/StackTraceTest.java
@@ -37,6 +37,7 @@ import org.apache.tika.server.resource.TikaResource;
import org.apache.tika.server.resource.UnpackerResource;
import org.apache.tika.server.writer.CSVMessageBodyWriter;
import org.apache.tika.server.writer.JSONMessageBodyWriter;
+import org.apache.tika.server.writer.MetadataListMessageBodyWriter;
import org.apache.tika.server.writer.TextMessageBodyWriter;
import org.apache.tika.server.writer.XMPMessageBodyWriter;
import org.junit.Assert;
@@ -73,6 +74,7 @@ public class StackTraceTest extends CXFTestBase {
providers.add(new CSVMessageBodyWriter());
providers.add(new XMPMessageBodyWriter());
providers.add(new TextMessageBodyWriter());
+ providers.add(new MetadataListMessageBodyWriter());
sf.setProviders(providers);
}
@@ -111,22 +113,27 @@ public class StackTraceTest extends CXFTestBase {
}
@Test
- public void test415() throws Exception {
+ public void testEmptyParser() throws Exception {
+ //As of Tika 1.23, we're no longer returning 415 for file types
+ //that don't have a parser
//no stack traces for 415
for (String path : PATHS) {
+
Response response = WebClient
.create(endPoint + path)
- .type("blechdeblah/deblechdeblah")
- .accept("*/*")
- .put(ClassLoader.getSystemResourceAsStream(TEST_NULL));
- assertNotNull("null response: " + path, response);
- assertEquals("bad type: " + path, 415, response.getStatus());
- String msg = getStringFromInputStream((InputStream) response
- .getEntity());
- assertEquals("should be empty: " + path, "", msg);
+ .accept("*:*")
+ .put(ClassLoader.getSystemResourceAsStream("testDigilite.fdf"));
+ if (path.equals("/unpack")) {
+ //"NO CONTENT"
+ assertEquals("bad type: " + path, 204, response.getStatus());
+ } else {
+ assertEquals("bad type: " + path, 200, response.getStatus());
+ assertNotNull("null response: " + path, response);
+ }
}
}
+
//For now, make sure that non-complete document
//still returns BAD_REQUEST. We may want to
//make MetadataResource return the same types of parse
diff --git a/tika-server/src/test/java/org/apache/tika/server/UnpackerResourceTest.java b/tika-server/src/test/java/org/apache/tika/server/UnpackerResourceTest.java
index 64b8ab9..350257c 100644
--- a/tika-server/src/test/java/org/apache/tika/server/UnpackerResourceTest.java
+++ b/tika-server/src/test/java/org/apache/tika/server/UnpackerResourceTest.java
@@ -141,13 +141,13 @@ public class UnpackerResourceTest extends CXFTestBase {
}
@Test
- public void test415() throws Exception {
+ public void test204() throws Exception {
Response response = WebClient.create(endPoint + UNPACKER_PATH)
.type("xxx/xxx")
.accept("*/*")
.put(ClassLoader.getSystemResourceAsStream(TEST_DOC_WAV));
- assertEquals(415, response.getStatus());
+ assertEquals(204, response.getStatus());
}
@Test