문제

I am writing an Eclipse plugin using Eclipse RCP (Kepler). Everything was working fine until last night all the sudden I started getting null pointer exceptions when trying to test my plugin. Here is a snippit of the stacktrace:

!ENTRY org.eclipse.ui.workbench 4 2 2013-08-24 08:36:17.616
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.ui.workbench".
!STACK 0
java.lang.NullPointerException
at org.eclipse.equinox.internal.p2.ui.sdk.scheduler.migration.MigrationSupport.getLastMigration(MigrationSupport.java:229)
at org.eclipse.equinox.internal.p2.ui.sdk.scheduler.migration.MigrationSupport.baseChangedSinceLastPresentationOfWizard(MigrationSupport.java:190)
at org.eclipse.equinox.internal.p2.ui.sdk.scheduler.migration.MigrationSupport.performMigration(MigrationSupport.java:69)
at org.eclipse.equinox.internal.p2.ui.sdk.scheduler.AutomaticUpdateScheduler.earlyStartup(AutomaticUpdateScheduler.java:89)
at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)
at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:66)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.ui.internal.Workbench$55.run(Workbench.java:2552)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
java.lang.NullPointerException
at org.eclipse.core.internal.runtime.InternalPlatform.getLog(InternalPlatform.java:354)
at org.eclipse.core.runtime.Plugin.getLog(Plugin.java:291)
at org.eclipse.ui.internal.WorkbenchPlugin.log(WorkbenchPlugin.java:830)
at org.eclipse.ui.statushandlers.StatusManager.logError(StatusManager.java:285)
at org.eclipse.ui.statushandlers.StatusManager.handle(StatusManager.java:200)
at org.eclipse.ui.statushandlers.StatusManager.handle(StatusManager.java:231)
at org.eclipse.ui.statushandlers.StatusManager$StatusManagerLogListener.logging(StatusManager.java:305)
at org.eclipse.core.internal.runtime.RuntimeLog.logToListeners(RuntimeLog.java:160)
at org.eclipse.core.internal.runtime.PlatformLogWriter.logged(PlatformLogWriter.java:100)
at org.eclipse.equinox.log.internal.ExtendedLogReaderServiceFactory.safeLogged(ExtendedLogReaderServiceFactory.java:86)
at org.eclipse.equinox.log.internal.ExtendedLogReaderServiceFactory.logPrivileged(ExtendedLogReaderServiceFactory.java:205)
at org.eclipse.equinox.log.internal.ExtendedLogReaderServiceFactory.log(ExtendedLogReaderServiceFactory.java:178)
at org.eclipse.equinox.log.internal.ExtendedLogServiceFactory.log(ExtendedLogServiceFactory.java:65)
at org.eclipse.equinox.log.internal.ExtendedLogServiceImpl.log(ExtendedLogServiceImpl.java:87)
at org.eclipse.equinox.log.internal.LoggerImpl.log(LoggerImpl.java:54)
at org.eclipse.core.internal.runtime.PlatformLogWriter.logging(PlatformLogWriter.java:43)
at org.eclipse.core.internal.runtime.RuntimeLog.log(RuntimeLog.java:96)
at org.eclipse.core.runtime.SafeRunner.handleException(SafeRunner.java:71)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:44)
at org.eclipse.ui.internal.Workbench$55.run(Workbench.java:2552)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)

To try and figure out what might be going on I went to the launch configuration for my plugin and clicked "Validate Plug-ins" and get the following error:

org.apache.xmlrpc
    Missing Constraint: Import-package: javax.xml.bind; version="0.0.0"

missing constraint

Could this be the reason why launching my plugin is failing? If so, how to I fix it?

Thank you

도움이 되었습니까?

해결책

You can right click on your project, go to Run as -> Run configurations and to Plug-ins tab. Here click on the Add required plug-ins button and this should solve your validation problem automatically.

다른 팁

I had to remove following plugins in my run configuration "Eclipse Application" to get rid of the xmlrpc warning:

org.apache.xmlrpc
org.eclipse.mylyn.bugzilla.core
org.eclipse.mylyn.bugzilla.ui
org.eclipse.mylyn.commons.xmlrpc

The xmlrpc warning already occures with

  • Fresh download of Eclipse RCP, Oxygen
  • New plugin created with the "Hello World, Command" template
  • Windows7

