Bug 429319 - IRC Plugin throws ArrayIndexOutOfBoundsException upon submit
Summary: IRC Plugin throws ArrayIndexOutOfBoundsException upon submit
Status: NEW
Alias: None
Product: Hudson
Classification: Technology
Component: Plugins (show other bugs)
Version: 3.1.0   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Winston Prakash CLA
QA Contact: Geoff Waymark CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-02-28 10:17 EST by Carlton Brown CLA
Modified: 2014-02-28 10:17 EST (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Carlton Brown CLA 2014-02-28 10:17:43 EST
With Hudson 3.1.2 and IRC plugin 2.19-h-1,
When configuring the list of IRC channels for Hudson to join upon startup,
if the list contains 2 or more channels,
and the channels have different settings for 'Notification Only',
then upon clicking 'submit' you will get a 500 error with the following stacktrace:


javax.servlet.ServletException: java.lang.ArrayIndexOutOfBoundsException: 1
	org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:607)
	org.kohsuke.stapler.Stapler.invoke(Stapler.java:650)
	org.kohsuke.stapler.Stapler.invoke(Stapler.java:481)
	org.kohsuke.stapler.Stapler.service(Stapler.java:152)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
	hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:86)
	org.hudsonci.servlets.internal.ServletRegistrationFilterAdapter.doFilter(ServletRegistrationFilterAdapter.java:162)
	org.hudsonci.servlets.internal.ServletRegistrationFilterAdapter.doFilter(ServletRegistrationFilterAdapter.java:134)
	hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:89)
	org.hudsonci.servlets.internal.ServletRegistrationFilterAdapter.doFilter(ServletRegistrationFilterAdapter.java:162)
	org.hudsonci.servlets.internal.ServletRegistrationFilterAdapter.doFilter(ServletRegistrationFilterAdapter.java:134)
	hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:89)
	hudson.plugins.audit_trail.AuditTrailFilter.doFilter(AuditTrailFilter.java:66)
	hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:89)
	hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:78)
	hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:81)
	hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:45)
	hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
	org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101)
	org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
	hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
	org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105)
	org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
	hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
	org.springframework.security.ui.rememberme.RememberMeProcessingFilter.doFilterHttp(RememberMeProcessingFilter.java:116)
	org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
	hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
	org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:278)
	org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
	hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
	org.springframework.security.ui.basicauth.BasicProcessingFilter.doFilterHttp(BasicProcessingFilter.java:174)
	org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
	hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
	org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235)
	org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
	hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
	hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:73)
	hudson.security.HudsonFilter.doFilter(HudsonFilter.java:157)
	hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:70)
root cause

java.lang.ArrayIndexOutOfBoundsException: 1
	hudson.plugins.ircbot.IrcPublisher$DescriptorImpl.configure(IrcPublisher.java:259)
	hudson.model.Hudson.configureDescriptor(Hudson.java:2747)
	hudson.model.Hudson.doConfigSubmit(Hudson.java:2702)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	java.lang.reflect.Method.invoke(Method.java:606)
	org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:274)
	org.kohsuke.stapler.Function.bindAndInvoke(Function.java:141)
	org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:80)
	org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:95)
	org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:45)
	org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:565)
	org.kohsuke.stapler.Stapler.invoke(Stapler.java:650)
	org.kohsuke.stapler.Stapler.invoke(Stapler.java:481)
	org.kohsuke.stapler.Stapler.service(Stapler.java:152)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
	hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:86)
	org.hudsonci.servlets.internal.ServletRegistrationFilterAdapter.doFilter(ServletRegistrationFilterAdapter.java:162)
	org.hudsonci.servlets.internal.ServletRegistrationFilterAdapter.doFilter(ServletRegistrationFilterAdapter.java:134)
	hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:89)
	org.hudsonci.servlets.internal.ServletRegistrationFilterAdapter.doFilter(ServletRegistrationFilterAdapter.java:162)
	org.hudsonci.servlets.internal.ServletRegistrationFilterAdapter.doFilter(ServletRegistrationFilterAdapter.java:134)
	hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:89)
	hudson.plugins.audit_trail.AuditTrailFilter.doFilter(AuditTrailFilter.java:66)
	hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:89)
	hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:78)
	hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:81)
	hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:45)
	hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
	org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101)
	org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
	hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
	org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105)
	org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
	hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
	org.springframework.security.ui.rememberme.RememberMeProcessingFilter.doFilterHttp(RememberMeProcessingFilter.java:116)
	org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
	hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
	org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:278)
	org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
	hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
	org.springframework.security.ui.basicauth.BasicProcessingFilter.doFilterHttp(BasicProcessingFilter.java:174)
	org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
	hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
	org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235)
	org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
	hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
	hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:73)
	hudson.security.HudsonFilter.doFilter(HudsonFilter.java:157)
	hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:70)