Add expansion node problem

Hi,
I recently encountered some problems in the process of adding extension nodes. I was running the Knime software from eclipse, and imported workbench and product projects.

  1. When I click “Install KNIME Extensions …”, a window pops up saying that my directory is read-only
  2. If I import the existing knime workflow and there are extension nodes in the file, after the installation node window pops up and installs, restarting the software will pop up the same request to install the node window, if you click install it will pop up a window where no extension is found.
    批注 2020-04-13 093307

And some error-log are as follow:
!ENTRY org.eclipse.equinox.p2.core 4 0 2020-04-13 09:22:23.286
!MESSAGE Exception during event notification
!STACK 0
java.lang.IllegalArgumentException: Location must be absolute: …
at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.checkValidLocation(AbstractRepositoryManager.java:749)
at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.contains(AbstractRepositoryManager.java:253)
at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.addRepository(AbstractRepositoryManager.java:166)
at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.notify(AbstractRepositoryManager.java:820)
at org.eclipse.equinox.internal.p2.core.ProvisioningEventBus.dispatchEvent(ProvisioningEventBus.java:108)
at org.eclipse.equinox.internal.p2.core.ProvisioningEventBus.dispatchEvent(ProvisioningEventBus.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)

!ENTRY org.eclipse.equinox.p2.core 4 0 2020-04-13 09:22:23.287
!MESSAGE Exception during event notification
!STACK 0
java.lang.IllegalArgumentException: Location must be absolute: …
at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.checkValidLocation(AbstractRepositoryManager.java:749)
at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.contains(AbstractRepositoryManager.java:253)
at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.addRepository(AbstractRepositoryManager.java:166)
at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.notify(AbstractRepositoryManager.java:820)
at org.eclipse.equinox.internal.p2.core.ProvisioningEventBus.dispatchEvent(ProvisioningEventBus.java:108)
at org.eclipse.equinox.internal.p2.core.ProvisioningEventBus.dispatchEvent(ProvisioningEventBus.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)

!ENTRY org.eclipse.equinox.p2.garbagecollector 4 2 2020-04-13 09:27:56.318
!MESSAGE Problems occurred when invoking code from plug-in: “org.eclipse.equinox.p2.garbagecollector”.
!STACK 0
org.eclipse.equinox.internal.provisional.frameworkadmin.FrameworkAdminRuntimeException: FrameworkAdmin creates this object is no more available.
at org.eclipse.equinox.internal.frameworkadmin.utils.SimpleBundlesState.checkAvailability(SimpleBundlesState.java:41)
at org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxManipulatorImpl.loadWithoutFwPersistentData(EquinoxManipulatorImpl.java:353)
at org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxManipulatorImpl.initializeRuntime(EquinoxManipulatorImpl.java:285)
at org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxManipulatorImpl.(EquinoxManipulatorImpl.java:138)
at org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxFwAdminImpl.getRunningManipulator(EquinoxFwAdminImpl.java:86)
at org.eclipse.equinox.internal.p2.touchpoint.eclipse.WhatIsRunning.getFrameworkManipulator(WhatIsRunning.java:23)
at org.eclipse.equinox.internal.p2.touchpoint.eclipse.WhatIsRunning.getBundlesBeingRun(WhatIsRunning.java:17)
at org.eclipse.equinox.internal.p2.touchpoint.eclipse.EclipseMarkSetProvider.addRunningBundles(EclipseMarkSetProvider.java:101)
at org.eclipse.equinox.internal.p2.touchpoint.eclipse.EclipseMarkSetProvider.getMarkSets(EclipseMarkSetProvider.java:46)
at org.eclipse.equinox.internal.p2.garbagecollector.GarbageCollector$ParameterizedSafeRunnable.run(GarbageCollector.java:69)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.equinox.internal.p2.garbagecollector.GarbageCollector.contributeMarkSets(GarbageCollector.java:97)
at org.eclipse.equinox.internal.p2.garbagecollector.GarbageCollector.traverseMainProfile(GarbageCollector.java:202)
at org.eclipse.equinox.internal.p2.garbagecollector.GarbageCollector.runGC(GarbageCollector.java:159)
at org.eclipse.equinox.internal.p2.garbagecollector.GarbageCollector.notify(GarbageCollector.java:148)
at org.eclipse.equinox.internal.p2.core.ProvisioningEventBus.dispatchEvent(ProvisioningEventBus.java:108)
at org.eclipse.equinox.internal.p2.core.ProvisioningEventBus.dispatchEvent(ProvisioningEventBus.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
at org.eclipse.equinox.internal.p2.core.ProvisioningEventBus.publishEvent(ProvisioningEventBus.java:85)
at org.eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:98)
at org.eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:45)
at org.eclipse.equinox.p2.operations.ProvisioningSession.performProvisioningPlan(ProvisioningSession.java:175)
at org.eclipse.equinox.p2.operations.ProfileModificationJob.runModal(ProfileModificationJob.java:79)
at org.eclipse.equinox.p2.operations.ProvisioningJob.run(ProvisioningJob.java:177)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)

