I also tried removing the UnsyncloadClass option. Then the KNIME splashscreen appears but it fails with lots of class loading errors, see the attached log log.txt (57.0 KB)
Is there anything I am doing wrong or is this a bug? What can I do to get the dev kit running with 4.3.2 or compile from the 4.4 dev kit for 4.3?
However, I get a dependency mismatch during the start
I can ignore this error and KNIME starts and seems to work. However, I now created a new node using the node wizard and when I start up KNIME with this node I get another java versioning error
2021-05-11 10:22:36,259 : ERROR : Worker-0: Workflow Coach loader : : RepositoryManager : : : Node ‘com.XXX.dedup.DedupMatcherNodeFactory’ from plugin ‘com.XXX.dedup’ could not be created. The corresponding plugin bundle could not be activated!
org.knime.core.node.extension.InvalidNodeFactoryExtensionException: Node ‘com.XXX.dedup.DedupMatcherNodeFactory’ from plugin ‘com.XXX.dedup’ could not be created. The corresponding plugin bundle could not be activated!
at org.knime.core.node.extension.NodeFactoryExtension.createFactory(NodeFactoryExtension.java:182)
at org.knime.workbench.repository.RepositoryFactory.createNode(RepositoryFactory.java:117)
at org.knime.workbench.repository.RepositoryManager.readNodes(RepositoryManager.java:369)
at org.knime.workbench.repository.RepositoryManager.readRepository(RepositoryManager.java:168)
at org.knime.workbench.repository.RepositoryManager.getRoot(RepositoryManager.java:574)
at org.knime.workbench.repository.RepositoryManager.getRoot(RepositoryManager.java:587)
at org.knime.workbench.workflowcoach.ui.WorkflowCoachView$3.run(WorkflowCoachView.java:268)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: org.eclipse.core.runtime.CoreException: Plug-in com.XXX.dedup was unable to load class com.XXX.dedup.DedupMatcherNodeFactory.
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.throwException(RegistryStrategyOSGI.java:212)
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:198)
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:923)
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:246)
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:63)
at org.knime.core.node.extension.NodeFactoryExtension.createFactory(NodeFactoryExtension.java:162)
… 7 more
Caused by: java.lang.UnsupportedClassVersionError: com/XXX/dedup/DedupMatcherNodeFactory has been compiled by a more recent version of the Java Runtime (class file version 59.0), this version of the Java Runtime only recognizes class file versions up to 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.defineClass(ModuleClassLoader.java:294)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.defineClass(ClasspathManager.java:717)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findClassImpl(ClasspathManager.java:640)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClassImpl(ClasspathManager.java:608)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClassImpl(ClasspathManager.java:588)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:567)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:346)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:398)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:477)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:171)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:620)
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:196)
… 11 more
I got the problem. The compiler settings were at java 15 which obviously will fail. Is this really working as intended? My expectation would be that a project that is created using the KNIME 4.3 node wizard should be configured with java 8 as compilation target.
It also was not really helpful that the dependency was shown as java 8
Thanks for letting us know about this difficulty with the configuration process. Like you discovered using the correct JRE is important for getting the AP to start.
I tried to cover this in step the configure eclipse section of the setup guide: GitHub - knime/knime-sdk-setup: KNIME Analytics Platform - SDK Setup but I should extend this section to point this out more.
I will also extend the guide to point out the correct compiler settings and enhance the node wizard as well.
The compiler target is configured with the Execution Environment parameter in the MANIFEST.MF editor. If you set that and click on Update the classpath setttings afterwards all relevant compiler settings should be set correctly.