[JIRA] (JENKINS-37707) NPE when using credentials-binding without git pluign

4 views
Skip to first unread message

rarabaolaza@cloudbees.com (JIRA)

unread,
Aug 26, 2016, 2:49:04 AM8/26/16
to jenkinsc...@googlegroups.com
Raul Arabaolaza created an issue
 
Jenkins / Bug JENKINS-37707
NPE when using credentials-binding without git pluign
Issue Type: Bug Bug
Assignee: Jesse Glick
Components: credentials-binding-plugin
Created: 2016/Aug/26 6:48 AM
Environment: O.S.: Linux, Mac OSX
CJE version: 2.7.2 LTS
JDK version: JDK8
Priority: Minor Minor
Reporter: Raul Arabaolaza

NPE when using secret files without git plugin installed

javax.servlet.ServletException: java.lang.Error: Failed to instantiate class org.jenkinsci.plugins.credentialsbinding.impl.FileBinding from {"variable":"BINDING_VARIABLE","credentialsId":["6a26f748-94d4-4dcc-9ec5-8a8a78ccdc58",""],"stapler-class":"org.jenkinsci.plugins.credentialsbinding.impl.FileBinding","$class":"org.jenkinsci.plugins.credentialsbinding.impl.FileBinding"}
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:796)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
	at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:233)
	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)
	at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:135)
	at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:126)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
	at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:80)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
	at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
	at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
	at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
	at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
	at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
	at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:553)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
	at org.eclipse.jetty.server.Server.handle(Server.java:499)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
	at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
	at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.Error: Failed to instantiate class org.jenkinsci.plugins.credentialsbinding.impl.FileBinding from {"variable":"BINDING_VARIABLE","credentialsId":["6a26f748-94d4-4dcc-9ec5-8a8a78ccdc58",""],"stapler-class":"org.jenkinsci.plugins.credentialsbinding.impl.FileBinding","$class":"org.jenkinsci.plugins.credentialsbinding.impl.FileBinding"}
	at hudson.model.Descriptor.newInstance(Descriptor.java:598)
	at hudson.model.Descriptor$NewInstanceBindInterceptor.instantiate(Descriptor.java:641)
	at org.kohsuke.stapler.RequestImpl.instantiate(RequestImpl.java:749)
	at org.kohsuke.stapler.RequestImpl.access$200(RequestImpl.java:83)
	at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:674)
	at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:712)
	at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:478)
	at org.kohsuke.stapler.RequestImpl.instantiate(RequestImpl.java:771)
	at org.kohsuke.stapler.RequestImpl.access$200(RequestImpl.java:83)
	at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:674)
	at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:478)
	at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:474)
	at hudson.model.Descriptor.newInstance(Descriptor.java:590)
	at hudson.util.DescribableList.rebuild(DescribableList.java:177)
	at hudson.model.Project.submit(Project.java:234)
	at hudson.model.Job.doConfigSubmit(Job.java:1221)
	at hudson.model.AbstractProject.doConfigSubmit(AbstractProject.java:795)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:324)
	at org.kohsuke.stapler.interceptor.RequirePOST$Processor.invoke(RequirePOST.java:52)
	at org.kohsuke.stapler.PreInvokeInterceptedFunction.invoke(PreInvokeInterceptedFunction.java:26)
	at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:167)
	at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:100)
	at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:124)
	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
	... 58 more
Caused by: java.lang.NullPointerException
	at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:719)
	at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:478)
	at org.kohsuke.stapler.RequestImpl.instantiate(RequestImpl.java:771)
	at org.kohsuke.stapler.RequestImpl.access$200(RequestImpl.java:83)
	at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:674)
	at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:478)
	at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:474)
	at hudson.model.Descriptor.newInstance(Descriptor.java:590)
	... 86 more
  • Start a new jenkins instance from the 2.7.2 war file and in the setup wizard choose the plugins to install
  • Deselect all plugins but `credentials-binding` and continue with the installation
  • Go to [BASE_JENKINS_URL]/credentials/store/system/domain//newCredentials_ and add a new credential of type secret file and use the previously attached file as value, name it secretFile and save it
  • Create a new project of type FreeStyleProject and check the Use secret text(s) or file(s) box
  • Add a new binding of type Secret File with any variable name and using the previously created secretFile credential
  • Try to save the job, a NPE occurs
Add Comment Add Comment
 