!ENTRY org.eclipse.equinox.p2.garbagecollector 4 0 2020-04-13 09:27:56.319
!MESSAGE An error occurred while calling to an IMarkSetProvider.
!STACK 0
org.eclipse.equinox.internal.provisional.frameworkadmin.FrameworkAdminRuntimeException: FrameworkAdmin creates this object is no more available.
at org.eclipse.equinox.internal.frameworkadmin.utils.SimpleBundlesState.checkAvailability(SimpleBundlesState.java:41)
at org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxManipulatorImpl.loadWithoutFwPersistentData(EquinoxManipulatorImpl.java:353)
at org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxManipulatorImpl.initializeRuntime(EquinoxManipulatorImpl.java:285)
at org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxManipulatorImpl.(EquinoxManipulatorImpl.java:138)
at org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxFwAdminImpl.getRunningManipulator(EquinoxFwAdminImpl.java:86)
at org.eclipse.equinox.internal.p2.touchpoint.eclipse.WhatIsRunning.getFrameworkManipulator(WhatIsRunning.java:23)
at org.eclipse.equinox.internal.p2.touchpoint.eclipse.WhatIsRunning.getBundlesBeingRun(WhatIsRunning.java:17)
at org.eclipse.equinox.internal.p2.touchpoint.eclipse.EclipseMarkSetProvider.addRunningBundles(EclipseMarkSetProvider.java:101)
at org.eclipse.equinox.internal.p2.touchpoint.eclipse.EclipseMarkSetProvider.getMarkSets(EclipseMarkSetProvider.java:46)
at org.eclipse.equinox.internal.p2.garbagecollector.GarbageCollector$ParameterizedSafeRunnable.run(GarbageCollector.java:69)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.equinox.internal.p2.garbagecollector.GarbageCollector.contributeMarkSets(GarbageCollector.java:97)
at org.eclipse.equinox.internal.p2.garbagecollector.GarbageCollector.traverseMainProfile(GarbageCollector.java:202)
at org.eclipse.equinox.internal.p2.garbagecollector.GarbageCollector.runGC(GarbageCollector.java:159)
at org.eclipse.equinox.internal.p2.garbagecollector.GarbageCollector.notify(GarbageCollector.java:148)
at org.eclipse.equinox.internal.p2.core.ProvisioningEventBus.dispatchEvent(ProvisioningEventBus.java:108)
at org.eclipse.equinox.internal.p2.core.ProvisioningEventBus.dispatchEvent(ProvisioningEventBus.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
at org.eclipse.equinox.internal.p2.core.ProvisioningEventBus.publishEvent(ProvisioningEventBus.java:85)
at org.eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:98)
at org.eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:45)
at org.eclipse.equinox.p2.operations.ProvisioningSession.performProvisioningPlan(ProvisioningSession.java:175)
at org.eclipse.equinox.p2.operations.ProfileModificationJob.runModal(ProfileModificationJob.java:79)
at org.eclipse.equinox.p2.operations.ProvisioningJob.run(ProvisioningJob.java:177)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)

