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

Application integration can lead to: NullPointerException in the StepLoader class due to not synchronized methods

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Severity: Medium
    • Resolution: Fixed
    • Affects Version/s: 3.0.2
    • Fix Version/s: 4.0.0 GA
    • Component/s: API
    • Labels:
      None
    • 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.

      Description

      Reported on the forum: http://forums.pentaho.org/showthread.php?t=71878

      I had integrated kettle 3.0.2 with my application and had deployed it on an APP server. With 3.0.2 version, i used to face many threading issues.

      For.e.g: In the scenario mentioned below:
      I have 3 JBOSS servers up and running, each have the capacity to run 5 threads of transformation in parallel. So at any instinct, we can have 15 transformations running in parallel for 15 different input files or inputs.

      But, some threads used to fail due to NullPointerException in the StepLoader class.

      The trace is as given below:
      2009/07/13 07:10:14 - Pan - ERROR (version 3.0.2, build 536 from 2008/01/21 15:36:26) : at org.pentaho.di.trans.StepLoader.findStepPluginWith ID(StepLoader.java:571)
      2009/07/13 07:10:14 - Pan - ERROR (version 3.0.2, build 536 from 2008/01/21 15:36:26) : at org.pentaho.di.trans.step.StepMeta.<init>(StepMeta .java:218)
      2009/07/13 07:10:14 - Pan - ERROR (version 3.0.2, build 536 from 2008/01/21 15:36:26) : at org.pentaho.di.trans.TransMeta.loadXML(TransMeta.j ava:2865)
      2009/07/13 07:10:14 - Pan - ERROR (version 3.0.2, build 536 from 2008/01/21 15:36:26) : at org.pentaho.di.trans.TransMeta.<init>(TransMeta.ja va:2707)
      2009/07/13 07:10:14 - Pan - ERROR (version 3.0.2, build 536 from 2008/01/21 15:36:26) : at org.pentaho.di.trans.TransMeta.<init>(TransMeta.ja va:2664)
      2009/07/13 07:10:14 - Pan - ERROR (version 3.0.2, build 536 from 2008/01/21 15:36:26) : at org.pentaho.di.trans.TransMeta.<init>(TransMeta.ja va:2652)
      2009/07/13 07:10:14 - Pan - ERROR (version 3.0.2, build 536 from 2008/01/21 15:36:26) : at com.tdemand.server.datamanagement.common.DataLoadM anagerServiceImpl.runTransformation(DataLoadManage rServiceImpl.java:464)

      Later, after having a look at the StepLoader class source/java file, i observed that this class is a singleton class but the instance creation methods like init()/getInstance() was not thread-safe, so i just synchronized these methods and patched-in to my 3.0.2 jars and now the transformation runs through fine when triggered as multiple threads on an APP server.

        Attachments

          Activity

            People

            • Assignee:
              gdavid Golda Thomas
              Reporter:
              jbleuel Jens Bleuel
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: