[ https://issues.apache.org/jira/browse/TIKA-1373?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14073042#comment-14073042 ]
Hong-Thai Nguyen commented on TIKA-1373: ---------------------------------------- HtmlParser skips tags generated by JHighlight. I found a solution by using directly TagSoup Parser. Commit in r1613051. As I mentioned in TIKA-1224, this parser is quick & dirty approach to parser source code file. Again, the _right_ one parser is must have dedicate parser by language and parse deeply elements and build events on-the-fly. > AutoDetectParser extracts no text when SourceCodeParser is selected > ------------------------------------------------------------------- > > Key: TIKA-1373 > URL: https://issues.apache.org/jira/browse/TIKA-1373 > Project: Tika > Issue Type: Bug > Affects Versions: 1.5 > Reporter: Andrés Aguilar-Umaña > > When using the AutoDetectParser in java code, and the SourceCodeParser is > selected (i.e. java files), the handler gets no text: > I have this test program: > {code} > String data = "public class HelloWorld {}"; > ByteArrayInputStream bais = new ByteArrayInputStream(data.getBytes()); > Parser autoDetectParser = new AutoDetectParser(); > BodyContentHandler bch = new BodyContentHandler(50); > ParseContext parseContext = new ParseContext(); > Metadata metadata = new Metadata(); > metadata.set(Metadata.CONTENT_TYPE, "text/x-java-source"); > try { > autoDetectParser.parse(bais, bch, metadata, parseContext); > } catch (Exception e) { > e.printStackTrace(); > } > System.out.println("Text extracted: "+bch.toString()) > {code} > It returns (using the SourceCodeParser): > {code} > Text extracted: {code} > But when I use this code: > {code} > String data = "public class HelloWorld {}"; > ByteArrayInputStream bais = new ByteArrayInputStream(data.getBytes()); > Parser autoDetectParser = new AutoDetectParser(); > BodyContentHandler bch = new BodyContentHandler(50); > ParseContext parseContext = new ParseContext(); > Metadata metadata = new Metadata(); > metadata.set(Metadata.CONTENT_TYPE, "text/plain"); > try { autoDetectParser.parse(bais, bch, metadata, parseContext); } > catch (Exception e) { e.printStackTrace(); } > System.out.println("Text extracted: "+bch.toString()) > {code} > The Text Parser is used and I get: > {code} > Text extracted: public class HelloWorld {} {code} > I have also tested this command: > {code} > > java -jar tika-app-1.5.jar -t D:\text.java > (no text) > {code} -- This message was sent by Atlassian JIRA (v6.2#6252)