Bug 426288 - gitweb throwing NPE in job config screen when validating a known good URL
Summary: gitweb throwing NPE in job config screen when validating a known good URL
Status: NEW
Alias: None
Product: Hudson
Classification: Technology
Component: GIT (show other bugs)
Version: 3.1.0   Edit
Hardware: PC All
: P3 normal with 1 vote (vote)
Target Milestone: ---   Edit
Assignee: Winston Prakash CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-01-21 13:26 EST by Carlton Brown CLA
Modified: 2014-01-21 13:27 EST (History)
1 user (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-01-21 13:26:46 EST
Given a valid GitHub URL, when entering the GitWeb plugin URL in a job configuration page, it displays an inline 500 error with the stacktrace below.

The test URL is:  http://github.com/carltonbrown/blerp/

HTTP Status 500 - java.lang.NullPointerException

type Exception report

message java.lang.NullPointerException

description The server encountered an internal error that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: java.lang.NullPointerException
	org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:607)
	org.kohsuke.stapler.Stapler.invoke(Stapler.java:650)
	org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:225)
	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.MetaClass$6.doDispatch(MetaClass.java:225)
	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)
	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:109)
	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.NullPointerException
	hudson.util.FormValidation$URLCheck.getCharset(FormValidation.java:453)
	hudson.util.FormValidation$URLCheck.open(FormValidation.java:412)
	hudson.plugins.git.browser.GitRepositoryBrowser$GitUrlChecker.check(GitRepositoryBrowser.java:77)
	hudson.plugins.git.browser.GithubWeb$GithubWebDescriptor.doCheckUrl(GithubWeb.java:135)
	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.MetaClass$6.doDispatch(MetaClass.java:225)
	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.MetaClass$6.doDispatch(MetaClass.java:225)
	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)
	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:109)
	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)