Build plan fails with NullPointerException
Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.
Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
Summary
Problem
The following error is presented when attempting to run a build through the Run > Run plan
button in Bamboo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Site homepage
A system error has occurred - our apologies!
Version: 5.10.3
Build: 51020
Build Date: 14 Mar 2016
Request information:
Request URL: https://webserver.bamboo/builds/build/admin/triggerManualBuild.action
Scheme: https
Server: webserver.bamboo
Port: 443
URI: /builds/build/admin/triggerManualBuild.action
Context path: /builds
Servlet path: /build/admin/triggerManualBuild.action
Path info:
Query string: buildKey=GIT-BIT&buildKey=GIT-BIT
Stack Trace:
java.lang.NullPointerException
at com.atlassian.bamboo.plan.TriggerableInternalKeyImpl.<init>(TriggerableInternalKeyImpl.java:46)
at com.atlassian.bamboo.plan.PlanExecutionManagerImpl.startManualBuild(PlanExecutionManagerImpl.java:387)
at com.atlassian.bamboo.plan.PlanExecutionManagerImpl.start(PlanExecutionManagerImpl.java:570)
at com.atlassian.bamboo.plan.PlanExecutionManagerImpl$1.call(PlanExecutionManagerImpl.java:296)
at com.atlassian.bamboo.plan.PlanExecutionManagerImpl$1.call(PlanExecutionManagerImpl.java:292)
at com.atlassian.bamboo.util.CacheAwareness.withValuesOlderThanTimestampReloaded(CacheAwareness.java:163)
at com.atlassian.bamboo.plan.PlanExecutionManagerImpl.startManualExecution(PlanExecutionManagerImpl.java:300)
at com.atlassian.bamboo.plan.PlanExecutionManagerImpl.startManualExecution(PlanExecutionManagerImpl.java:233)
at com.atlassian.bamboo.plan.DelegatingPlanExecutionManager.startManualExecution(DelegatingPlanExecutionManager.java:146)
at com.atlassian.bamboo.v2.ww2.build.TriggerManualBuild.doExecute(TriggerManualBuild.java:47)
at com.atlassian.bamboo.ww2.BambooActionSupport.execute(BambooActionSupport.java:1194)
at sun.reflect.GeneratedMethodAccessor2770.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
...
Diagnosis
Environment
Bamboo using Netflix Zuul as the proxy implementation.
Diagnostic Steps
At the end of the request we can see that the buildKey parameter is showing up twice. This is also observed from the Query String information in the stack trace above. This causes the entire
triggerManualBuild
request to look like this:1
https://webserver.bamboo/builds/build/admin/triggerManualBuild.action?buildKey=GIT-BIT&buildKey=GIT-BIT
Cause
Zuul pulls the Query String from the URL and from the body and joins them, thus creating duplicate parameters: https://github.com/spring-cloud/spring-cloud-netflix/issues/1080.
Solution
Resolution
This problem has been fixed in version 1.1.4 of Spring Cloud Netflix.
https://github.com/spring-cloud/spring-cloud-netflix/commit/0da6f27aacd07a2ac76be487bf3d252b900f48e6
Upgrade to resolve the issue.
Was this helpful?