This message was sent by Atlassian JIRA (v7.1.7#71011-sha1:2526d7c)
Atlassian logo

rarabaolaza@cloudbees.com (JIRA)

unread,
Aug 26, 2016, 2:50:01 AM8/26/16
to jenkinsc...@googlegroups.com
Raul Arabaolaza updated an issue
Change By: Raul Arabaolaza
NPE when using secret files without {{git plugin}} installed

{code}
{code}

* Start a new jenkins instance from the 2.7.2 war file and in the setup wizard choose the plugins to install
* Deselect all plugins but
` { credentials-binding ` } and continue with the installation
* Go to _[BASE_JENKINS_URL]/credentials/store/system/domain/_/newCredentials_ and add a new credential of type _secret file_ and use the previously attached file as value, name it _secretFile_ and save it
* Create a new project of type _FreeStyleProject_ and check the _Use secret text(s) or file(s)_ box
* Add a new binding of type _Secret File_ with any variable name and using the previously created _secretFile_ credential
* Try to save the job, a NPE occurs

rarabaolaza@cloudbees.com (JIRA)

unread,
Aug 26, 2016, 2:52:01 AM8/26/16
to jenkinsc...@googlegroups.com

jglick@cloudbees.com (JIRA)

unread,
Aug 30, 2016, 12:14:01 PM8/30/16
to jenkinsc...@googlegroups.com
Jesse Glick commented on Bug JENKINS-37707
 
Re: NPE when using credentials-binding without git pluign

The exception reminds me of this bug in git, though it is very odd that it would reproducible when git is not installed.

jglick@cloudbees.com (JIRA)

unread,
Aug 31, 2016, 10:48:01 AM8/31/16
to jenkinsc...@googlegroups.com
Jesse Glick started work on Bug JENKINS-37707
 
Change By: Jesse Glick
Status: Open In Progress

jglick@cloudbees.com (JIRA)

unread,
Aug 31, 2016, 10:48:03 AM8/31/16
to jenkinsc...@googlegroups.com

Reproduced using provided instructions, investigating.

jglick@cloudbees.com (JIRA)

unread,
Aug 31, 2016, 10:54:02 AM8/31/16
to jenkinsc...@googlegroups.com

jglick@cloudbees.com (JIRA)

unread,
Aug 31, 2016, 11:19:01 AM8/31/16
to jenkinsc...@googlegroups.com

Happens with username/password bindings as well—not specific to file bindings.

jglick@cloudbees.com (JIRA)

unread,
Aug 31, 2016, 11:29:03 AM8/31/16
to jenkinsc...@googlegroups.com

Reproducible even in 1.596.1 with credentials 1.23.

jglick@cloudbees.com (JIRA)

unread,
Aug 31, 2016, 11:49:10 AM8/31/16
to jenkinsc...@googlegroups.com

I think git is a red herring; AFAICT it is reproducible when ssh-credentials (a dependency of git) is not installed

jglick@cloudbees.com (JIRA)

unread,
Aug 31, 2016, 12:03:01 PM8/31/16
to jenkinsc...@googlegroups.com

Wrong, the presence of git itself does seem to trigger the difference.

Tried comparing HTML in the form, but the number of generated strings is making this seem hopeless.

jglick@cloudbees.com (JIRA)

unread,
Aug 31, 2016, 12:26:02 PM8/31/16
to jenkinsc...@googlegroups.com

Reproducible even when backing out both PR 15 & PR 17.

jglick@cloudbees.com (JIRA)

unread,
Aug 31, 2016, 12:29:01 PM8/31/16
to jenkinsc...@googlegroups.com

Only reproduce when configuring the build wrapper for the first time, not when reconfiguring a project that already had it.

jglick@cloudbees.com (JIRA)

unread,
Aug 31, 2016, 12:30:01 PM8/31/16
to jenkinsc...@googlegroups.com

No evident JavaScript errors in console.

jglick@cloudbees.com (JIRA)

unread,
Aug 31, 2016, 12:42:02 PM8/31/16
to jenkinsc...@googlegroups.com
Jesse Glick stopped work on Bug JENKINS-37707
 
Change By: Jesse Glick
Status: In Progress Open

jglick@cloudbees.com (JIRA)

unread,
Aug 31, 2016, 12:42:04 PM8/31/16
to jenkinsc...@googlegroups.com
Jesse Glick assigned an issue to Unassigned
 
Change By: Jesse Glick
Assignee: Jesse Glick
Reply all
Reply to author
Forward
0 new messages