Commit Graph
41 Commits
Author SHA1 Message Date
Jesse Glick 22d433deae So far unsuccessful attempt to make Jenkins startup more robust against bugs like JENKINS-25440.
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)
2014-11-04 17:45:52 -05:00
Jesse Glick 253943e13e [JENKINS-5756] Removing workarounds for HotSpot bug.
https://bugs.openjdk.java.net/browse/JDK-6933067 claims to be fixed as of Java 6, our baseline.
2014-09-24 09:32:50 -04:00
Jesse Glick 53d1e20f62 If an optional component cannot be loaded, print a polite one-line message, not a big scary stack trace.
(To reproduce: BuildNowTextPropertyTest from cloudbees-template warns about FolderProxyGroupContainer.)
2013-05-02 14:55:06 -04:00
Jesse Glick 4ab9c096bc Be more resilient against Guice errors.
com.google.inject.internal.cglib.reflect.$FastConstructor.newInstance can throw NCDFE, it seems.
2012-09-20 17:58:33 -04:00
Kohsuke Kawaguchi 9a178aa8cc Added a mechanism to filter extension points as they are discovered.
I couldn't quite find one place to do this, so it's spread apart
somewhat.
2012-06-15 13:42:23 -07:00
Vojtech Juranek 6788f82a2c [FIXED JENKINS-13448] Added additional checks if Guice will be able to create injector to exclude missing extension poins. 2012-04-13 22:56:21 +02:00
Kohsuke Kawaguchi f19678d083 exposing major singletons to IoC 2012-02-29 15:23:20 -08:00
Kohsuke Kawaguchi a71d037b84 Revisited the way Guice creates an injector during unit test
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
2012-02-09 12:18:05 -08:00
Kohsuke Kawaguchi 992158b67e filled in the real version 2011-11-28 17:01:22 -08:00
Kohsuke Kawaguchi a9be16e25e Cosmetic change 2011-11-15 21:18:55 -08:00
Kohsuke Kawaguchi 82ef72c00d Expose Injector to the rest of the world 2011-11-15 17:31:49 -08:00
Kohsuke Kawaguchi 09ef861c98 Step 1: make ExtensionFinder support refreshing 2011-11-15 17:31:49 -08:00
Kohsuke Kawaguchi 71cbf93a36 doc improvement 2011-10-27 06:35:21 -07:00
Kohsuke Kawaguchi ab421b59d2 [JENKINS-11279] Guice appears to throw RuntimeException sometimes. 2011-10-11 06:56:44 +09:00
Kohsuke Kawaguchi 87f89bc3ab [FIXED JENKINS-11279] more eager scouting 2011-10-11 06:56:44 +09:00
Kohsuke Kawaguchi 5d903514bd improve error recovery behaviour 2011-09-23 15:16:33 -07:00
Kohsuke Kawaguchi c1451269c3 follow up merge fixes 2011-09-21 22:00:38 -07:00
Kohsuke Kawaguchi e17760256e merged with the latest trunk 2011-09-21 21:41:57 -07:00
Kohsuke Kawaguchi 5dddebcf94 Corrected backward incompatible signature changes in 70c1065814. 2011-06-17 22:01:45 -07:00
Nigel Magnay 5679d019ec Move hudson.model.Jenkins to be jenkins.model.Jenkins - part II
Just import changes, from hudson.model.Jenkins -> jenkins.model.Jenkins,
and Javadoc comments.