!ENTRY org.eclipse.equinox.p2.garbagecollector 4 2 2020-04-13 09:27:56.325
!MESSAGE Problems occurred when invoking code from plug-in: “org.eclipse.equinox.p2.garbagecollector”.
!STACK 0
org.eclipse.equinox.internal.provisional.frameworkadmin.FrameworkAdminRuntimeException: FrameworkAdmin creates this object is no more available.
at org.eclipse.equinox.internal.frameworkadmin.utils.SimpleBundlesState.checkAvailability(SimpleBundlesState.java:41)
at org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxManipulatorImpl.loadWithoutFwPersistentData(EquinoxManipulatorImpl.java:353)
at org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxManipulatorImpl.initializeRuntime(EquinoxManipulatorImpl.java:285)
at org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxManipulatorImpl.(EquinoxManipulatorImpl.java:138)
at org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxFwAdminImpl.getRunningManipulator(EquinoxFwAdminImpl.java:86)
at org.eclipse.equinox.internal.p2.touchpoint.eclipse.WhatIsRunning.getFrameworkManipulator(WhatIsRunning.java:23)
at org.eclipse.equinox.internal.p2.touchpoint.eclipse.WhatIsRunning.getBundlesBeingRun(WhatIsRunning.java:17)
at org.eclipse.equinox.internal.p2.touchpoint.eclipse.EclipseMarkSetProvider.addRunningBundles(EclipseMarkSetProvider.java:101)
at org.eclipse.equinox.internal.p2.touchpoint.eclipse.EclipseMarkSetProvider.getMarkSets(EclipseMarkSetProvider.java:46)
at org.eclipse.equinox.internal.p2.garbagecollector.GarbageCollector$ParameterizedSafeRunnable.run(GarbageCollector.java:69)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.equinox.internal.p2.garbagecollector.GarbageCollector.contributeMarkSets(GarbageCollector.java:97)
at org.eclipse.equinox.internal.p2.garbagecollector.GarbageCollector.traverseRegisteredProfiles(GarbageCollector.java:225)
at org.eclipse.equinox.internal.p2.garbagecollector.GarbageCollector.runGC(GarbageCollector.java:163)
at org.eclipse.equinox.internal.p2.garbagecollector.GarbageCollector.notify(GarbageCollector.java:148)
at org.eclipse.equinox.internal.p2.core.ProvisioningEventBus.dispatchEvent(ProvisioningEventBus.java:108)
at org.eclipse.equinox.internal.p2.core.ProvisioningEventBus.dispatchEvent(ProvisioningEventBus.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
at org.eclipse.equinox.internal.p2.core.ProvisioningEventBus.publishEvent(ProvisioningEventBus.java:85)
at org.eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:98)
at org.eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:45)
at org.eclipse.equinox.p2.operations.ProvisioningSession.performProvisioningPlan(ProvisioningSession.java:175)
at org.eclipse.equinox.p2.operations.ProfileModificationJob.runModal(ProfileModificationJob.java:79)
at org.eclipse.equinox.p2.operations.ProvisioningJob.run(ProvisioningJob.java:177)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)

