Hitachi Vantara Pentaho Community Forums
Results 1 to 14 of 14

Thread: more than one plugin gives "Class not found"

  1. #1

    Exclamation more than one plugin gives "Class not found"

    I've created two annotated plugins and placed them in $HOME/.kettle/plugins, and I get the below error. The funny thing is that these plugins work fine whenever they're in the plugin directory separately. They don't share any resources, and they're defined in separate packages, so I don't see why they would conflict with each other.

    EDIT: grab the line before and after, to show nothing is cut off.

    Code:
    [Thu 7:20pm] $ spoon 
    INFO  24-02 19:21:53,458 - Using "/tmp/vfs_cache" as temporary files store.
    INFO  24-02 19:21:54,906 - Spoon - Logging goes to file:///tmp/spoon_653b1845-408e-11e0-8c7a-094b2e37fa92.log
    ERROR 24-02 19:21:55,926 - GUIResource - Unable to find required step image file or image format not supported (e.g. interlaced) [plugin/regexeval/RGE.png : 
    ERROR 24-02 19:21:55,926 - GUIResource - org.pentaho.di.core.exception.KettlePluginException: 
    Class not found
    plugin.regexeval.RegexEvalMeta
    org.pentaho.di.core.plugins.PluginRegistry.loadClass(PluginRegistry.java:364)
    org.pentaho.di.core.plugins.PluginRegistry.loadClass(PluginRegistry.java:240)
    org.pentaho.di.ui.core.gui.GUIResource.loadStepImages(GUIResource.java:555)
    org.pentaho.di.ui.core.gui.GUIResource.getResources(GUIResource.java:372)
    org.pentaho.di.ui.core.gui.GUIResource.<init>(GUIResource.java:307)
    org.pentaho.di.ui.core.gui.GUIResource.getInstance(GUIResource.java:324)
    org.pentaho.di.ui.core.PropsUI.init(PropsUI.java:103)
    org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:518)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:597)
    org.pentaho.commons.launcher.Launcher.main(Launcher.java:110)
    
    WARN  24-02 19:22:00,580 - could not parse [vertical] as Align value
    WARN  24-02 19:22:00,940 - Cannot overlay element with id [trans] as it does not exist in the target document.
    WARN  24-02 19:22:00,940 - Cannot overlay element with id [job] as it does not exist in the target document.
    INFO  24-02 19:22:06,696 - Spoon - Spoon  has ended.
    [Thu 7:22pm]$
    Last edited by bukzor; 02-25-2011 at 03:09 PM. Reason: grab the line before and after, to show nothing is cut off

  2. #2
    Join Date
    Nov 1999
    Posts
    9,729

    Default

    Do they share a lib/ folder or something like that? Libs in there get included in the class path automatically.
    Is a part of the stack trace missing?

  3. #3

    Default

    There's no lib folder, and that's the whole stack trace.

  4. #4

    Default

    Here's the jars, and the code, if that helps.

    jars.zip
    src.zip

    These plugins are standard steps with small fixes.
    I've submitted the patches here:

    http://jira.pentaho.com/browse/PDI-5395
    http://jira.pentaho.com/browse/PDI-4936

    --Buck

  5. #5
    Join Date
    Nov 1999
    Posts
    9,729

    Default

    Ah, so they do in fact conflict with the normal class path. It must be related to some weird class loading thing.
    What PDI version are you on?

  6. #6

    Default

    Why do you say they conflict? They're defined within the plugin package, so I assumed they would not conflict with anything under org.pentaho.

    I've tested on 4.0.1 and 4.1.3.

  7. #7
    Join Date
    Nov 1999
    Posts
    9,729

    Default

    You're right, it's a different package actually. Sorry no idea for the time being.

  8. #8

    Default

    Is anyone able to reproduce the problem?


    jars.zip
    Last edited by bukzor; 02-25-2011 at 05:19 PM.

  9. #9
    Join Date
    Nov 1999
    Posts
    9,729

    Default

    OK, here's the full stack:

    Code:
    Class not found
    plugin.regexeval.RegexEvalMeta
    
        at org.pentaho.di.core.plugins.PluginRegistry.loadClass(PluginRegistry.java:364)
        at org.pentaho.di.core.plugins.PluginRegistry.loadClass(PluginRegistry.java:240)
        at org.pentaho.di.ui.core.gui.GUIResource.loadStepImages(GUIResource.java:573)
        at org.pentaho.di.ui.core.gui.GUIResource.getResources(GUIResource.java:379)
        at org.pentaho.di.ui.core.gui.GUIResource.<init>(GUIResource.java:313)
        at org.pentaho.di.ui.core.gui.GUIResource.getInstance(GUIResource.java:330)
        at org.pentaho.di.ui.core.PropsUI.init(PropsUI.java:103)
        at org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:524)
    Caused by: java.lang.ClassNotFoundException: plugin.regexeval.RegexEvalMeta
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
        at org.pentaho.di.core.plugins.KettleURLClassLoader.loadClass(KettleURLClassLoader.java:80)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
        at org.pentaho.di.core.plugins.PluginRegistry.loadClass(PluginRegistry.java:357)
        ... 7 more
    So a step icons can be made available in a plugin jar file. So during loading of the step icon is when the plugin class is instantiated first and that's when it complains about not finding the class. Still don't know WHY the JRE doesn't see the class since it's clearly there.

  10. #10
    Join Date
    Nov 1999
    Posts
    9,729

    Default

    Throw 'm in sub-folders and be done with it, leave the puzzle for the Java experts.

  11. #11

    Default

    I didn't know that was an option. It works.

    Is that the official workaround? It seems like a giant kludge

  12. #12
    Join Date
    Nov 1999
    Posts
    9,729

    Default

    How can it be an official work-around when it's not even a registered problem?
    The kludge is creating different jar files for every plugin you have. Why not simply create one project with all your plugins in it and have one jar file to deploy?
    Just saying.

  13. #13

    Default

    I have a hunch that it will show the same problem. I'll try it and see.

    Regardless, since we have more than one person working on this, and these things are hopefully temporary until the patches get merged back, and since these are independent, unrelated plugins, it made sense to me to put them in separate jars. Maybe this doesn't make sense in a Java context, but I'm not fluent in Java quite yet.

  14. #14

    Default

    Anyone figure this out? I have some completely unrelated plugins I'd like to put in the market place, but I don't want to build them side by side.

    Tom
    This is a signature.... everyone gets it.

    Join the Unofficial Pentaho IRC channel on freenode.
    Server: chat.freenode.net Channel: ##pentaho

    Please try and make an effort and search the wiki and forums before posting!
    Checkout the Saiku, the future of Open Source Interactive OLAP(http://analytical-labs.com)

    http://mattlittle.files.wordpress.co...-bananaman.jpg

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Privacy Policy | Legal Notices | Safe Harbor Privacy Policy

Copyright © 2005 - 2019 Hitachi Vantara Corporation. All Rights Reserved.