Even though SezpozModule.configure catches and ignores the faulty component, Guice still dies:
… hudson.ExtensionFinder$GuiceFinder <init>
SEVERE: Failed to create Guice container from all the plugins
com.google.inject.internal.guava.collect.$ComputationException: java.lang.NoClassDefFoundError: org/eclipse/jgit/storage/file/FileRepository
at …
at com.google.inject.Guice.createInjector(Guice.java:73)
at hudson.ExtensionFinder$GuiceFinder.<init>(ExtensionFinder.java:279)
The motivation of this is to enable test code to inject components from Jenkins, which means we need a single Injector that can see all of those, including @TestExtension and regular @Extension. Then I realized that the current implementation is broken, as it creates two independent Injectors. This has other undesirable side effects like @TestExtension components not being able to inject @Extensions, etc.
I briefly experimented with hierarchical Injectors (where we first create Injector that loads @Extension then create another that loads @TestExtension as a child), but this was hard to get right as we have no control over which ExtensionFinder gets instantiated first --- we'd be at the mercy of SezPoz.
So the eventual approach is to allow a single GuiceFinder to recognize multiple annotations. This also works well with our using child injector for installing plugins without restart
An investigation on NECTAR-50 revealed that the dead lock prevention made in 02fbfd9ed5 and c5269550d5 are causing slow down by having too many threads go through scouting, which in turn calls into classloader (which is synchronized.) Reduce the overhead by reusing sezpoz index so that classloading overhead is minimal.
level (instead of WARNING) for any class loading problems reading the extension.
Also move up to sezpoz 1.7 and remove catch block for LinkageError in
ExtensionFinder.. sezpoz should now throw only InstantiationException.
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@30963 71c3de6d-444a-0410-be80-ed276b4c234a
This fix is a work around until SEZPOZ-11 is fixed. The original stack trace is as follows:
--------------
Unable to find a $JAVA_HOME at "/usr", continuing with system-provided Java...
Unable to find a $JAVA_HOME at "/usr", continuing with system-provided Java...
Running from: /Users/engineyard/Desktop/eyci/hudson.war
[Winstone 2010/03/17 13:58:03] - Beginning extraction from war file
hudson home directory: /Users/engineyard/.hudson
[Winstone 2010/03/17 13:58:06] - HTTP Listener started: port=8080
[Winstone 2010/03/17 13:58:06] - AJP13 Listener started: port=8009
[Winstone 2010/03/17 13:58:06] - Winstone Servlet Engine v0.9.10 running: controlPort=disabled
Mar 17, 2010 1:58:06 PM hudson.model.Hudson$4 onAttained
INFO: Started initialization
Mar 17, 2010 1:58:07 PM hudson.ClassicPluginStrategy createPluginWrapper
INFO: Plugin statusmonitor.hpi is disabled
Mar 17, 2010 1:58:07 PM hudson.model.Hudson$4 onAttained
INFO: Listed all plugins
Mar 17, 2010 1:58:07 PM hudson.plugins.im.HudsonIsBusyListener <init>
INFO: Executor busy listener created
Mar 17, 2010 1:58:07 PM hudson.model.Hudson$4 onAttained
INFO: Prepared all plugins
Mar 17, 2010 1:58:07 PM hudson.model.Hudson$4 onAttained
INFO: Started all plugins
Mar 17, 2010 1:58:22 PM hudson.plugins.ircbot.v2.IRCConnection connect
INFO: connected to IRC
Mar 17, 2010 1:58:22 PM hudson.plugins.ircbot.v2.IRCConnection getGroupChat
INFO: Trying to join channel #awsm
Mar 17, 2010 1:58:22 PM hudson.plugins.im.DummyConnection setPresence
INFO: Set presence via dummy connection: 'AVAILABLE' : 'Yawn, I'm so bored. Don't you have some work for me?'
Mar 17, 2010 1:58:22 PM hudson.util.RobustReflectionConverter doUnmarshal
WARNING: Skipping a non-existent field value
com.thoughtworks.xstream.converters.reflection.NonExistentFieldException: No such field hudson.plugins.im.GroupChatIMMessageTarget.value
at com.thoughtworks.xstream.converters.reflection.FieldDictionary.field(FieldDictionary.java:106)
at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.getFieldType(PureJavaReflectionProvider.java:152)
at hudson.util.RobustReflectionConverter.determineType(RobustReflectionConverter.java:330)
at hudson.util.RobustReflectionConverter.doUnmarshal(RobustReflectionConverter.java:219)
at hudson.util.RobustReflectionConverter.unmarshal(RobustReflectionConverter.java:174)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:82)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:63)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:76)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:60)
at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:71)
at hudson.util.RobustCollectionConverter.populateCollection(RobustCollectionConverter.java:86)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:61)
at hudson.util.RobustCollectionConverter.unmarshal(RobustCollectionConverter.java:77)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:82)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:63)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:76)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:60)
at hudson.util.RobustReflectionConverter.unmarshallField(RobustReflectionConverter.java:265)
at hudson.util.RobustReflectionConverter.doUnmarshal(RobustReflectionConverter.java:223)
at hudson.util.RobustReflectionConverter.unmarshal(RobustReflectionConverter.java:174)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:82)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:63)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:76)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:60)
at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:71)
at hudson.util.CopyOnWriteList$ConverterImpl.unmarshal(CopyOnWriteList.java:186)
at hudson.util.DescribableList$ConverterImpl.unmarshal(DescribableList.java:229)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:82)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:63)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:76)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:60)
at hudson.util.RobustReflectionConverter.unmarshallField(RobustReflectionConverter.java:265)
at hudson.util.RobustReflectionConverter.doUnmarshal(RobustReflectionConverter.java:223)
at hudson.util.RobustReflectionConverter.unmarshal(RobustReflectionConverter.java:174)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:82)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:63)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:76)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:60)
at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:137)
at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:33)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:923)
at hudson.util.XStream2.unmarshal(XStream2.java:70)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:909)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:853)
at hudson.XmlFile.read(XmlFile.java:126)
at hudson.model.Items.load(Items.java:106)
at hudson.model.Hudson$12.run(Hudson.java:2090)
at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:146)
at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:259)
at hudson.model.Hudson$3.runTask(Hudson.java:649)
at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:187)
at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:94)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:651)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:676)
at java.lang.Thread.run(Thread.java:613)
Mar 17, 2010 1:58:22 PM hudson.model.Hudson$4 onTaskFailed
SEVERE: Failed Loading job moi
java.lang.NoClassDefFoundError: hudson/plugins/im/DefaultIMMessageTargetConverter
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:676)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:317)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:375)
at hudson.plugins.jabber.im.transport.JabberPublisher.<clinit>(JabberPublisher.java:80)
at sun.misc.Unsafe.ensureClassInitialized(Native Method)
at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:25)
at sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:122)
at java.lang.reflect.Field.acquireFieldAccessor(Field.java:918)
at java.lang.reflect.Field.getFieldAccessor(Field.java:899)
at java.lang.reflect.Field.get(Field.java:358)
at net.java.sezpoz.IndexItem.instance(IndexItem.java:153)
at hudson.ExtensionFinder$Sezpoz.findExtensions(ExtensionFinder.java:101)
at hudson.ExtensionList.load(ExtensionList.java:198)
at hudson.ExtensionList.ensureLoaded(ExtensionList.java:181)
at hudson.ExtensionList.iterator(ExtensionList.java:112)
at hudson.model.Hudson.getDescriptor(Hudson.java:893)
at hudson.model.Hudson.getDescriptorOrDie(Hudson.java:907)
at hudson.triggers.Trigger.getDescriptor(Trigger.java:135)
at hudson.triggers.SCMTrigger.getDescriptor(SCMTrigger.java:94)
at hudson.triggers.SCMTrigger.getDescriptor(SCMTrigger.java:64)
at hudson.model.Descriptor.toMap(Descriptor.java:628)
at hudson.model.AbstractProject.getTriggers(AbstractProject.java:1227)
at hudson.model.Project.updateTransientActions(Project.java:209)
at hudson.model.AbstractProject.onLoad(AbstractProject.java:232)
at hudson.model.Project.onLoad(Project.java:86)
at hudson.model.Items.load(Items.java:107)
at hudson.model.Hudson$12.run(Hudson.java:2090)
at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:146)
at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:259)
at hudson.model.Hudson$3.runTask(Hudson.java:649)
at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:187)
at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:94)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:651)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:676)
at java.lang.Thread.run(Thread.java:613)
Mar 17, 2010 1:58:22 PM hudson.model.Hudson$4 onTaskFailed
SEVERE: Failed Loading job ey_sso
java.lang.NoClassDefFoundError
at sun.misc.Unsafe.ensureClassInitialized(Native Method)
at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:25)
at sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:122)
at java.lang.reflect.Field.acquireFieldAccessor(Field.java:918)
at java.lang.reflect.Field.getFieldAccessor(Field.java:899)
at java.lang.reflect.Field.get(Field.java:358)
at net.java.sezpoz.IndexItem.instance(IndexItem.java:153)
at hudson.ExtensionFinder$Sezpoz.findExtensions(ExtensionFinder.java:101)
at hudson.ExtensionList.load(ExtensionList.java:198)
at hudson.ExtensionList.ensureLoaded(ExtensionList.java:181)
at hudson.ExtensionList.iterator(ExtensionList.java:112)
at hudson.model.Hudson.getDescriptor(Hudson.java:893)
at hudson.model.Hudson.getDescriptorOrDie(Hudson.java:907)
at hudson.triggers.Trigger.getDescriptor(Trigger.java:135)
at hudson.triggers.SCMTrigger.getDescriptor(SCMTrigger.java:94)
at hudson.triggers.SCMTrigger.getDescriptor(SCMTrigger.java:64)
at hudson.model.Descriptor.toMap(Descriptor.java:628)
at hudson.model.AbstractProject.getTriggers(AbstractProject.java:1227)
at hudson.model.Project.updateTransientActions(Project.java:209)
at hudson.model.AbstractProject.onLoad(AbstractProject.java:232)
at hudson.model.Project.onLoad(Project.java:86)
at hudson.model.Items.load(Items.java:107)
at hudson.model.Hudson$12.run(Hudson.java:2090)
at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:146)
at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:259)
at hudson.model.Hudson$3.runTask(Hudson.java:649)
at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:187)
at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:94)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:651)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:676)
at java.lang.Thread.run(Thread.java:613)
Mar 17, 2010 1:58:22 PM hudson.model.Hudson$4 onTaskFailed
SEVERE: Failed Loading job ey_zendesk
java.lang.NoClassDefFoundError
at sun.misc.Unsafe.ensureClassInitialized(Native Method)
at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:25)
at sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:122)
at java.lang.reflect.Field.acquireFieldAccessor(Field.java:918)
at java.lang.reflect.Field.getFieldAccessor(Field.java:899)
at java.lang.reflect.Field.get(Field.java:358)
at net.java.sezpoz.IndexItem.instance(IndexItem.java:153)
at hudson.ExtensionFinder$Sezpoz.findExtensions(ExtensionFinder.java:101)
at hudson.ExtensionList.load(ExtensionList.java:198)
at hudson.ExtensionList.ensureLoaded(ExtensionList.java:181)
at hudson.ExtensionList.iterator(ExtensionList.java:112)
at hudson.model.Hudson.getDescriptor(Hudson.java:893)
at hudson.model.Hudson.getDescriptorOrDie(Hudson.java:907)
at hudson.triggers.Trigger.getDescriptor(Trigger.java:135)
at hudson.triggers.SCMTrigger.getDescriptor(SCMTrigger.java:94)
at hudson.triggers.SCMTrigger.getDescriptor(SCMTrigger.java:64)
at hudson.model.Descriptor.toMap(Descriptor.java:628)
at hudson.model.AbstractProject.getTriggers(AbstractProject.java:1227)
at hudson.model.Project.updateTransientActions(Project.java:209)
at hudson.model.AbstractProject.onLoad(AbstractProject.java:232)
at hudson.model.Project.onLoad(Project.java:86)
at hudson.model.Items.load(Items.java:107)
at hudson.model.Hudson$12.run(Hudson.java:2090)
at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:146)
at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:259)
at hudson.model.Hudson$3.runTask(Hudson.java:649)
at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:187)
at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:94)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:651)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:676)
at java.lang.Thread.run(Thread.java:613)
Mar 17, 2010 1:58:22 PM hudson.ExpressionFactory2$JexlExpression evaluate
WARNING: Caught exception evaluating: it.statData. Reason: java.lang.reflect.InvocationTargetException
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:592)
at org.apache.commons.jexl.util.PropertyExecutor.execute(PropertyExecutor.java:125)
at org.apache.commons.jexl.util.introspection.UberspectImpl$VelGetterImpl.invoke(UberspectImpl.java:314)
at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:185)
at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:75)
at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83)
at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57)
at org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:51)
at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:80)
at hudson.ExpressionFactory2$JexlExpression.evaluate(ExpressionFactory2.java:72)
at org.apache.commons.jelly.impl.ExpressionScript.run(ExpressionScript.java:66)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:76)
at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:42)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:268)
at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
at org.apache.commons.jelly.tags.core.JellyTag.doTag(JellyTag.java:45)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:268)
at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:118)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:268)
at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:150)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:268)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:76)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:76)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
at org.apache.commons.jelly.tags.core.JellyTag.doTag(JellyTag.java:45)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:268)
at org.kohsuke.stapler.jelly.CustomTagLibrary$1.run(CustomTagLibrary.java:132)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
at org.apache.commons.jelly.tags.core.JellyTag.doTag(JellyTag.java:45)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:268)
at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:40)
at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:30)
at org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:43)
at org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:83)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:508)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:435)
at org.kohsuke.stapler.Stapler.service(Stapler.java:123)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:45)
at winstone.ServletConfiguration.execute(ServletConfiguration.java:249)
at winstone.RequestDispatcher.forward(RequestDispatcher.java:335)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:378)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:94)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:86)
at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:47)
at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:162)
at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
at winstone.RequestDispatcher.forward(RequestDispatcher.java:333)
at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:244)
at winstone.RequestHandlerThread.run(RequestHandlerThread.java:150)
at java.lang.Thread.run(Thread.java:613)
Caused by: java.lang.NoClassDefFoundError
at sun.misc.Unsafe.ensureClassInitialized(Native Method)
at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:25)
at sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:122)
at java.lang.reflect.Field.acquireFieldAccessor(Field.java:918)
at java.lang.reflect.Field.getFieldAccessor(Field.java:899)
at java.lang.reflect.Field.get(Field.java:358)
at net.java.sezpoz.IndexItem.instance(IndexItem.java:153)
at hudson.ExtensionFinder$Sezpoz.findExtensions(ExtensionFinder.java:101)
at hudson.ExtensionList.load(ExtensionList.java:198)
at hudson.ExtensionList.ensureLoaded(ExtensionList.java:181)
at hudson.ExtensionList.iterator(ExtensionList.java:112)
at hudson.DescriptorExtensionList.load(DescriptorExtensionList.java:141)
at hudson.ExtensionList.ensureLoaded(ExtensionList.java:181)
at hudson.ExtensionList.iterator(ExtensionList.java:112)
at hudson.model.UsageStatistics.getStatData(UsageStatistics.java:154)
... 65 more
Mar 17, 2010 1:58:23 PM hudson.model.Hudson$4 onTaskFailed
SEVERE: Failed Loading job sous_chef
java.lang.NoClassDefFoundError
at sun.misc.Unsafe.ensureClassInitialized(Native Method)
at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:25)
at sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:122)
at java.lang.reflect.Field.acquireFieldAccessor(Field.java:918)
at java.lang.reflect.Field.getFieldAccessor(Field.java:899)
at java.lang.reflect.Field.get(Field.java:358)
at net.java.sezpoz.IndexItem.instance(IndexItem.java:153)
at hudson.ExtensionFinder$Sezpoz.findExtensions(ExtensionFinder.java:101)
at hudson.ExtensionList.load(ExtensionList.java:198)
at hudson.ExtensionList.ensureLoaded(ExtensionList.java:181)
at hudson.ExtensionList.iterator(ExtensionList.java:112)
at hudson.model.Hudson.getDescriptor(Hudson.java:893)
at hudson.model.Hudson.getDescriptorOrDie(Hudson.java:907)
at hudson.triggers.Trigger.getDescriptor(Trigger.java:135)
at hudson.triggers.SCMTrigger.getDescriptor(SCMTrigger.java:94)
at hudson.triggers.SCMTrigger.getDescriptor(SCMTrigger.java:64)
at hudson.model.Descriptor.toMap(Descriptor.java:628)
at hudson.model.AbstractProject.getTriggers(AbstractProject.java:1227)
at hudson.model.Project.updateTransientActions(Project.java:209)
at hudson.model.AbstractProject.onLoad(AbstractProject.java:232)
at hudson.model.Project.onLoad(Project.java:86)
at hudson.model.Items.load(Items.java:107)
at hudson.model.Hudson$12.run(Hudson.java:2090)
at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:146)
at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:259)
at hudson.model.Hudson$3.runTask(Hudson.java:649)
at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:187)
at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:94)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:651)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:676)
at java.lang.Thread.run(Thread.java:613)
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@28792 71c3de6d-444a-0410-be80-ed276b4c234a
- extensions are now stored in ExtensionList.
- discovery is extensible, but by default we use Sezpoz for annotation-based injection. This requires JDK6 for build.
- a care has been taken to preserve backward compatibility. DescriptorList and manually adding to it continues to work.
- AdministrativeMonitor is converted to use the new approach entirely, as a guinea pig of this feature.
- Descriptors for View is partially switched to this new approach, where some classes register automatically while others do manually. This tests the compatibility aspect of this feature.
A pluggable discovery is an attempt to embrace Plexus integration work, although for that to really work we need more coding.
Next stop, more tests.
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@15601 71c3de6d-444a-0410-be80-ed276b4c234a