Uploaded image for project: 'Pentaho Data Integration - Kettle'
  1. Pentaho Data Integration - Kettle
  2. PDI-13074

Script step does not recognize all script engines (Mac w Java 7)

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Severity: High
    • Resolution: Fixed
    • Affects Version/s: 5.1.0 GA
    • Fix Version/s: 6.0.0 GA
    • Component/s: Step
    • Labels:
    • Environment:
      Mac, Java 7
    • Story Points:
      0
    • PDI Sub-component:
    • Notice:
      When an issue is open, the "Fix Version/s" field conveys a target, not necessarily a commitment. When an issue is closed, the "Fix Version/s" field conveys the version that the issue was fixed in.
    • Sprint Team:
      Maintenance
    • Operating System/s:
      Mac OSx Mavericks

      Description

      When running PDI with a Script step set to use the Groovy scripting engine (included with PDI), the transformation fails and the stack trace indicates it has fallen back to use Rhino (JavaScript) as the scripting engine.

      I debugged this and found that the ScriptEngineManager does not load any additional script engines that aren't already present in the system classloader (AppleScript and JavaScript are the only two loaded on Mac), including Groovy which is in the application classpath.

      The cause is similar to the one in PDI-12524, where the ScriptEngineManager is not provided a classloader so it defaults (in Java 7 on a Mac) to the system classloader rather than the application classloader.

      A workaround is to use Java 6, but I don't believe that is supported for PDI 5.0+

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              Unassigned
              Reporter:
              mburgess Matt Burgess (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: