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 19:33:25 UTC
[tika] branch master updated: TIKA-2979 -- tika-server shouldn't
throw an exception for a file format for which there is no parser.
This is an automated email from the ASF dual-hosted git repository.
tallison pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tika.git
View the commit online:
https://github.com/apache/tika/commit/833630effeefdd60c2319b2f51acb8baf3830027
The following commit(s) were added to refs/heads/master by this push:
new 833630e TIKA-2979 -- tika-server shouldn't throw an exception for a file format for which there is no parser.
833630e is described below
commit 833630effeefdd60c2319b2f51acb8baf3830027
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.
---
CHANGES.txt | 3 +++
.../apache/tika/server/resource/TikaResource.java | 9 --------
.../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(+), 30 deletions(-)
diff --git a/CHANGES.txt b/CHANGES.txt
index 7b75114..6b532f0 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -7,6 +7,9 @@ Release 2.0.0 - ???
Release 1.23
+ * 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 cd2d362..c5bfa8f 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
@@ -115,15 +115,6 @@ public class TikaResource {
public static Parser createParser() {
final Parser parser = new AutoDetectParser(tikaConfig);
- ((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