dear all,

I have already installed rdkit and all nodes compare in my drop down list but from two days when i try to use rdkit nodes as molecule>rdkit compare

Could not load native RDKit library 

i have checed for update but no news. what can i have to do to solve the problem?


Which version of RDKit are you using, 1.0 or 1.1 (more exactly, which version of the org.rdkit.knime.types plugin)? There was a greater change yesterday that may cause problems. Which operating system are you using? Can you have a look in knime.log and post the full stack trace of the error?


I0m using  the org.rdkit.knime.feature_1.0.0.0000991 the OS as indicate in log file is Win XP sp3

!SESSION 2011-05-31 12:04:24.163 -----------------------------------------------



java.vendor=Sun Microsystems Inc.

BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_GB

Command-line arguments:  -os win32 -ws win32 -arch x86 –clean


this is the message in log

!ENTRY org.rdkit.knime.types 4 0 2011-06-28 12:04:38.762

!MESSAGE Could not load native RDKit library


java.lang.UnsatisfiedLinkError: C:\Documents and Settings\colace\Desktop\knime_2.3.4\plugins\org.rdkit.knime.bin.win32.x86_1.0.0.0000990\os\win32\x86\GraphMolWrap.dll: Can't find dependent libraries

                at java.lang.ClassLoader$NativeLibrary.load(Native Method)

                at java.lang.ClassLoader.loadLibrary0(Unknown Source)

                at java.lang.ClassLoader.loadLibrary(Unknown Source)

                at java.lang.Runtime.loadLibrary0(Unknown Source)

                at java.lang.System.loadLibrary(Unknown Source)

                at org.rdkit.knime.RDKitTypesPluginActivator.start(

                at org.eclipse.osgi.framework.internal.core.BundleContextImpl$

                at Method)

                at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(

                at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(

                at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(

                at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(

                at org.eclipse.osgi.framework.util.SecureAction.start(

                at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(

                at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(

                at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(

                at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(

                at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(

                at org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(

                at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(

                at org.eclipse.osgi.internal.loader.BundleLoader.findClass(

                at org.eclipse.osgi.internal.loader.BundleLoader.findClass(

                at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(

                at java.lang.ClassLoader.loadClass(Unknown Source)

                at org.rdkit.knime.nodes.molecule2rdkit.Molecule2RDKitConverterNodeModel.configure(

                at org.knime.core.node.NodeModel.configure(

                at org.knime.core.node.NodeModel.configureModel(

                at org.knime.core.node.Node.configure(

                at org.knime.core.node.workflow.SingleNodeContainer.nodeConfigure(

                at org.knime.core.node.workflow.SingleNodeContainer.configure(

                at org.knime.core.node.workflow.WorkflowManager.configureSingleNodeContainer(

                at org.knime.core.node.workflow.WorkflowManager.postLoad(

                at org.knime.core.node.workflow.WorkflowManager.loadContent(

                at org.knime.core.node.workflow.WorkflowManager.postLoad(

                at org.knime.core.node.workflow.WorkflowManager.loadContent(

                at org.knime.core.node.workflow.WorkflowManager.load(

                at org.knime.core.node.workflow.WorkflowManager.loadProject(


                at org.eclipse.jface.operation.ModalContext.runInCurrentThread(




                at org.eclipse.ui.internal.progress.ProgressManager$

                at org.eclipse.swt.custom.BusyIndicator.showWhile(

                at org.eclipse.ui.internal.progress.ProgressManager.busyCursorWhile(

                at org.eclipse.ui.internal.progress.ProgressManager.busyCursorWhile(

                at org.knime.workbench.editor2.WorkflowEditor.setInput(

                at org.knime.workbench.editor2.WorkflowEditor.init(

                at org.eclipse.ui.internal.EditorManager.createSite(

                at org.eclipse.ui.internal.EditorReference.createPartHelper(

                at org.eclipse.ui.internal.EditorReference.createPart(

                at org.eclipse.ui.internal.WorkbenchPartReference.getPart(

                at org.eclipse.ui.internal.EditorAreaHelper.setVisibleEditor(

                at org.eclipse.ui.internal.EditorManager.setVisibleEditor(

                at org.eclipse.ui.internal.EditorManager$5.runWithException(

                at org.eclipse.ui.internal.StartupThreading$


                at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(

                at org.eclipse.swt.widgets.Display.runAsyncMessages(

                at org.eclipse.swt.widgets.Display.readAndDispatch(

                at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(

                at org.eclipse.ui.internal.Workbench$31.runWithException(

                at org.eclipse.ui.internal.StartupThreading$


                at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(

                at org.eclipse.swt.widgets.Display.runAsyncMessages(

                at org.eclipse.swt.widgets.Display.readAndDispatch(

                at org.eclipse.ui.internal.Workbench.runUI(

                at org.eclipse.ui.internal.Workbench.access$4(

                at org.eclipse.ui.internal.Workbench$

                at org.eclipse.core.databinding.observable.Realm.runWithDefault(

                at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(

                at org.eclipse.ui.PlatformUI.createAndRunWorkbench(

                at org.knime.product.rcp.KNIMEApplication.start(


                at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(

                at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(



                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

                at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

                at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

                at java.lang.reflect.Method.invoke(Unknown Source)

                at org.eclipse.equinox.launcher.Main.invokeFramework(

                at org.eclipse.equinox.launcher.Main.basicRun(


I am also still using Windows XP and have been able to install the latest RDKit version (nightly build) into KNIME v2.3.4.

I have heard that 64bit Windows is not supported with RDKit. I dont know if this may affect any of you.



I have the same problem with Win XP 32-bit and KNIME 2.3.4.

Yesterday's RDKit update (RDKit KNIME integration caused this error to occur:

2011-06-29 11:29:53,623 DEBUG main Molecule to RDKit : Could not load native RDKit library
org.knime.core.node.InvalidSettingsException: Could not load native RDKit library
at org.rdkit.knime.RDKitTypesPluginActivator.checkErrorState(
at org.rdkit.knime.nodes.molecule2rdkit.Molecule2RDKitConverterNodeModel.configure(
at org.knime.core.node.NodeModel.configure(
at org.knime.core.node.NodeModel.configureModel(
at org.knime.core.node.Node.configure(

Any ideas? George

I am able to reproduce this on a computer different from the one I normally use to test the nodes. I will see if I can track down the problem and fix it (or at least propose a work-around).

Sorry for the inconvenience.


One thing that would be extremely helpful for tracking this problem down is if someone who is experiencing it could install the following package on their windows machine:

and see if the RDKit nodes work after that installation. Unfortunately, I cannot do this installation on the machine where I can reproduce the problems so I cannot test it myself.


Ok, I believe that I found a solution that does not require installing any additional files. It will be in tomorrow's (Friday's) nightly build.

Keeping my fingers crossed,


It turns out that the nightly builds run later than I thought. I made my changes in time to have them show up in today's build. If you update from the nightly build now, the RDKit nodes should work.

Sorry about the problems,


Dear Greg,

Semms that the problem is solved with your changes


Hi Greg,

Many thanks for this. I've got good news and bad news:

The good news is the RDKit nodes now work and I particularly like the new visualisation. Well done!

The bad news: After the updating RDKit, the MMP detector node suffers from a huge memory leak which make the node fail at some point when dealing with > 2K compounds.

This was certainly not the case before RDKit v2.0.

This has happened in the past but we managed to fix it by manually deleting the objects we created in the code (eg. mol.delete(), prods.delete(), etc.). Furthermore, as the MMP node uses code from your 1 component reaction node, I tried your node with 2K mol using this reaction SMARTS string: [*:1]!@!=!#[*:2]>>[*:1]-[*].[*:2]-[*] (effectively fragmenting all acyclic, single bonds). Looking at the system memory usage, it looks like there is a memory leak in your node too (about 500MB used) but at least your node manages to finish OK.

I'll look again at the code of the MMP node again and I'll come back to you (btw what is the difference between ROMol and RWMol???).




I don't see any leakage from the single-component reaction node. I just tried an example with your reaction applied to ~600 molecules. Though I get a lot of products (~22K), and consequently heavy memory usage. repeatedly resetting the node and running it again doesn't lead to an increase in memory use (as one would expect from a leak).

You definitely need to delete stuff in order to prevent memory growth; this seems to be an unfortunate consequence of the way the JNI wrappers work (my minimal understanding: java doesn't know how much memory the C++ code in the back is using and so it doesn't do GC when it should).


Hi Greg,

Thanks for the reply. I'll investigate further.


This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.