Signed-off-by: Nigel Magnay <nigel.magnay@gmail.com>
2011-05-29 11:06:28 +01:00
Nigel Magnay 70c1065814 Stage 1 : Create hudson.model.Jenkins, make Hudson derive from Jenkins.
Signed-off-by: Nigel Magnay <nigel.magnay@gmail.com>
2011-05-29 11:00:58 +01:00
Kohsuke Kawaguchi 3614868694 Merge branch 'oss'
Conflicts:
	core/src/main/java/hudson/Functions.java
	core/src/main/java/hudson/model/AutoCompletionCandidates.java
	core/src/main/java/hudson/model/ViewDescriptor.java
	core/src/main/resources/lib/hudson/3rdPartyLicenses.jelly
	core/src/main/resources/lib/hudson/newFromList/form.jelly
	core/src/main/resources/lib/hudson/projectViewRow.jelly
	core/src/main/resources/lib/hudson/thirdPartyLicenses.jelly
	core/src/main/resources/lib/layout/renderOnDemand.jelly
	core/src/test/java/hudson/FilePathTest.java
	test/src/test/resources/lib/layout/RenderOnDemandTest/testBehaviour.jelly
	test/src/test/resources/scripts/BehaviorTest/testCssSelectors.jelly
	ui-samples-plugin/src/main/resources/hudson/plugins/ui_samples/JavaScriptProxy/index.jelly
2011-04-21 15:37:31 -07:00
Kohsuke Kawaguchi ec616605d8 reduced excessive logging on failure to load optional components 2011-04-21 13:53:31 -07:00
Kohsuke Kawaguchi c8d7af2d7d Fixed an AbstractMethodError in ItemGroupMixin.create when using some
older plugins.
2011-03-22 19:09:53 -07:00
Kohsuke Kawaguchi ba092e9a29 typo 2011-01-14 08:15:59 -08:00
Kohsuke Kawaguchi ed20962551 Improved the startup performance.
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.
2011-01-13 16:02:41 -08:00
Kohsuke Kawaguchi 5e3f165815 typo 2011-01-13 16:01:33 -08:00
Kohsuke Kawaguchi 95d12a81de updated to work with Guice 3.0 RC1 2010-12-11 00:48:23 -08:00
Kohsuke Kawaguchi 5c2c146d91 introducing the base abstrat class to reuse the logic in @TestExtension 2010-12-10 10:56:34 -08:00
Kohsuke Kawaguchi 60d7c2bf28 folded them back into ExtensionFinder as it was too small to be its own package 2010-12-10 10:40:02 -08:00
Kohsuke Kawaguchi 53597a5d2d introducing Guice-based injector 2010-12-10 10:23:39 -08:00
Kohsuke Kawaguchi 001507695e experimenting 2010-11-26 16:37:49 -08:00
kohsuke 11bcb9f59f Fixed a bug where non-existent optional dependencies can result in a cascading load failure.
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@36213 71c3de6d-444a-0410-be80-ed276b4c234a
2010-10-25 18:59:35 +00:00
kohsuke 24c97b9f83 [FIXED HUDSON-7380] Handle initialization problem more gracefully
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@34544 71c3de6d-444a-0410-be80-ed276b4c234a
2010-09-08 05:39:14 +00:00
kohsuke ebfcd4bc87 recording details
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@34301 71c3de6d-444a-0410-be80-ed276b4c234a
2010-09-02 00:59:30 +00:00
kohsuke c5269550d5 follow up fix for a race condition
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@34300 71c3de6d-444a-0410-be80-ed276b4c234a
2010-09-02 00:45:49 +00:00
mindless da236bad5e Support "optional=true" parameter for @Extension to logging exceptions at FINE
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
2010-05-12 19:44:08 +00:00
kohsuke e1e0237f65 work around for bug 6933067.
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@30091 71c3de6d-444a-0410-be80-ed276b4c234a
2010-04-15 21:30:47 +00:00
kohsuke 000a7c33b1 Extension points can be now sorted.
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@30071 71c3de6d-444a-0410-be80-ed276b4c234a
2010-04-15 00:24:55 +00:00
kohsuke 5cfa36f1f9 Fixed a situation where a failure in plugin start up can prevent massive number of job loss.
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
2010-03-17 21:10:21 +00:00
kohsuke d4c6a4b06c added an auto-discovery mechanism for extension points (and most notably Descriptors.)
- 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
2009-02-23 21:54:22 +00:00