[ https://issues.apache.org/jira/browse/TIKA-1078?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13869205#comment-13869205 ]
Michael McCandless commented on TIKA-1078: ------------------------------------------ Thanks Stefano! Can you fix the license header on the two new files to match the current sources? Thanks. Also, we don't normally include @ author tags. Maybe use a HashSet instead of an array for RESERVED, so it's not an O(N) lookup per character? Also, since you check for < ' ', you shouldn't need any entries < 0x20? Sometimes (rarely?), attachment filenames have their own sub-directories, and the code today will happily .mkdirs those subdirectories, but it looks like with this patch we now replace / and \ with their hex equivalents, instead? I think that's OK... > TikaCLI: invalid characters in embedded document name causes FNFE when trying > to save > ------------------------------------------------------------------------------------- > > Key: TIKA-1078 > URL: https://issues.apache.org/jira/browse/TIKA-1078 > Project: Tika > Issue Type: Bug > Components: cli, parser > Reporter: Michael McCandless > Fix For: 1.5 > > Attachments: T-DS_Excel2003-PPT2003_1.xls, tika-1078.patch > > > Attached document hits this on Windows: > {noformat} > C:\>java.exe -jar tika-app-1.3.jar -z -x > c:\data\idit\T-DS_Excel2003-PPT2003_1.xls > Extracting 'file0.png' (image/png) to .\file0.png > Extracting 'file1.emf' (application/x-emf) to .\file1.emf > Extracting 'file2.jpg' (image/jpeg) to .\file2.jpg > Extracting 'file3.emf' (application/x-emf) to .\file3.emf > Extracting 'file4.wmf' (application/x-msmetafile) to .\file4.wmf > Extracting 'MBD0016BDE4/?£☺.bin' (application/octet-stream) to > .\MBD0016BDE4\?£☺.bin > Exception in thread "main" org.apache.tika.exception.TikaException: TIKA-198: > Illegal IOException from > org.apache.tika.parser.microsoft.OfficeParser@75f875f8 > at > org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:248) > at > org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:242) > at > org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:120) > at org.apache.tika.cli.TikaCLI$OutputType.process(TikaCLI.java:139) > at org.apache.tika.cli.TikaCLI.process(TikaCLI.java:415) > at org.apache.tika.cli.TikaCLI.main(TikaCLI.java:109) > Caused by: java.io.FileNotFoundException: .\MBD0016BDE4\?£☺.bin (The > filename, directory name, or volume label syntax is incorrect.) > at java.io.FileOutputStream.<init>(FileOutputStream.java:205) > at java.io.FileOutputStream.<init>(FileOutputStream.java:156) > at > org.apache.tika.cli.TikaCLI$FileEmbeddedDocumentExtractor.parseEmbedded(TikaCLI.java:722) > at > org.apache.tika.parser.microsoft.AbstractPOIFSExtractor.handleEmbeddedOfficeDoc(AbstractPOIFSExtractor.java:201) > at > org.apache.tika.parser.microsoft.ExcelExtractor.parse(ExcelExtractor.java:158) > at > org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:194) > at > org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:161) > at > org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:242) > ... 5 more > {noformat} > TikaCLI manages to create the sub-directory, but because the embedded > fileName has invalid (for Windows) characters, it fails. > On Linux it runs fine. > I think somehow ... we have to sanitize the embedded file name ... -- This message was sent by Atlassian JIRA (v6.1.5#6160)