-
Bug
-
Resolution: Fixed
-
Major
-
None
-
Debian
-
Powered by SuggestiMate
After the update to 1.339 Jabber options seem to dissapear from configure forms, hudson form and individual project ones as well.
The plugin is still running using previous config, but the option fields do not show up in the forms. Thus new projects have no configuration in them.
[JENKINS-5233] Jabber plugin options not showing up in configure
Just noted that next time i restarted Hudson, fields once again went missing.
Just to be clear:
You updated to Hudson 1.339 (BTW: from which previous version?) and you did NOT update the jabber and instant-messaging plugin
and after that the config disappeared?
can't confirm exactly where the config vanished, since I only noticed at a later point. But it was there the day before i updated for sure.
But i did upgrade Hudson first then installed whatever plugin updates were available.
The upgrade was from 1.337.
The config file looks absolutely fine to me.
Is there anything interesting in the log file.
If not, could you try to increase the log level and look again?
Upgraded to 1.341 and restarted, below is the log but there is nothing interesting in it related to this bug, i think.
Log seems to be at highest level.
[Winstone 2010/01/18 19:34:24] - HTTP Listener started: port=8080
[Winstone 2010/01/18 19:34:24] - AJP13 Listener started: port=8009
[Winstone 2010/01/18 19:34:24] - Winstone Servlet Engine v0.9.10 running: controlPort=disabled
18 Jan 2010 7:34:24 PM hudson.model.Hudson$4 onAttained
INFO: Started initialization
18 Jan 2010 7:34:32 PM hudson.model.Hudson$4 onAttained
INFO: Listed all plugins
18 Jan 2010 7:34:42 PM hudson.plugins.im.HudsonIsBusyListener <init>
INFO: Executor busy listener created
18 Jan 2010 7:34:42 PM hudson.model.Hudson$4 onAttained
INFO: Prepared all plugins
18 Jan 2010 7:34:42 PM hudson.model.Hudson$4 onAttained
INFO: Started all plugins
18 Jan 2010 7:34:52 PM org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.web.context.support.StaticWebApplicationContext@3cdfd643: display name [Root WebApplicationContext]; startup date [Mon Jan 18 19:34:52 SAST 2010]; root of context hierarchy
18 Jan 2010 7:34:52 PM org.springframework.context.support.AbstractApplicationContext obtainFreshBeanFactory
INFO: Bean factory for application context [org.springframework.web.context.support.StaticWebApplicationContext@3cdfd643]: org.springframework.beans.factory.support.DefaultListableBeanFactory@2a85f3d6
18 Jan 2010 7:34:52 PM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@2a85f3d6: defining beans [daoAuthenticationProvider,authenticationManager,userDetailsService]; root of factory hierarchy
18 Jan 2010 7:34:56 PM hudson.plugins.dbcharts.DbChartPublisher$DescriptorImpl <init>
INFO: DescriptorImpl constructed
java.io.FileNotFoundException: /usr/lib/jvm/java-6-openjdk/jre/lib/security/cacerts (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:137)
at java.io.FileInputStream.<init>(FileInputStream.java:96)
at org.jivesoftware.smack.ServerTrustManager.<init>(ServerTrustManager.java:54)
at org.jivesoftware.smack.XMPPConnection.proceedTLSReceived(XMPPConnection.java:1109)
at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:327)
at org.jivesoftware.smack.PacketReader.access$000(PacketReader.java:43)
at org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:63)
18 Jan 2010 7:35:03 PM hudson.plugins.jabber.im.transport.JabberIMConnection connect
INFO: Connected to XMPP on [REMOVED]:5222
java.io.FileNotFoundException: /usr/lib/jvm/java-6-openjdk/jre/lib/security/cacerts (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:137)
at java.io.FileInputStream.<init>(FileInputStream.java:96)
at org.jivesoftware.smack.ServerTrustManager.<init>(ServerTrustManager.java:54)
at org.jivesoftware.smack.XMPPConnection.proceedTLSReceived(XMPPConnection.java:1109)
at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:327)
at org.jivesoftware.smack.PacketReader.access$000(PacketReader.java:43)
at org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:63)
18 Jan 2010 7:35:07 PM hudson.plugins.jabber.im.transport.JabberIMConnection connect
INFO: Connected to XMPP on [REMOVED]:5222
18 Jan 2010 7:35:11 PM hudson.model.Hudson$4 onAttained
INFO: Loaded all jobs
18 Jan 2010 7:35:13 PM hudson.model.Hudson$4 onAttained
INFO: Completed initialization
18 Jan 2010 7:35:13 PM org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.web.context.support.StaticWebApplicationContext@39df3255: display name [Root WebApplicationContext]; startup date [Mon Jan 18 19:35:13 SAST 2010]; root of context hierarchy
18 Jan 2010 7:35:13 PM org.springframework.context.support.AbstractApplicationContext obtainFreshBeanFactory
INFO: Bean factory for application context [org.springframework.web.context.support.StaticWebApplicationContext@39df3255]: org.springframework.beans.factory.support.DefaultListableBeanFactory@6064af0f
18 Jan 2010 7:35:13 PM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@6064af0f: defining beans [filter,legacy]; root of factory hierarchy
18 Jan 2010 7:35:14 PM hudson.TcpSlaveAgentListener <init>
INFO: JNLP slave agent listener started on TCP port 36443
Are you sure that you are running at the highest log level?
I can only see INFO messages and I would expect FINEST or DEBUG messages - depending on the logging framework in use.
I have had this happen to me continually as well. I still receive the expected jabber messages, and the bot appears in our group chat, but no configuration screens are displayed on either the "Manage Hudson" interface nor the job configuration forms. I've observed that if I completely remove the jabber plugin (manually removing relevant files from ~/.hudson) and restart, I'll see the configuration elements, only to lose them with the next restart.
Are you looking for log messages that occur upon Hudson start, or just when I access the forms in question? Also, do you need all Loggers included, or just the one for you package?
hopfrog238: I guess if there's anything logged, it will happen when the form is accessed.
I need output from all loggers as I cannot localize the problem, currently.
rdohms: I found this one http://wiki.jenkins-ci.org/display/JENKINS/Logging
Cannot give much help on it, though.
The packages in question for the jabber plugin are hudson.plugins.im and hudson.plugins.jabber
The core packages of Hudson start AFAIK all also with hudson - not sure if you can narrow it down further.
This is with system log set to finest, from the time I configured the logger to when the "Configure System" page was rendered.
I've uploaded the logging. I have also log messages from the jabber and im plugins from when hudson starts, though appear just to be normal startup messages:
Jan 24, 2010 7:20:12 PM hudson.plugins.jabber.im.transport.JabberIMConnection connect
INFO: Joined groupchat devs@conference.jabber.XXXX.com
Jan 24, 2010 7:20:12 PM hudson.plugins.jabber.im.transport.JabberIMConnection connect
INFO: Connected to XMPP on jabber.xXXX.com:5222
As of hudson 1.345, the bot doesn't even log on, and there's no evidence that the plugin was successful starting up.
I did find this trace in the logs which seems relevant:
Feb 9, 2010 4:08:44 PM hudson.util.RobustCollectionConverter populateCollection
WARNING: Failed to resolve class
com.thoughtworks.xstream.mapper.CannotResolveClassException: hudson.plugins.cigame.UserScoreProperty : hudson.plugins.cigame.UserScoreProperty
at com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:68)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.XStream11XmlFriendlyMapper.realClass(XStream11XmlFriendlyMapper.java:34)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.DynamicProxyMapper.realClass(DynamicProxyMapper.java:71)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.PackageAliasingMapper.realClass(PackageAliasingMapper.java:88)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.ClassAliasingMapper.realClass(ClassAliasingMapper.java:86)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.ArrayMapper.realClass(ArrayMapper.java:96)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.CachingMapper.realClass(CachingMapper.java:56)
at com.thoughtworks.xstream.core.util.HierarchicalStreams.readClassType(HierarchicalStreams.java:29)
at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:70)
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.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 hudson.XmlFile.unmarshal(XmlFile.java:148)
at hudson.model.User.load(User.java:128)
at hudson.model.User.<init>(User.java:112)
at hudson.model.User.get(User.java:278)
at hudson.security.HudsonPrivateSecurityRealm$HudsonUserDetailsService.loadUserByUsername(HudsonPrivateSecurityRealm.java:458)
at org.acegisecurity.providers.dao.DaoAuthenticationProvider.retrieveUser(DaoAuthenticationProvider.java:127)
at org.acegisecurity.providers.dao.AbstractUserDetailsAuthenticationProvider.authenticate(AbstractUserDetailsAuthenticationProvider.java:119)
at org.acegisecurity.providers.ProviderManager.doAuthentication(ProviderManager.java:195)
at org.acegisecurity.AbstractAuthenticationManager.authenticate(AbstractAuthenticationManager.java:45)
at hudson.plugins.im.IMConnectionProvider.setDescriptor(IMConnectionProvider.java:85)
at hudson.plugins.jabber.im.transport.JabberIMConnectionProvider.setDesc(JabberIMConnectionProvider.java:23)
at hudson.plugins.jabber.im.transport.JabberPublisherDescriptor.<init>(JabberPublisherDescriptor.java:90)
at hudson.plugins.jabber.im.transport.JabberPublisher.<clinit>(JabberPublisher.java:78)
at sun.reflect.GeneratedSerializationConstructorAccessor246.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.thoughtworks.xstream.converters.reflection.Sun14ReflectionProvider.newInstance(Sun14ReflectionProvider.java:76)
at hudson.util.RobustReflectionConverter.instantiateNewInstance(RobustReflectionConverter.java:306)
at hudson.util.RobustReflectionConverter.unmarshal(RobustReflectionConverter.java:173)
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:2110)
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)
Seems like you have the continuous integration game plugin installed and it is failing to load after the update.
Did you change the ci-game plugin or any of its dependencies (FindBugs, Warnings, ...)
I did have ci-game installed, but had uninstalled it awhile ago.
I have removed references to old plugins in hudson's various config XML files, and now no longer have such messages present in the logs. However, the jabber configuration remains absent from the "Manage Hudson" page and each job's configuration page.
I think the stacktraces I pasted were just a red herring. Also, the bot now joins my chatrooms consistently. My early report of this happening inconsistently had to do with internal network problems we were having. The logs continue to report nothing except success connecting to our jabber server.
There seem to be some references (user properties) to the ci-game left, as you can see here:
"com.thoughtworks.xstream.mapper.CannotResolveClassException: hudson.plugins.cigame.UserScoreProperty : hudson.plugins.cigame.UserScoreProperty
at com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:68)"
Maybe that's the underlying problem, why the config is not shown. I'll check again, why this is not logged in that case.
"There seem to be some references (user properties) to the ci-game left, as you can see here:"
Thinking the same, I removed any such references both from user config.xml files and hudson job config files. I now no longer have such startup warnings. I do see problems upon startup with the "Shelve project" plugin, but those only started happening with hudson's last release.
Unaffected.
I see no configure form at either the server-level ("manage hudson") nor job-level (when creating jobs or changing a job configuration). Those jobs whose configuration included jabber functionality prior to the inputs' disappearance still have functionality (i.e. the bot still announces their failures). Nothing in the logs indicate something is amiss, I just don't see any inputs like "Jabber server URL" where I know they should appear.
Sorry, but I currently cannot imagine how to fix this. Have you really already tried the workaround described in JENKINS-5128 and the configuration vanished again?
I've heard from other users where this workaround fixed it permanently.
I have the same problem with 1.358
When I open the config page of any task, jabber options are missing.
In browser's errors console (Firefox) I see a lot of errors. It seems these errors are related to some css-problems or javascript-problems.
kutzi, does your browser's console contain some errors?
I only see some warnings in the error console and none of it seems to be critical.
@cvoronin: what are these errors in the Firefox console? Do they seem to be related to this issue?
If so, could you attach them to this issue?
I'm not 100% sure yet, but I believe the completion of JENKINS-4346 has solved this issue.
I always got the sense that the disappearing configuration screens had something to do with the connect-at-startup. I'm not familiar with Hudson's plugin architecture, but perhaps the jabber plugin's long initialization somehow made it miss the opportunity to make Hudson aware of its configuration forms?
I do not believe the JavaScript errors have to do with this error (I have not seen these myself). Further your observation in a comment upstream:
"I've heard from other users where this workaround fixed it permanently."
I do not believe is true – the fix would only last until Hudson's next startup.
I'll observe the behavior over the next few days and report back.
UPDATE Alas, I was wrong. Looks like I'll be having to remove the config file with each restart again.
What other plugins do you have installed? Maybe this a interplay with other plugins.
Also: did you have a look at the HTML source of the config page? Anything suspicious in it?
Maybe you could attach it here, too?
I am also getting this error.
From my perspective, it is definitely nothing to do with plugins as I disabled all of them. I also commented all of the jelly code in global.jelly to see if it is something to do with the view and the section header still doesn't even show up. Digging deeper into it, I narrowed it down to around the super.load() area called in JabberPublisherDescriptor.java. It's either when XStream is trying to unmarshall the XML file or when this command is called: JabberIMConnectionProvider.setDesc(this); The workaround works for me though (i.e. setting enabled = false in the config file) but it is not a solution as we want to push hudson to a prod environment
It's possible that an exception is being thrown somewhere and not being caught/logged so it makes it much more difficult to debug.
The funny thing is, I cannot replicate this issue on my local machine which is using glassfish v3 + java 6 on Ubuntu. However, our staging and prod environment is using glassfish v2.1 EE + java 6 on solaris 10 and it is occurring there so I don't know if this is a platform specific problem.
UPDATE: Nothing to do with XML unmarshalling in Xstream but definitely something within the call to JabberIMConnectionProvider.setDesc(this); I forced enabled = false before the call to "isEnabled()" in the JabberPublisherDescriptor constructor so it would instead call JabberIMConnectionProvider.setDesc(null) and the section reappears correctly. Of course when this is done, we would have to wait until the next retry attempt for the BOT to come online
UPDATE 2: Seems like something to do with the Authenticator. Commenting line 100 in IMConnectionProvider.java will fix the problem but then will not allow users to send certain commands to the bot:
//this.authentication = Hudson.getInstance().getSecurityRealm().getSecurityComponents().manager.authenticate(tmp);
UPDATE 3: Looks like the call to Hudson.getInstance().getSecurityRealm().getSecurityComponents().manager.authenticate(tmp); causes this issue for me (even when I don't assign it to the bean property). Since this goes into Acegisecurity, I will not dive any deeper since I have a decent workaround. If you secured hudson and are having this Jabber section disappearing issue, DO NOT enter anything in "Hudson Username" and "Hudson Password". Alternatively, you can delete the lines that contain <hudsonCiLogin> and <hudsonCiPassword> in hudson.plugins.jabber.im.transport.JabberPublisherDescriptor.xml. )Note that it is not good enough to clear the contents in the above two tags, you have to delete it since the plugin checks for null, not empty string)
Anyways, by not entering anything, it will not call the above statement to authenticate. I'm not sure what commands are missing for a non-authenticated user but the commands available to me are sufficient (i.e. running adhoc jobs and receiving notification for failed jobs are available). Again, this doesn't happen in all environments so there has to be some issue with the platform itself.
Could someone please try the attached plugin snapshots to confirm that they fix the problem?
Code changed in hudson
User: : kutzi
Path:
trunk/hudson/plugins/instant-messaging/src/main/java/hudson/plugins/im/AuthenticationHolder.java
trunk/hudson/plugins/instant-messaging/src/main/java/hudson/plugins/im/IMConnectionProvider.java
trunk/hudson/plugins/instant-messaging/src/main/java/hudson/plugins/im/bot/Bot.java
trunk/hudson/plugins/ircbot/src/main/java/hudson/plugins/ircbot/v2/IRCConnection.java
trunk/hudson/plugins/ircbot/src/main/java/hudson/plugins/ircbot/v2/IRCConnectionProvider.java
trunk/hudson/plugins/jabber/src/main/java/hudson/plugins/jabber/im/transport/JabberIMConnection.java
trunk/hudson/plugins/jabber/src/main/java/hudson/plugins/jabber/im/transport/JabberIMConnectionProvider.java
http://jenkins-ci.org/commit/33296
Log:
JENKINS-5233 JENKINS-5978 Jabber/ircbot section wasn't showing up in global configuration page
jabber plugin has been working reliably since this change.
I'm very pleased this issue is now fixed. Thank you!
Seems to be the analogue issue to http://issues.jenkins-ci.org/browse/JENKINS-5128
Could you please do 2 things:
JENKINS-5128(apply it to hudson.plugins.jabber.im.transport.JabberPublisher.xml of course)