[ https://issues.apache.org/jira/browse/TIKA-1215?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13860246#comment-13860246 ]
Hong-Thai Nguyen edited comment on TIKA-1215 at 1/2/14 3:11 PM: ---------------------------------------------------------------- [~davemeikle], here's a sample test failed on this file: {code} package com.polyspot.document.converter; import static org.fest.assertions.Assertions.assertThat; import java.io.ByteArrayOutputStream; import java.io.InputStream; import org.apache.commons.io.IOUtils; import org.apache.tika.config.TikaConfig; import org.apache.tika.metadata.Metadata; import org.apache.tika.parser.CompositeParser; import org.apache.tika.parser.ParseContext; import org.apache.tika.parser.Parser; import org.apache.tika.sax.BodyContentHandler; import org.apache.tika.sax.ToHTMLContentHandler; import org.apache.tika.sax.WriteOutContentHandler; import org.junit.Before; import org.junit.Test; import org.xml.sax.ContentHandler; public class Mp3ParserTest { private ConverterConfiguration config; private CompositeParser parser; @Before public void before() throws Exception { config = new ConverterConfiguration(); config.setMimeToConverter("src/test/resources/mimeToConverter.xml"); config.setSizeLimit(400000); TikaConfig tikaConf = new TikaConfig(config.getMimeToConverter().trim()); parser = (CompositeParser) tikaConf.getParser(); } @Test public void can_parse_mp3_files() throws Exception { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); ToHTMLContentHandler toHtmlContentHandler = new ToHTMLContentHandler(outputStream, "UTF-8"); // Extract // always // HTML // by // default WriteOutContentHandler handler = new WriteOutContentHandler(toHtmlContentHandler, (int) 4000000); ContentHandler bodyHandler = new BodyContentHandler(handler); InputStream input = getClass().getResourceAsStream("/mp3/test.mp3"); try { ParseContext context = new ParseContext(); // parsing context.set(Parser.class, parser); Metadata metadata = new Metadata(); metadata.add(Metadata.RESOURCE_NAME_KEY, "12345"); metadata.add(Metadata.CONTENT_TYPE, "audio/mpeg"); parser.parse(input, bodyHandler, metadata, context); } finally { IOUtils.closeQuietly(input); } String output = outputStream.toString("UTF-8"); assertThat(output).isNotEmpty(); // failed } } {code} Here's stack error {noformat} org.xml.sax.SAXException: Namespace http://www.w3.org/1999/xhtml not declared at org.apache.tika.sax.ToXMLContentHandler$ElementInfo.getPrefix(ToXMLContentHandler.java:62) at org.apache.tika.sax.ToXMLContentHandler$ElementInfo.getQName(ToXMLContentHandler.java:68) at org.apache.tika.sax.ToXMLContentHandler.startElement(ToXMLContentHandler.java:148) at org.apache.tika.sax.ContentHandlerDecorator.startElement(ContentHandlerDecorator.java:126) at org.apache.tika.sax.ContentHandlerDecorator.startElement(ContentHandlerDecorator.java:126) at org.apache.tika.sax.xpath.MatchingContentHandler.startElement(MatchingContentHandler.java:60) at org.apache.tika.sax.ContentHandlerDecorator.startElement(ContentHandlerDecorator.java:126) at org.apache.tika.sax.ContentHandlerDecorator.startElement(ContentHandlerDecorator.java:126) at org.apache.tika.sax.ContentHandlerDecorator.startElement(ContentHandlerDecorator.java:126) at org.apache.tika.sax.SafeContentHandler.startElement(SafeContentHandler.java:264) at org.apache.tika.sax.XHTMLContentHandler.startElement(XHTMLContentHandler.java:254) at org.apache.tika.sax.XHTMLContentHandler.startElement(XHTMLContentHandler.java:284) at org.apache.tika.sax.XHTMLContentHandler.element(XHTMLContentHandler.java:323) at org.apache.tika.parser.mp3.Mp3Parser.parse(Mp3Parser.java:107) at org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:91) at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:242) at com.polyspot.document.converter.Mp3ParserTest.can_parse_mp3_files(Mp3ParserTest.java:49) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) at org.junit.runners.ParentRunner.run(ParentRunner.java:309) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) {noformat} was (Author: thaichat04): [~davemeikle], here's a sample test failed on this file: {code} package com.polyspot.document.converter; import static org.fest.assertions.Assertions.assertThat; import java.io.ByteArrayOutputStream; import java.io.InputStream; import org.apache.commons.io.IOUtils; import org.apache.tika.config.TikaConfig; import org.apache.tika.metadata.Metadata; import org.apache.tika.parser.CompositeParser; import org.apache.tika.parser.ParseContext; import org.apache.tika.parser.Parser; import org.apache.tika.sax.BodyContentHandler; import org.apache.tika.sax.ToHTMLContentHandler; import org.apache.tika.sax.WriteOutContentHandler; import org.junit.Before; import org.junit.Test; import org.xml.sax.ContentHandler; public class Mp3ParserTest { private ConverterConfiguration config; private CompositeParser parser; @Before public void before() throws Exception { config = new ConverterConfiguration(); config.setMimeToConverter("src/test/resources/mimeToConverter.xml"); config.setSizeLimit(400000); TikaConfig tikaConf = new TikaConfig(config.getMimeToConverter().trim()); parser = (CompositeParser) tikaConf.getParser(); } @Test public void can_parse_mp3_files() throws Exception { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); ToHTMLContentHandler toHtmlContentHandler = new ToHTMLContentHandler(outputStream, "UTF-8"); // Extract always HTML by default WriteOutContentHandler handler = new WriteOutContentHandler(toHtmlContentHandler, (int) 4000000); ContentHandler bodyHandler = new BodyContentHandler(handler); InputStream input = getClass().getResourceAsStream("/mp3/test.mp3"); try { ParseContext context = new ParseContext(); // parsing context.set(Parser.class, parser); parser.parse(input, bodyHandler, new Metadata(), context); } finally { IOUtils.closeQuietly(input); } String output = outputStream.toString("UTF-8"); assertThat(output).isNotEmpty(); // failed } } {code} > Regression: Unable to parse a mp3 file on 1.5 which parsed successfully on 1.4 > ------------------------------------------------------------------------------ > > Key: TIKA-1215 > URL: https://issues.apache.org/jira/browse/TIKA-1215 > Project: Tika > Issue Type: Bug > Components: parser > Affects Versions: 1.5 > Reporter: Hong-Thai Nguyen > Priority: Critical > Attachments: Centres 080805@0650 RTBF Matin Première - A propos des > rues de Dublin et Dubreucq.mp3 > > > With attached file, 1.5 raises this exception on parsing. This file has no > problem on 1.4 > {code} > ... > Caused by: org.xml.sax.SAXException: Namespace http://www.w3.org/1999/xhtml > not declared > at > org.apache.tika.sax.ToXMLContentHandler$ElementInfo.getPrefix(ToXMLContentHandler.java:62) > at > org.apache.tika.sax.ToXMLContentHandler$ElementInfo.getQName(ToXMLContentHandler.java:68) > at > org.apache.tika.sax.ToXMLContentHandler.startElement(ToXMLContentHandler.java:148) > at > org.apache.tika.sax.ContentHandlerDecorator.startElement(ContentHandlerDecorator.java:126) > at > org.apache.tika.sax.ContentHandlerDecorator.startElement(ContentHandlerDecorator.java:126) > at > org.apache.tika.sax.xpath.MatchingContentHandler.startElement(MatchingContentHandler.java:60) > at > org.apache.tika.sax.ContentHandlerDecorator.startElement(ContentHandlerDecorator.java:126) > at > org.apache.tika.sax.ContentHandlerDecorator.startElement(ContentHandlerDecorator.java:126) > at > org.apache.tika.sax.ContentHandlerDecorator.startElement(ContentHandlerDecorator.java:126) > at > org.apache.tika.sax.SafeContentHandler.startElement(SafeContentHandler.java:264) > at > org.apache.tika.sax.XHTMLContentHandler.startElement(XHTMLContentHandler.java:254) > at > org.apache.tika.sax.XHTMLContentHandler.startElement(XHTMLContentHandler.java:284) > at > org.apache.tika.sax.XHTMLContentHandler.element(XHTMLContentHandler.java:323) > at org.apache.tika.parser.mp3.Mp3Parser.parse(Mp3Parser.java:107) > at org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:91) > at > org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:242) > at > com.polyspot.document.converter.DocumentConverter.realizeTikaConversion(DocumentConverter.java:221) > ... 15 more > {code} -- This message was sent by Atlassian JIRA (v6.1.5#6160)