!ENTRY org.eclipse.equinox.p2.garbagecollector 4 0 2020-04-13 09:27:56.325
!MESSAGE An error occurred while calling to an IMarkSetProvider.
!STACK 0
org.eclipse.equinox.internal.provisional.frameworkadmin.FrameworkAdminRuntimeException: FrameworkAdmin creates this object is no more available.
at org.eclipse.equinox.internal.frameworkadmin.utils.SimpleBundlesState.checkAvailability(SimpleBundlesState.java:41)
at org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxManipulatorImpl.loadWithoutFwPersistentData(EquinoxManipulatorImpl.java:353)
at org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxManipulatorImpl.initializeRuntime(EquinoxManipulatorImpl.java:285)
at org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxManipulatorImpl.(EquinoxManipulatorImpl.java:138)
at org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxFwAdminImpl.getRunningManipulator(EquinoxFwAdminImpl.java:86)
at org.eclipse.equinox.internal.p2.touchpoint.eclipse.WhatIsRunning.getFrameworkManipulator(WhatIsRunning.java:23)
at org.eclipse.equinox.internal.p2.touchpoint.eclipse.WhatIsRunning.getBundlesBeingRun(WhatIsRunning.java:17)
at org.eclipse.equinox.internal.p2.touchpoint.eclipse.EclipseMarkSetProvider.addRunningBundles(EclipseMarkSetProvider.java:101)
at org.eclipse.equinox.internal.p2.touchpoint.eclipse.EclipseMarkSetProvider.getMarkSets(EclipseMarkSetProvider.java:46)
at org.eclipse.equinox.internal.p2.garbagecollector.GarbageCollector$ParameterizedSafeRunnable.run(GarbageCollector.java:69)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.equinox.internal.p2.garbagecollector.GarbageCollector.contributeMarkSets(GarbageCollector.java:97)
at org.eclipse.equinox.internal.p2.garbagecollector.GarbageCollector.traverseRegisteredProfiles(GarbageCollector.java:225)
at org.eclipse.equinox.internal.p2.garbagecollector.GarbageCollector.runGC(GarbageCollector.java:163)
at org.eclipse.equinox.internal.p2.garbagecollector.GarbageCollector.notify(GarbageCollector.java:148)
at org.eclipse.equinox.internal.p2.core.ProvisioningEventBus.dispatchEvent(ProvisioningEventBus.java:108)
at org.eclipse.equinox.internal.p2.core.ProvisioningEventBus.dispatchEvent(ProvisioningEventBus.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
at org.eclipse.equinox.internal.p2.core.ProvisioningEventBus.publishEvent(ProvisioningEventBus.java:85)
at org.eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:98)
at org.eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:45)
at org.eclipse.equinox.p2.operations.ProvisioningSession.performProvisioningPlan(ProvisioningSession.java:175)
at org.eclipse.equinox.p2.operations.ProfileModificationJob.runModal(ProfileModificationJob.java:79)
at org.eclipse.equinox.p2.operations.ProvisioningJob.run(ProvisioningJob.java:177)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)

Hi,
Does anyone know how to deal with this problem?

I have a feeling that you can’t install nodes into a knime application that’s being run from eclipse.

I think you need to add the required plugins to your target platform and then include them in your runtime/debug config.

Not 100% sure on that though.

1 Like

HI @Carl,

@swebb is right, per default eclipse does not allow installing software in launched debug instances. However, you can configure eclipse to allow installing plugins:

best,
Gabriel

Hi,
I did configure eclipse, I think it may be that eclipse or knime did not save or identify the information of the installation extension node.

Hi,
I suddenly thought of,does any project in github include these extension nodes, only need to import from eclipse and do not need to reinstall in knime?

If you don’t need access to the source code I’d suggest adding the plugins you need to your target platform instead of checking out the code.

You can add any feature that’s available through the KNIME (or other) update sites.

You can find out which extension to install by searching the node on the KNIME hub and looking on the right hand side for ‘Extension’

image

If you do want to check out the source you could try searching for the node in nodepit:

At the bottom there’s a link for Take me to source but this doesn’t always work.

For example I depend on a variety of features but don’t need access to the code so just add them into my target platform:

image

Hope that was helpful.

Cheers

Sam

4 Likes

Hi,
I’m so excited. This method is effective. I found the connection of the plugin through nodepit and added it in the target file. After opening, the newly added nodes are in the node library. Thank you very much for your help.

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