Uploaded image for project: 'Tika'
  1. Tika
  2. TIKA-1925

Composite External Parser like Exiftool fails to run on Windows.

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Won't Fix
    • 1.12
    • 1.14
    • core
    • None
    • Windows 10, Intel i7 6550U 64-Bit processor

    Description

      While trying to run EXIFTool Parser using Tika on Windows OS, we are getting following error output.
      (Ref: http://wiki.apache.org/tika/EXIFToolParser)

      java.io.IOException: Cannot run program "env": CreateProcess error=2, The system cannot find the file specified
      at java.lang.ProcessBuilder.start(Unknown Source)
      at java.lang.Runtime.exec(Unknown Source)
      at java.lang.Runtime.exec(Unknown Source)
      at org.apache.tika.parser.external.ExternalParser.parse(ExternalParser.java:182)
      at org.apache.tika.parser.external.ExternalParser.parse(ExternalParser.java:145)
      at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:280)
      at org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:177)
      at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:280)
      at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:280)
      at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:120)
      at org.apache.tika.cli.TikaCLI$OutputType.process(TikaCLI.java:190)
      at org.apache.tika.cli.TikaCLI.process(TikaCLI.java:491)
      at org.apache.tika.cli.TikaCLI.main(TikaCLI.java:144)
      Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
      at java.lang.ProcessImpl.create(Native Method)
      at java.lang.ProcessImpl.<init>(Unknown Source)
      at java.lang.ProcessImpl.start(Unknown Source)
      ... 13 more
      Exception in thread "main" org.apache.tika.exception.TikaException: Unexpected RuntimeException from org.apache.tika.parser.external.ExternalParser@51efea79
      at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:282)
      at org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:177)
      at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:280)
      at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:280)
      at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:120)
      at org.apache.tika.cli.TikaCLI$OutputType.process(TikaCLI.java:190)
      at org.apache.tika.cli.TikaCLI.process(TikaCLI.java:491)
      at org.apache.tika.cli.TikaCLI.main(TikaCLI.java:144)
      Caused by: java.lang.NullPointerException
      at org.apache.tika.parser.external.ExternalParser.parse(ExternalParser.java:218)
      at org.apache.tika.parser.external.ExternalParser.parse(ExternalParser.java:145)
      at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:280)
      ... 7 more

      After analyzing the stack trace and little experimentation, we found that "env" is unix/Mac OS X/Linux specific command and does not work on Windows.

      We were able to workaround this problem by adding some Windows specific code, recompile Tika and run again with similar setup. I am attaching the original file and modified file for review.

      If fix is acceptable by Tika specific standards, I can send the pull request on Github to contribute the patch.

      Attachments

        1. ExternalParser_orig.java
          13 kB
          Nilay Chheda
        2. ExternalParser_modified.java
          14 kB
          Nilay Chheda

        Issue Links

          Activity

            People

              chrismattmann Chris A. Mattmann
              mit2nil Nilay Chheda
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: