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

Composite External Parser like Exiftool fails to run on Windows.

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Won't Fix
    • Affects Version/s: 1.12
    • Fix Version/s: 1.14
    • Component/s: core
    • Labels:
      None
    • Environment:

      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_modified.java
          14 kB
          Nilay Chheda
        2. ExternalParser_orig.java
          13 kB
          Nilay Chheda

          Issue Links

            Activity

              People

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

                Dates

                • Created:
                  Updated:
                  Resolved: