KB-1124 OSGI-related errors cause application server deployment to fail

Symptoms

The application server fails to start up due to one of the following errors:

ERROR com.appiancorp.plugins.osgi.AppianOsgiPlugin - Detected an error (BundleException) enabling the plugin 'appian.integration.sharepoint' : Unresolved constraint in bundle appian.integration.sharepoint [23]: Unable to resolve 23.0: missing requirement [23.0] osgi.wiring.package; (&(osgi.wiring.package=com.appiancorp.exceptions)(version>=18.2.20.0)(version<=18.2.20.0)). This error usually occurs when your plugin imports a package from another bundle with a specific version constraint and either the bundle providing that package doesn't meet those version constraints, or there is no bundle available that provides the specified package. For more details on how to fix this, see http://confluence.atlassian.com/x/1xy6D [0m[0m16:14:24,565 INFO [stdout] (ServerService Thread Pool -- 66) 2018-07-30 16:14:24,564 [ServerService Thread Pool -- 66] WARN com.appiancorp.plugins.osgi.AppianOsgiPlugin - Unable to enable plugin 'appian.integration.sharepoint' [0m[0m16:14:24,565 INFO [stdout] (ServerService Thread Pool -- 66) com.atlassian.plugin.osgi.container.OsgiContainerException: Cannot start plugin: appian.integration.sharepoint

 

