Description of problem: Eclips-checkstyle cannot run because of a class-not-found exception. Version-Release number of selected component (if applicable): eclipse-checkstyle-5.1.0-3.fc15.noarch How reproducible: always Steps to Reproduce: 1. install eclipse checkstyle 2. select checkstyle -> check code Actual results: ClassNotFound exception in error log Expected results: Checkstyle run Additional info: I manually installed beanutils (dependency seems to be missing in the eclipse-checkstyle rpm), but that did _not_ fix the issue. As a side note: The checkstyle plugin installs as version 0.0.0 that seems wrong to me. Here is the complete log entry: java.lang.NoClassDefFoundError: org/apache/commons/beanutils/Converter at net.sf.eclipsecs.core.builder.CheckerFactory.createCheckerInternal(CheckerFactory.java:302) at net.sf.eclipsecs.core.builder.CheckerFactory.createChecker(CheckerFactory.java:143) at net.sf.eclipsecs.core.builder.Auditor.runAudit(Auditor.java:140) at net.sf.eclipsecs.core.builder.CheckstyleBuilder.handleBuildSelection(CheckstyleBuilder.java:286) at net.sf.eclipsecs.core.builder.CheckstyleBuilder.build(CheckstyleBuilder.java:171) at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:629) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:172) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:203) at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:255) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:258) at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:311) at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:343) at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:144) at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:242) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) Caused by: java.lang.ClassNotFoundException: org.apache.commons.beanutils.Converter at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:506) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) at java.lang.ClassLoader.loadClass(ClassLoader.java:266) ... 17 more
I get the same problem in Fedora 16.
eclipse-checkstyle seems to have a dependency on apache-commons-beanutils as I think it should, but the availiable build of eclipse-checkstyle is (much) older than the build of apache-commons-beanutils. So maybe a simple rebuild of eclipse-checkstyle would solve the problem? In general when a package is rebuilt, shouldn't all packages that depend on that package be rebuilt? Or maybe the actual problem is something else entirely? The eclipse-checkstyle-5.1.0-3.fc15.noarch package installs /usr/share/eclipse/dropins/checkstyle/eclipse/plugins/net.sf.eclipsecs.checkstyle_0.0.0/commmons-beanutils.jar as a symlink pointing to the actual apache-commons-beanutils.jar, which does contain org/apache/commons/beanutils/Converter.class. Maybe the plugin just doesn't specify its classpath correctly?
(In reply to comment #2) > eclipse-checkstyle seems to have a dependency on apache-commons-beanutils as I > think it should, but the availiable build of eclipse-checkstyle is (much) older > than the build of apache-commons-beanutils. So maybe a simple rebuild of > eclipse-checkstyle would solve the problem? At the very least we would know if the API it expects is still present :) Can you try a local build? Since you're an Eclipse user, I'll point you to the documentation for doing so from within Eclipse: https://fedoraproject.org/wiki/Fedora_Packager_For_Eclipse_User_Guide > In general when a package is rebuilt, shouldn't all packages that depend on > that package be rebuilt? While this is an interesting idea, this currently does not happen in the build system (koji). > The eclipse-checkstyle-5.1.0-3.fc15.noarch package installs > /usr/share/eclipse/dropins/checkstyle/eclipse/plugins/net.sf.eclipsecs.checkstyle_0.0.0/commmons-beanutils.jar > as a symlink pointing to the actual apache-commons-beanutils.jar, which does > contain org/apache/commons/beanutils/Converter.class. Maybe the plugin just > doesn't specify its classpath correctly? It's common for Eclipse plugins to "find" their dependencies not by using the traditional classpath method but by running inside an OSGi runtime like Equinox, the Eclipse runtime. All plugins (aka bundles) export the packages they want to expose and other bundles consume those through Import-Package (or Require-Bundle if they want a specific bundle name/version) statements in their MANIFEST.MF. In this case, it looks like the net.sf.eclipsecs.checkstyle plugin is using the other way of finding dependencies: by "bundling" them and listing them on its classpath directly. Maybe it's looking for "jakarta-commons-beautils.jar" instead of apache-commons-beanutils.jar? A local build is probably the easiest way to determine if there's been an API or filename change that's causing the problem. Thanks for your help here, Rasmus!
Having same problem on Fedora 16, and I actually figured out how to fix it (locally). There are several problems, everything in directory /usr/share/eclipse/dropins/checkstyle/eclipse/plugins/net.sf.eclipsecs.checkstyle_0.0.0 1. commmons-beanutils.jar (notice three "m") - added same symlink named "commons-beanutils.jar" then fixed other missing classes: 2. added "commons-logging.jar,antlr.jar" to Bundle-ClassPath in MANIFEST.MF and created respective symlinks Restarted eclipse with -clean and it works now.
This message is a notice that Fedora 15 is now at end of life. Fedora has stopped maintaining and issuing updates for Fedora 15. It is Fedora's policy to close all bug reports from releases that are no longer maintained. At this time, all open bugs with a Fedora 'version' of '15' have been closed as WONTFIX. (Please note: Our normal process is to give advanced warning of this occurring, but we forgot to do that. A thousand apologies.) Package Maintainer: If you wish for this bug to remain open because you plan to fix it in a currently maintained version, feel free to reopen this bug and simply change the 'version' to a later Fedora version. Bug Reporter: Thank you for reporting this issue and we are sorry that we were unable to fix it before Fedora 15 reached end of life. If you would still like to see this bug fixed and are able to reproduce it against a later version of Fedora, you are encouraged to click on "Clone This Bug" (top right of this page) and open it against that version of Fedora. Although we aim to fix as many bugs as possible during every release's lifetime, sometimes those efforts are overtaken by events. Often a more recent Fedora release includes newer upstream software that fixes bugs or makes them obsolete. The process we are following is described here: http://fedoraproject.org/wiki/BugZappers/HouseKeeping