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/12/03 18:09:39 UTC
[tika] branch branch_1x updated: TIKA-2992 -- ensure opcode matches
asm version in XHTMLClassVisitor
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
The following commit(s) were added to refs/heads/branch_1x by this push:
new 887b27a TIKA-2992 -- ensure opcode matches asm version in XHTMLClassVisitor
887b27a is described below
commit 887b27a5ca2f1c98c2c5ae8422b96aa0f39fdb75
Author: tballison <ta...@apache.org>
AuthorDate: Tue Dec 3 12:56:17 2019 -0500
TIKA-2992 -- ensure opcode matches asm version in XHTMLClassVisitor
# Conflicts:
# CHANGES.txt
---
CHANGES.txt | 6 +++++-
tika-parsers/pom.xml | 4 ++++
.../org/apache/tika/parser/asm/XHTMLClassVisitor.java | 2 +-
.../org/apache/tika/parser/asm/ClassParserTest.java | 17 +++++++++++------
.../test-documents/AppleSingleFileParser.class | Bin 0 -> 7601 bytes
5 files changed, 21 insertions(+), 8 deletions(-)
diff --git a/CHANGES.txt b/CHANGES.txt
index 67dda93..ad36ac1 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,3 +1,7 @@
+Release 1.24 - ???
+
+ * Fix bug in ASM parser configuration (TIKA-2992).
+
Release 1.23 - 12/02/2019
* NOTE: The PDFParser now relies on OCRDPI to render page images when
@@ -26,7 +30,7 @@ Release 1.23 - 12/02/2019
* Add an XLZ Parser (TIKA-2976).
- * Fix deadlock with ForkParser when InputStream throws IOException (TIKA-2892)
+ * Fix deadlock with ForkParser when InputStream throws IOException (TIKA-2892).
Release 1.22 - 07/29/2019
diff --git a/tika-parsers/pom.xml b/tika-parsers/pom.xml
index 0424efc..2c4b046 100644
--- a/tika-parsers/pom.xml
+++ b/tika-parsers/pom.xml
@@ -299,6 +299,10 @@
<artifactId>tagsoup</artifactId>
<version>1.2.1</version>
</dependency>
+ <!-- WARNING: when you upgrade asm make sure that you update the
+ OpCode in the initializer in org.apache.tika.parser.asm.XHTMLClassVisitor
+ See TIKA-2992.
+ -->
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
diff --git a/tika-parsers/src/main/java/org/apache/tika/parser/asm/XHTMLClassVisitor.java b/tika-parsers/src/main/java/org/apache/tika/parser/asm/XHTMLClassVisitor.java
index c8ea317..450e5e5 100644
--- a/tika-parsers/src/main/java/org/apache/tika/parser/asm/XHTMLClassVisitor.java
+++ b/tika-parsers/src/main/java/org/apache/tika/parser/asm/XHTMLClassVisitor.java
@@ -49,7 +49,7 @@ class XHTMLClassVisitor extends ClassVisitor {
private String packageName;
public XHTMLClassVisitor(ContentHandler handler, Metadata metadata) {
- super(Opcodes.ASM5);
+ super(Opcodes.ASM7);
this.xhtml = new XHTMLContentHandler(handler, metadata);
this.metadata = metadata;
}
diff --git a/tika-parsers/src/test/java/org/apache/tika/parser/asm/ClassParserTest.java b/tika-parsers/src/test/java/org/apache/tika/parser/asm/ClassParserTest.java
index 3a8a66c..b184318 100644
--- a/tika-parsers/src/test/java/org/apache/tika/parser/asm/ClassParserTest.java
+++ b/tika-parsers/src/test/java/org/apache/tika/parser/asm/ClassParserTest.java
@@ -18,7 +18,7 @@ package org.apache.tika.parser.asm;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
-import org.apache.tika.Tika;
+import org.apache.tika.TikaTest;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.metadata.TikaCoreProperties;
import org.junit.Test;
@@ -26,15 +26,12 @@ import org.junit.Test;
/**
* Test case for parsing Java class files.
*/
-public class ClassParserTest {
+public class ClassParserTest extends TikaTest {
@Test
public void testClassParsing() throws Exception {
- String path = "/test-documents/AutoDetectParser.class";
Metadata metadata = new Metadata();
- String content = new Tika().parseToString(
- ClassParserTest.class.getResourceAsStream(path), metadata);
-
+ String content = getText("AutoDetectParser.class", metadata);
assertEquals("AutoDetectParser", metadata.get(TikaCoreProperties.TITLE));
assertEquals(
"AutoDetectParser.class",
@@ -56,4 +53,12 @@ public class ClassParserTest {
+ " throws java.io.IOException;"));
}
+ @Test
+ public void testJava11() throws Exception {
+ //Make sure that this java 11 target .class
+ //file doesn't throw an exception
+ //TIKA-2992
+ XMLResult xmlResult = getXML("AppleSingleFileParser.class");
+ assertContains("<title>AppleSingleFileParser</title>", xmlResult.xml);
+ }
}
diff --git a/tika-parsers/src/test/resources/test-documents/AppleSingleFileParser.class b/tika-parsers/src/test/resources/test-documents/AppleSingleFileParser.class
new file mode 100644
index 0000000..1b402d9
Binary files /dev/null and b/tika-parsers/src/test/resources/test-documents/AppleSingleFileParser.class differ