ERROR com.appiancorp.plugins.osgi.FileDelete - Delete files failures count: 16 
ERROR com.appiancorp.plugins.osgi.FileDelete - Delete directories failures count: 32
ERROR com.appiancorp.plugins.osgi.FileInteractionMessage - Could not delete file: C:<APPIAN_HOME>\ear\suite.ear\web.war\WEB-INF\plugin-caches\osgi-cache\felix\felix-cache\bundle1\version0.0\bundle.jar: [exists][file][readable][writable][executable]:Could not delete file; this is the root failure in the deletion
ERROR com.appiancorp.plugins.osgi.FileInteractionMessage - Could not delete file due to: [Could not delete file; this is the root failure in the deletion]

 

ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/suite]] (ServerService Thread Pool -- 59) JBWEB000287: Exception sending context initialized event to listener instance of class com.appiancorp.plugins.PluginLoader: java.lang.NullPointerException
        at com.atlassian.plugin.osgi.util.OsgiHeaderUtil.getPluginKey(OsgiHeaderUtil.java:374) [atlassian-plugins-osgi-2.12.3-appian-1.0.jar:]
        at com.atlassian.plugin.osgi.container.felix.FelixOsgiContainerManager$BundleRegistration.install(FelixOsgiContainerManager.java:574) [atlassian-plugins-osgi-2.12.3-appian-1.0.jar:]
        at com.atlassian.plugin.osgi.container.felix.FelixOsgiContainerManager.installBundle(FelixOsgiContainerManager.java:450) [atlassian-plugins-osgi-2.12.3-appian-1.0.jar:]
        at com.atlassian.plugin.osgi.factory.OsgiPluginUninstalledHelper.install(OsgiPluginUninstalledHelper.java:68) [atlassian-plugins-osgi-2.12.3-appian-1.0.jar:]
        at com.atlassian.plugin.osgi.factory.OsgiPlugin.installInternal(OsgiPlugin.java:381) [atlassian-plugins-osgi-2.12.3-appian-1.0.jar:]
        at com.atlassian.plugin.impl.AbstractPlugin.install(AbstractPlugin.java:329) [atlassian-plugins-core-2.12.3.jar:]
        at com.atlassian.plugin.manager.DefaultPluginManager.addPlugins(DefaultPluginManager.java:695) [atlassian-plugins-core-2.12.3.jar:]
        at com.atlassian.plugin.manager.DefaultPluginManager.init(DefaultPluginManager.java:167) [atlassian-plugins-core-2.12.3.jar:]
        at com.appiancorp.plugins.AppianPluginManager.init(AppianPluginManager.java:77) [appian-plugins.jar:]
        at com.appiancorp.plugins.AppianPlugins.start(AppianPlugins.java:189) [appian-plugins.jar:]
        at com.appiancorp.plugins.ContainerManager.(ContainerManager.java:554) [appian-plugins.jar:]
        at com.appiancorp.plugins.PluginLoader.initialize(PluginLoader.java:62) [appian-plugins.jar:]
        at com.appiancorp.plugins.PluginLoader.contextInitialized0(PluginLoader.java:78) [appian-plugins.jar:]
        at com.appiancorp.common.AppianServletContextListener.contextInitialized(AppianServletContextListener.java:33) [appian-common.jar:]
        at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3339) [jbossweb-7.3.1.Final-redhat-1.jar:7.3.1.Final-redhat-1]
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:3777) [jbossweb-7.3.1.Final-redhat-1.jar:7.3.1.Final-redhat-1]
        at org.jboss.as.web.deployment.WebDeploymentService.doStart(WebDeploymentService.java:156) [jboss-as-web-7.3.2.Final-redhat-2.jar:7.3.2.Final-redhat-2]
        at org.jboss.as.web.deployment.WebDeploymentService.access$000(WebDeploymentService.java:60) [jboss-as-web-7.3.2.Final-redhat-2.jar:7.3.2.Final-redhat-2]
        at org.jboss.as.web.deployment.WebDeploymentService$1.run(WebDeploymentService.java:93) [jboss-as-web-7.3.2.Final-redhat-2.jar:7.3.2.Final-redhat-2]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [rt.jar:1.7.0_65]
        at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_65]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_65]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_65]
        at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_65]
        at org.jboss.threads.JBossThread.run(JBossThread.java:122)

 

ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/suite]] (ServerService Thread Pool -- 69) JBWEB000287: Exception sending context initialized event to listener instance of class com.appiancorp.plugins.PluginLoader: com.atlassian.plugin.osgi.container.OsgiContainerException: Unable to clean the cache directory: C:\appian\710\ear\suite.ear\web.war\WEB-INF\osgi-cache\felix
at com.atlassian.plugin.osgi.container.impl.DefaultOsgiPersistentCache.validate(DefaultOsgiPersistentCache.java:91) [atlassian-plugins-osgi-2.12.3-appian-1.1.jar:]
at com.atlassian.plugin.osgi.container.impl.DefaultOsgiPersistentCache.<init>(DefaultOsgiPersistentCache.java:37) [atlassian-plugins-osgi-2.12.3-appian-1.1.jar:]
at com.atlassian.plugin.osgi.container.impl.DefaultOsgiPersistentCache.<init>(DefaultOsgiPersistentCache.java:47) [atlassian-plugins-osgi-2.12.3-appian-1.1.jar:]
at com.atlassian.plugin.main.PluginsConfigurationBuilder$InternalPluginsConfiguration.<init>(PluginsConfigurationBuilder.java:279) [atlassian-plugins-main-2.12.3.jar:]
at com.atlassian.plugin.main.PluginsConfigurationBuilder.build(PluginsConfigurationBuilder.java:242) [atlassian-plugins-main-2.12.3.jar:]
at com.appiancorp.plugins.ContainerManager.<init>(ContainerManager.java:476) [appian-plugins.jar:]
at com.appiancorp.plugins.PluginLoader.initialize(PluginLoader.java:65) [appian-plugins.jar:]
at com.appiancorp.plugins.PluginLoader.contextInitialized0(PluginLoader.java:81) [appian-plugins.jar:]
at com.appiancorp.common.AppianServletContextListener.contextInitialized(AppianServletContextListener.java:38) [appian-common.jar:]
at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3339) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3780) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
at org.jboss.as.web.deployment.WebDeploymentService.doStart(WebDeploymentService.java:163) [jboss-as-web-7.5.0.Final-redhat-21.jar:7.5.0.Final-redhat-21]
at org.jboss.as.web.deployment.WebDeploymentService.access$000(WebDeploymentService.java:61) [jboss-as-web-7.5.0.Final-redhat-21.jar:7.5.0.Final-redhat-21]
at org.jboss.as.web.deployment.WebDeploymentService$1.run(WebDeploymentService.java:96) [jboss-as-web-7.5.0.Final-redhat-21.jar:7.5.0.Final-redhat-21]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [rt.jar:1.8.0_60]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [rt.jar:1.8.0_60]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_60]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_60]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_60]
at org.jboss.threads.JBossThread.run(JBossThread.java:122)
Caused by: java.io.IOException: Unable to delete directory C:\appian\710\ear\suite.ear\web.war\WEB-INF\osgi-cache\felix\felix-cache\bundle7.
at org.apache.commons.io.FileUtils.deleteDirectory(FileUtils.java:981) [commons-io-1.4.jar:1.4]
at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:1381) [commons-io-1.4.jar:1.4]
at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:1044) [commons-io-1.4.jar:1.4]
at org.apache.commons.io.FileUtils.deleteDirectory(FileUtils.java:977) [commons-io-1.4.jar:1.4]
at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:1381) [commons-io-1.4.jar:1.4]
at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:1044) [commons-io-1.4.jar:1.4]
at com.atlassian.plugin.osgi.container.impl.DefaultOsgiPersistentCache.validate(DefaultOsgiPersistentCache.java:87) [atlassian-plugins-osgi-2.12.3-appian-1.1.jar:]
... 19 more

Cause

The OSGI cache is in an inconsistent state and the application server is unable to remove it on its own.

Action

  1. Stop the application server.
  2. Delete the contents of one of the following directories (but not the directory itself), depending on your version of Appian:
    • Appian 16.3 and earlier: <APPIAN_HOME>/ear/suite.ear/web.war/WEB-INF/osgi-cache
    • Appian 17.1 and later: <APPIAN_HOME>/ear/suite.ear/web.war/WEB-INF/plugin-caches/osgi-cache
    • Appian 18.3 and later: <APPIAN_HOME>/deployment/web.war/WEB-INF/plugin-caches/osgi-cache
  3. Start the application server.

The contents of that directory are recreated during the subsequent application server restart.

Affected Versions

This article applies to all versions of Appian using JBoss or Tomcat as an application server.

Last Reviewed: January 2021

Related
Recommended