Plugin cannot be enabled - java.lang.NumberFormatException received
Platform notice: Server and Data Center only. This article only applies to Atlassian products on the Server and Data Center platforms.
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
After performing confluence upgrade , plugin do not get enabled. While the plugin is enabled or upgraded from the UI , "java.lang.NumberFormatException" error is observed in the application logs
Environment
Java version containing enableassertions (-ea) or any other option . Java version can also be verified from the atlassian-confluence.log:
System Information
--------------------------
date = Wednesday, 1 February 2023
....
JavaVersion = 11.0.18-ea
javaSpecificationVersion = 11
operatingSystem = Linux 4.18.0-408.el8.x86_64
operatingSystemVersion = 4.18.0-408.el8.x86_64
appServer = Apache Tomcat
javaVm = OpenJDK 64-Bit Server VM
javaRuntime = OpenJDK Runtime Environment
operatingSystemArchitecture = amd64
fileSystemEncoding = UTF-8
jvmInputArgumentsFiltered = -Xms4096m -Xmx4096m -XX:+UseG1GC -XX:G1ReservePercent=20
systemLanguage = en
jvmVendor = Oracle Corporation
javaVendor = Red Hat, Inc.
userName = wiki
tempDirectory = /opt/wiki/server/temp
jvmImplementationVersion = 11.0.18-ea+9-LTS
jvmVersion = 11
Diagnosis
Below error observed in the atlassian-confluence.log
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [com.atlassian.troubleshooting.spring.CommonBeans]; nested exception is java.lang.NumberFormatException: For input string: "18-ea"
at org.springframework.context.annotation.ConfigurationClassParser.processImports(ConfigurationClassParser.java:610)
at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:311)
at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:250)
at org.springframework.context.annotation.ConfigurationClassParser.processImports(ConfigurationClassParser.java:600)
at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:311)
at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:250)
at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:199)
at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:181)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:331)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:247)
at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext.invokeBeanDefinitionRegistryPostProcessors(AbstractDelegatedExecutionApplicationContext.java:521)
at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext.invokeBeanFactoryPostProcessors(AbstractDelegatedExecutionApplicationContext.java:419)
at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext.invokeBeanFactoryPostProcessors(AbstractDelegatedExecutionApplicationContext.java:359)
at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext$3.run(AbstractDelegatedExecutionApplicationContext.java:251)
at org.eclipse.gemini.blueprint.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext.startRefresh(AbstractDelegatedExecutionApplicationContext.java:217)
at org.eclipse.gemini.blueprint.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.stageOne(DependencyWaiterApplicationContextExecutor.java:224)
at org.eclipse.gemini.blueprint.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.refresh(DependencyWaiterApplicationContextExecutor.java:177)
at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext.refresh(AbstractDelegatedExecutionApplicationContext.java:154)
at org.eclipse.gemini.blueprint.extender.internal.activator.LifecycleManager$1.run(LifecycleManager.java:213)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.NumberFormatException: For input string: "18-ea"
Cause
- During enabling of Plugins , when the java version is retrieved , instead of an integer value an alphanumeric value is returned.
- The alphanumeric value (11-18-ea in this case) causes NumberFormatException
- This error is related to a Debian Bug report - #982403
The bug is logged for Java -17 , however may occur for other versions too
Solution
Update the java version to similar version without options. Below KB assists with this requirement