Jira Plugin does not get deployed with Apache POI 5.0.0

Annalaura Di Nunno May 27, 2021

Hello,

I created a Jira Plugin in wich  I added a dependency to Apache POI 5.0.0.

When i deploy the plugin in Jira it fails to deploy and the atlassian-jira.log shows this error.

2021-05-27 13:10:08,889 UpmAsynchronousTaskManager:thread-2 ERROR admin 788x369x1 fzrllr 172.16.2.15 /rest/plugins/1.0/ [c.a.plugin.loaders.ScanningPluginLoader] Because of the following exception:
java.lang.NullPointerException
at com.atlassian.plugin.osgi.factory.transform.stage.HostComponentSpringStage.addHostComponentsUsedInSuperClasses(HostComponentSpringStage.java:235)
at com.atlassian.plugin.osgi.factory.transform.stage.HostComponentSpringStage.findUsedHostComponents(HostComponentSpringStage.java:220)
at com.atlassian.plugin.osgi.factory.transform.stage.HostComponentSpringStage.execute(HostComponentSpringStage.java:69)
at com.atlassian.plugin.osgi.factory.transform.DefaultPluginTransformer.transform(DefaultPluginTransformer.java:140)
at com.atlassian.plugin.osgi.factory.OsgiPluginFactory.createOsgiPluginJar(OsgiPluginFactory.java:307)
at com.atlassian.plugin.osgi.factory.OsgiPluginFactory.create(OsgiPluginFactory.java:224)
at com.atlassian.jira.plugin.MasterPluginFactory.create(MasterPluginFactory.java:73)
at com.atlassian.plugin.loaders.ScanningPluginLoader.deployPluginFromUnit(ScanningPluginLoader.java:145)
at com.atlassian.plugin.loaders.ScanningPluginLoader.loadFoundPlugins(ScanningPluginLoader.java:114)
at com.atlassian.plugin.loaders.PermissionCheckingPluginLoader.loadFoundPlugins(PermissionCheckingPluginLoader.java:33)
at com.atlassian.plugin.manager.DefaultPluginManager.lambda$scanForNewPlugins$12(DefaultPluginManager.java:880)
at com.atlassian.plugin.manager.PluginTransactionContext.wrap(PluginTransactionContext.java:63)
at com.atlassian.plugin.manager.DefaultPluginManager.scanForNewPlugins(DefaultPluginManager.java:875)
at com.atlassian.plugin.manager.DefaultPluginManager.lambda$installPlugins$11(DefaultPluginManager.java:835)
at com.atlassian.plugin.manager.PluginTransactionContext.wrap(PluginTransactionContext.java:63)
at com.atlassian.plugin.manager.DefaultPluginManager.installPlugins(DefaultPluginManager.java:821)
at com.atlassian.jira.plugin.JiraPluginManager.installPlugins(JiraPluginManager.java:167)
... 3 filtered
at java.lang.reflect.Method.invoke(Method.java:498)
at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26)
at com.sun.proxy.$Proxy364.installPlugins(Unknown Source)
... 3 filtered
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:56)
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:60)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:136)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:124)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:70)
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:53)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:136)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:124)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
at com.sun.proxy.$Proxy3929.installPlugins(Unknown Source)
at com.atlassian.upm.core.install.AbstractPluginInstallHandler$1.doInTransaction(AbstractPluginInstallHandler.java:139)
at com.atlassian.upm.core.install.AbstractPluginInstallHandler$1.doInTransaction(AbstractPluginInstallHandler.java:134)
at com.atlassian.sal.core.transaction.HostContextTransactionTemplate$1.doInTransaction(HostContextTransactionTemplate.java:21)
at com.atlassian.jira.DefaultHostContextAccessor.doInTransaction(DefaultHostContextAccessor.java:50)
... 2 filtered
at java.lang.reflect.Method.invoke(Method.java:498)
at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26)
at com.sun.proxy.$Proxy175.doInTransaction(Unknown Source)
... 2 filtered
at java.lang.reflect.Method.invoke(Method.java:498)
at com.atlassian.plugin.osgi.bridge.external.HostComponentFactoryBean$DynamicServiceInvocationHandler.invoke(HostComponentFactoryBean.java:131)
at com.sun.proxy.$Proxy175.doInTransaction(Unknown Source)
at com.atlassian.sal.core.transaction.HostContextTransactionTemplate.execute(HostContextTransactionTemplate.java:18)
... 2 filtered
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:56)
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:60)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:136)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:124)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:70)
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:53)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:136)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:124)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
at com.sun.proxy.$Proxy3941.execute(Unknown Source)
at com.atlassian.upm.core.install.AbstractPluginInstallHandler.installArtifacts(AbstractPluginInstallHandler.java:133)
at com.atlassian.upm.core.install.AbstractPluginInstallHandler.installArtifact(AbstractPluginInstallHandler.java:119)
at com.atlassian.upm.core.install.JarPluginInstallHandler.installPluginInternal(JarPluginInstallHandler.java:52)
at com.atlassian.upm.core.install.AbstractPluginInstallHandler.installPlugin(AbstractPluginInstallHandler.java:60)
at com.atlassian.upm.core.install.DefaultPluginInstallationService.execute(DefaultPluginInstallationService.java:130)
at com.atlassian.upm.core.install.DefaultPluginInstallationService.install(DefaultPluginInstallationService.java:98)
at com.atlassian.upm.install.UpmPluginInstallationService.install(UpmPluginInstallationService.java:116)
at com.atlassian.upm.core.rest.resources.install.InstallTask.installFromFile(InstallTask.java:152)
at com.atlassian.upm.core.rest.resources.install.InstallFromFileTask.executeTask(InstallFromFileTask.java:36)
at com.atlassian.upm.core.rest.resources.install.InstallTask.run(InstallTask.java:77)
at com.atlassian.upm.core.async.AsynchronousTaskManager.executeTask(AsynchronousTaskManager.java:124)
at com.atlassian.upm.core.async.AsynchronousTaskManager$1.call(AsynchronousTaskManager.java:102)
at com.atlassian.upm.core.async.AsynchronousTaskManager$1.call(AsynchronousTaskManager.java:99)
at com.atlassian.sal.core.executor.ThreadLocalDelegateCallable.call(ThreadLocalDelegateCallable.java:38)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

 

 

 

 

when i modify the dependency to Apache POI 3.17.0 the plugin gets deployed successfully.

Below the  dependency in my pom:

<dependencies>

<dependency>

<groupId>com.atlassian.jira</groupId>

<artifactId>jira-api</artifactId>

<version>${jira.version}</version>

<scope>provided</scope>

 

<exclusions>

<exclusion>

<artifactId>spring-core</artifactId>

<groupId>org.springframework</groupId>

</exclusion>

<exclusion>

<artifactId>spring-beans</artifactId>

<groupId>org.springframework</groupId>

</exclusion>

<exclusion>

<artifactId>spring-context</artifactId>

<groupId>org.springframework</groupId>

</exclusion>

<exclusion>

<groupId>org.springframework</groupId>

<artifactId>spring-context</artifactId>

</exclusion>

 

<!-- <exclusion>

<artifactId>servlet-api</artifactId>

<groupId>javax.servlet</groupId>

</exclusion> -->

<exclusion>

<artifactId>mail</artifactId>

<groupId>javax.mail</groupId>

</exclusion>

<exclusion>

<artifactId>log4j</artifactId>

<groupId>log4j</groupId>

</exclusion>

<exclusion>

<groupId>org.slf4j</groupId>

    <artifactId>slf4j-api</artifactId>

</exclusion>

</exclusions>

</dependency>

 

<dependency>

<groupId>com.atlassian.jira</groupId>

<artifactId>jira-core</artifactId>

<version>${jira.version}</version>

<scope>provided</scope>

 

<exclusions>

<exclusion>

<artifactId>spring-core</artifactId>

<groupId>org.springframework</groupId>

</exclusion>

<exclusion>

<artifactId>spring-beans</artifactId>

<groupId>org.springframework</groupId>

</exclusion>

<exclusion>

<artifactId>spring-context</artifactId>

<groupId>org.springframework</groupId>

</exclusion>

<exclusion>

<groupId>org.springframework</groupId>

<artifactId>spring-context</artifactId>

</exclusion>

 

<exclusion>

<artifactId>servlet-api</artifactId>

<groupId>javax.servlet</groupId>

</exclusion>

<exclusion>

<artifactId>mail</artifactId>

<groupId>javax.mail</groupId>

</exclusion>

<exclusion>

<artifactId>log4j</artifactId>

<groupId>log4j</groupId>

</exclusion>

<exclusion>

<groupId>org.bouncycastle</groupId>

        <artifactId>bcprov-jdk15on</artifactId>

</exclusion>

<exclusion>

<groupId>commons-codec</groupId>

    <artifactId>commons-codec</artifactId>

</exclusion>

<exclusion>

<groupId>org.slf4j</groupId>

    <artifactId>jcl-over-slf4j</artifactId>

</exclusion>

 

<exclusion>

<groupId>org.apache.commons</groupId>

    <artifactId>commons-compress</artifactId>

</exclusion>

<exclusion>

<groupId>xml-apis</groupId>

    <artifactId>xml-apis</artifactId>

</exclusion>

 

 

</exclusions>

</dependency>

<dependency>

        <groupId>commons-dbcp</groupId>

        <artifactId>commons-dbcp</artifactId>

        <version>1.4</version>

    </dependency>

 

<dependency>

            <groupId>com.oracle</groupId>

            <artifactId>ojdbc6</artifactId>

            <version>11.2.0.3</version>

        </dependency>

 

<dependency>

<groupId>javax.ws.rs</groupId>

<artifactId>jsr311-api</artifactId>

<version>1.1.1</version>

<scope>provided</scope>

</dependency>

 

<dependency>

<groupId>com.atlassian.activeobjects</groupId>

<artifactId>activeobjects-plugin</artifactId>

<version>${ao.version}</version>

<scope>provided</scope>

</dependency>

<!-- SAL, the Active Objects plugin uses SAL's API for transactions -->

<dependency>

<groupId>com.atlassian.sal</groupId>

<artifactId>sal-api</artifactId>

<version>2.4.1</version>

<scope>provided</scope>

</dependency>

 

        <!-- <dependency>

            <groupId>com.itextpdf</groupId>

            <artifactId>itextpdf</artifactId>

            <version>5.5.9</version>

        </dependency> -->

   

<!-- Google Collections, useful utilities for manipulating collections -->

<dependency>

<groupId>com.google.collections</groupId>

<artifactId>google-collections</artifactId>

<version>1.0</version>

<scope>provided</scope>

</dependency>

<!-- Uncomment to use TestKit in your project. Details at https://bitbucket.org/atlassian/jira-testkit -->

<!-- You can read more about TestKit at https://developer.atlassian.com/display/JIRADEV/Plugin+Tutorial+-+Smarter+integration+testing+with+TestKit -->

<!-- <dependency> <groupId>com.atlassian.jira.tests</groupId> <artifactId>jira-testkit-client</artifactId>

<version>${testkit.version}</version> <scope>test</scope> </dependency> -->

<dependency>

<artifactId>spring-core</artifactId>

<groupId>org.springframework</groupId>

<version>4.2.5.RELEASE</version>

<scope>provided</scope>

</dependency>

<dependency>

<artifactId>spring-beans</artifactId>

<groupId>org.springframework</groupId>

<version>4.2.5.RELEASE</version>

<scope>provided</scope>

</dependency>

<dependency>

<artifactId>spring-context</artifactId>

<groupId>org.springframework</groupId>

<version>4.2.5.RELEASE</version>

<scope>provided</scope>

</dependency>

<!-- <dependency>

<artifactId>spring-jdbc</artifactId>

<groupId>org.springframework</groupId>

<version>2.5.6</version>

</dependency> -->

<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->

<dependency>

    <groupId>org.springframework</groupId>

    <artifactId>spring-jdbc</artifactId>

    <version>5.2.7.RELEASE</version>

</dependency>

<dependency>

<groupId>com.google.code.gson</groupId>

<artifactId>gson</artifactId>

<version>2.2.4</version>

</dependency>

<dependency>

<artifactId>log4j</artifactId>

<groupId>log4j</groupId>

<version>1.2.16</version>

<scope>provided</scope>

</dependency>

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>servlet-api</artifactId>

<version>2.4</version>

<type>jar</type>

<scope>provided</scope>

</dependency>

<dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi</artifactId>

<version>5.0.0</version>

 

</dependency>

<dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi-ooxml</artifactId>

<version>5.0.0</version>

<exclusions>

<exclusion>

<groupId>xml-apis</groupId>

<artifactId>xml-apis</artifactId>

</exclusion>

<exclusion>

<groupId>dom4j</groupId>

<artifactId>dom4j</artifactId>

</exclusion>

<exclusion>

            <groupId>stax</groupId>

            <artifactId>stax-api</artifactId>

        </exclusion>

        

          <exclusion>  <!-- declare the exclusion here -->

          <groupId>org.apache.poi</groupId>

          <artifactId>poi</artifactId>

        </exclusion>

        </exclusions>

</dependency>

 

<!-- <dependency>

<groupId>xml-apis</groupId>

<artifactId>xml-apis</artifactId>

<version>1.3.03</version>

</dependency> -->

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.10</version>

<scope>test</scope>

</dependency>

<dependency>

<groupId>net.java.dev.activeobjects</groupId>

<artifactId>activeobjects-test</artifactId>

<version>${ao.version}</version>

<scope>test</scope>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-test</artifactId>

<version>2.5.6</version>

<scope>test</scope>

</dependency>

 

<dependency>

<groupId>com.atlassian.plugins</groupId>

<artifactId>atlassian-plugins-osgi-testrunner</artifactId>

<version>${plugin.testrunner.version}</version>

<scope>test</scope>

</dependency>

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>5.1.25</version>

<scope>test</scope>

</dependency>

<dependency>

<groupId>org.mockito</groupId>

<artifactId>mockito-all</artifactId>

<version>1.9.5</version>

<scope>test</scope>

</dependency>

<dependency>

<groupId>org.neo4j</groupId>

<artifactId>neo4j-cypher-compiler-2.1</artifactId>

<version>2.1.2</version>

</dependency>

<dependency>

            <groupId>com.itextpdf</groupId>

            <artifactId>itextpdf</artifactId>

            <version>5.5.9</version>

        </dependency>

<!-- <dependency>

        <groupId>org.bouncycastle</groupId>

        <artifactId>bcprov-jdk15on</artifactId>

        <version>1.47</version>

    </dependency>

    <dependency>

        <groupId>org.bouncycastle</groupId>

        <artifactId>bcpkix-jdk15on</artifactId>

        <version>1.47</version>

    </dependency> -->

</dependencies>

<build>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-release-plugin</artifactId>

<version>2.5.3</version>

<dependencies>

<dependency>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-scm-plugin</artifactId>

<version>1.8.1</version>

</dependency>

</dependencies>

</plugin>

            <plugin>

                <groupId>com.atlassian.maven.plugins</groupId>

                <artifactId>maven-jira-plugin</artifactId>

                <version>${amps.version}</version>

                <extensions>true</extensions>

                <configuration>

                    <productVersion>${jira.version}</productVersion>

                    <productDataVersion>${jira.version}</productDataVersion>

<!-- Uncomment to install TestKit backdoor in JIRA. -->

<!--

<pluginArtifacts>

<pluginArtifact>

<groupId>com.atlassian.jira.tests</groupId>

<artifactId>jira-testkit-plugin</artifactId>

<version>${testkit.version}</version>

</pluginArtifact>

</pluginArtifacts>

-->

                </configuration>

            </plugin>

<plugin>

<artifactId>maven-compiler-plugin</artifactId>

<configuration>

<source>1.8</source>

<target>1.8</target>

</configuration>

</plugin>

</plugins>

<pluginManagement>

<plugins>

<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->

<plugin>

<groupId>org.eclipse.m2e</groupId>

<artifactId>lifecycle-mapping</artifactId>

<version>1.0.0</version>

<configuration>

<lifecycleMappingMetadata>

<pluginExecutions>

<pluginExecution>

<pluginExecutionFilter>

<groupId>

com.atlassian.maven.plugins

</groupId>

<artifactId>

maven-jira-plugin

</artifactId>

<versionRange>

[6.2.9,)

</versionRange>

<goals>

<goal>

filter-test-plugin-descriptor

</goal>

</goals>

</pluginExecutionFilter>

<action>

<ignore />

</action>

</pluginExecution>

</pluginExecutions>

</lifecycleMappingMetadata>

</configuration>

</plugin>

</plugins>

</pluginManagement>

</build>

<properties>

    <skipTests>true</skipTests>

<jira.version>8.5.1</jira.version>

<amps.version>6.2.9</amps.version>

<plugin.testrunner.version>2.0.1</plugin.testrunner.version>

<ao.version>1.0.0</ao.version>

<testkit.version>7.1.7</testkit.version>

</properties>

</project>

 

Jira instance have jira version 8.5.0.

I need this apache poi version (5.0.0) because my xlsx have a formula wiith DATAVALUE

How should i do to make the plugin work with apache POI 5.0.0?

Thanks in advance.

 

0 answers

Suggest an answer

Log in or Sign up to answer