After upgrade, fail to create deployment release
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
After upgrading from Bamboo 5.3 or older to the latest Bamboo, creating deployment release will fail.
The following appears in the atlassian-bamboo.log
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
2017-03-06 22:44:07,219 INFO [http-nio-8085-exec-2] [AccessLogFilter] admin GET http://localhost:8085/deploy/createDeploymentVersion.action?deploymentProjectId=753665&returnUrl=%2Fdeploy%2FviewDeploymentProjectEnvironments.action%3Fid%3D753665 552281kb
2017-03-06 22:44:09,325 ERROR [http-nio-8085-exec-2] [ExceptionMappingInterceptor]
java.lang.NullPointerException
at com.atlassian.bamboo.resultsummary.variables.ResultsSummaryVariableAccessorImpl.legacyCurrentVariablesState(ResultsSummaryVariableAccessorImpl.java:238)
at com.atlassian.bamboo.resultsummary.variables.ResultsSummaryVariableAccessorImpl.calculateCurrentVariablesState(ResultsSummaryVariableAccessorImpl.java:334)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)
at com.sun.proxy.$Proxy77.calculateCurrentVariablesState(Unknown Source)
at com.atlassian.bamboo.deployments.versions.service.DeploymentVersionServiceImpl.createVersionVariablesFromResult(DeploymentVersionServiceImpl.java:449)
at com.atlassian.bamboo.deployments.versions.service.DeploymentVersionServiceImpl.getPossibleVersionVariables(DeploymentVersionServiceImpl.java:409)
at com.atlassian.bamboo.deployments.versions.actions.CreateDeploymentVersion.prepare(CreateDeploymentVersion.java:196)
at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:170)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:97)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:240)
at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:130)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:240)
at com.atlassian.bamboo.security.acegi.intercept.web.WebworkSecurityInterceptor.intercept(WebworkSecurityInterceptor.java:57)
Diagnosis
Environment
Bamboo connected to Oracle
There is a global/plan variable without any value
Only happens to old builds
Cause
The old builds store variable data differently compared to the latest builds, and the latest Bamboo does not work well with NULL data in old builds.
Solution
Workaround
Rerun the old builds again so that it will store variable data in new format.
Was this helpful?