Since Oxygen the xmlrpc issue does not occur in the console but as an extra popup window, which I find even more annoying and confusing. The console shows following additional output:

 SLF4J: Class path contains multiple SLF4J bindings.
    SLF4J: Found binding in [bundleresource://555.fwk1347294617:1/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: Found binding in [bundleresource://555.fwk1347294617:2/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
    SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
    08:49:41.650 [Worker-1] INFO  c.g.t.t.d.PublishedGradleVersions - Gradle version information cache is up-to-date. Trying to read.
    !SESSION 2017-09-04 08:49:32.846 -----------------------------------------------
    eclipse.buildId=4.7.0.I20170612-0950
    java.version=1.8.0_144
    java.vendor=Oracle Corporation
    BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=de_DE
    Framework arguments:  -product org.eclipse.platform.ide
    Command-line arguments:  -product org.eclipse.platform.ide -data D:\eclipse\workspace/../runtime-EclipseApplication -dev file:D:/eclipse/workspace/.metadata/.plugins/org.eclipse.pde.core/Eclipse Application/dev.properties -os win32 -ws win32 -arch x86_64 -consoleLog

    !ENTRY org.eclipse.egit.ui 2 0 2017-09-04 08:49:41.847
    !MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git
    user global configuration and to define the default location to store repositories: 'C:\Users\eis'. If this is
    not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and
    EGit might behave differently since they see different configuration options.
    This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. 

Could this be the reason why launching my plugin is failing?

I guess not. My plugin does not seem to be influenced by those warnings.

  • The git warning can be disabled in the Eclipse Team preferences, as the warning itself suggests.

  • The slf4j warning can be resolved by removing the plugin ch.qos.logback.slf4j, also see multiple slf4j bindings in Eclipse RCP Plugin

If you manually change the plugin selection, please be careful and use the Validate Plug-ins feature to make sure you don't create other dependency issues.

If you have additional plugins installed, you might see even more warnings, e.g. from checkstyle:

!ENTRY org.eclipse.ui 2 0 2017-09-04 10:09:32.926
!MESSAGE Warnings while parsing the commands from the 'org.eclipse.ui.commands' and 'org.eclipse.ui.actionDefinitions' extension points.
!SUBENTRY 1 org.eclipse.ui 2 0 2017-09-04 10:09:32.926
!MESSAGE Commands should really have a category: plug-in='net.sf.eclipsecs.ui', id='CheckstylePlugin.PurgeCaches', categoryId='net.sf.eclipsecs'

!ENTRY org.eclipse.ui 2 0 2017-09-04 10:09:33.622
!MESSAGE Warnings while parsing the commands from the 'org.eclipse.ui.commands' and 'org.eclipse.ui.actionDefinitions' extension points.
!SUBENTRY 1 org.eclipse.ui 2 0 2017-09-04 10:09:33.622
!MESSAGE Commands should really have a category: plug-in='net.sf.eclipsecs.ui', id='CheckstylePlugin.PurgeCaches', categoryId='net.sf.eclipsecs'

=>It's kind of a mess. Therefore it might be a good idea to make a copy of the "default" warnings that can be ignored. Then it will be easier to see if a warning is related to your own plugin/recent changes.

Edit

I filed a bug for the checkstyle warnings and thanks to Lars Koedderitzsch they will be resolved with version 8.5.0: https://sourceforge.net/p/eclipse-cs/bugs/428/

After trying different stuff: I did:

help>Install new software

and added this repository: http://download.eclipse.org/tools/orbit/downloads/drops/R20190226160451/repository taken from orbit: https://download.eclipse.org/tools/orbit/downloads/drops/R20190226160451/

select the ones related with .javax, xml stream

It worked for me. Eclipse Modeling Tools Version: 2019-03 (4.11.0) win 10

If you have EclipseLink 2.5.2 installed then it is a known bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=456174

To fix, update to the latest version using this update site: http://download.eclipse.org/rt/eclipselink/updates/ Choose a newer version than 2.5.2

NOTE: I had to uncheck the "Hide installed version" checkbox to install after adding the update site as it seemed to think it was installed though it showed the software as NOT being installed when I unchecked the box. Once you have installed the newer version you restart Eclipse and then: 1. Select menu: Run -> Run Configurations 2. Click the button "Add Required Bundles"

It should all work fine after that

If you are trying an RCP E4 application with features, try add org.eclipse.e4.rcp to your dependencies in the product -> dependencies pane. And do "add required". That solved my problem

If you simply want to ignore these errors, you can go to Run > Run Configurations > Plug-ins, and uncheck "Validate Plugin-ins automatically prior to launching" at the bottom.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top