Hi Team,
We recently upgraded from Jira 9.12.1 to 10.3.5, and one of our custom plugins is no longer working.
We have the source code and were able to successfully build the plugin using Java 17. However, after deploying the JAR file to our Jira instance, the plugin does not function correctly. Additionally, projects that rely on the plugin are not opening, and Jira performance has significantly degraded.
Could you please advise on how we can resolve these issues? I have the latest pom.xml
file available if needed.
Here is my latest pom.xml file.
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.luxoft.jira.plugin</groupId>
<artifactId>version-dependency-plugin</artifactId>
<version>3.2.33-Jira_10.3.5-2025</version>
<packaging>atlassian-plugin</packaging>
<name>Version Dependency Management</name>
<description>Manage cross-project version dependencies</description>
<organization>
<name>Luxoft</name>
<url>http://www.luxoft.com/</url>
</organization>
<properties>
<jira.version>10.3.5</jira.version>
<jira.data.version>10.3.5</jira.data.version>
<amps.version>9.0.3</amps.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<atlassian.spring.scanner.version>2.1.7</atlassian.spring.scanner.version>
</properties>
<repositories>
<repository>
<id>atlassian-public</id>
<url>https://maven.atlassian.com/repository/public</url>
</repository>
<repository>
<id>central</id>
<url>https://repo.maven.apache.org/maven2</url>
</repository>
</repositories>
<dependencies>
<!-- Atlassian JIRA Dependencies -->
<dependency>
<groupId>com.atlassian.jira</groupId>
<artifactId>jira-api</artifactId>
<version>${jira.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.atlassian.jira</groupId>
<artifactId>jira-core</artifactId>
<version>${jira.version}</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.atlassian.jira</groupId>
<artifactId>jira-gadgets-plugin</artifactId>
<version>${jira.version}</version>
<scope>provided</scope>
</dependency>
<!-- Explicit good version of commons-httpclient -->
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.1</version>
<scope>provided</scope>
</dependency>
<!-- ActiveObjects -->
<dependency>
<groupId>com.atlassian.activeobjects</groupId>
<artifactId>activeobjects-plugin</artifactId>
<version>3.6.2</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- REST and Common Dependencies -->
<dependency>
<groupId>com.atlassian.plugins.rest</groupId>
<artifactId>atlassian-rest-common</artifactId>
<version>1.0.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>jsr311-api</artifactId>
<version>1.1.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.3</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.google.collections</groupId>
<artifactId>google-collections</artifactId>
<version>1.0</version>
<scope>provided</scope>
</dependency>
<!-- Custom Plugin -->
<dependency>
<groupId>com.osoboo</groupId>
<artifactId>jira-metadata-plugin</artifactId>
<version>6.0.0</version>
<scope>provided</scope>
</dependency>
<!-- EhCache -->
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>2.10.6</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Concurrent Utils -->
<dependency>
<groupId>com.atlassian.util.concurrent</groupId>
<artifactId>atlassian-util-concurrent</artifactId>
<version>3.0.0</version>
<scope>provided</scope>
</dependency>
<!-- Atlassian SAL -->
<dependency>
<groupId>com.atlassian.sal</groupId>
<artifactId>sal-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>com.atlassian.maven.plugins</groupId>
<artifactId>jira-maven-plugin</artifactId>
<version>${amps.version}</version>
<extensions>true</extensions>
<configuration>
<productVersion>${jira.version}</productVersion>
<productDataVersion>${jira.data.version}</productDataVersion>
<useFastdevCli>false</useFastdevCli>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.10.1</version>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.1.2</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<plugin>
<groupId>com.atlassian.plugin</groupId>
<artifactId>atlassian-spring-scanner-maven-plugin</artifactId>
<version>${atlassian.spring.scanner.version}</version>
<executions>
<execution>
<goals>
<goal>atlassian-spring-scanner</goal>
</goals>
<phase>process-classes</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
And I am getting the below error:
Caused by: java.lang.IllegalStateException: Failed to introspect Class [com.luxoft.jira.plugin.versiondependency.customfields.versiondependency.VersionDependencySearcher] from ClassLoader [com.luxoft.jira.plugin.version-dependency-plugin [333]]
at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:485) [spring-core-5.3.39-atlassian-4.jar:5.3.39-atlassian-4]
at org.springframework.util.ReflectionUtils.doWithLocalMethods(ReflectionUtils.java:321) [spring-core-5.3.39-atlassian-4.jar:5.3.39-atlassian-4]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.determineCandidateConstructors(AutowiredAnnotationBeanPostProcessor.java:276) [spring-beans-5.3.39-atlassian-4.jar:5.3.39-atlassian-4]
… 625 more
Caused by: java.lang.NoClassDefFoundError: com/atlassian/util/concurrent/atomic/AtomicReference
at java.base/java.lang.Class.getDeclaredMethods0(Native Method) [?:?]
at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3402) [?:?]
at java.base/java.lang.Class.getDeclaredMethods(Class.java:2504) [?:?]
at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:467) [spring-core-5.3.39-atlassian-4.jar:5.3.39-atlassian-4]
… 627 more
Caused by: java.lang.ClassNotFoundException: com.atlassian.util.concurrent.atomic.AtomicReference not found by com.luxoft.jira.plugin.version-dependency-plugin [333]
at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1591) [org.apache.felix.framework-7.0.5.jar:?]
at org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:79) [org.apache.felix.framework-7.0.5.jar:?]
at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1976) [org.apache.felix.framework-7.0.5.jar:?]
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525) [?:?]
Regards,
Sushant Verma