Uploaded image for project: 'SAML for Atlassian Data Center'
  1. SAML for Atlassian Data Center
  2. SAMLDC-88

Loading javax.ws.rs.core.MediaType can cause plugin start-up to timeout

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: High High
    • 4.2.7, 4.3.0
    • 4.2.5, 4.2.6
    • None

      Issue Summary

      Since 4.2, Atlassian Authentication Plugin loads the javax.ws.rs.core.MediaType class, which then triggers scanning JARs for "META-INF/services/javax.ws.rs.ext.RuntimeDelegate". As jar scanning can be time consuming, it can sometimes cause the plugin system to timeout the startup, which then will disable the plugin.

      Thread Dumps taken during the plugin start up process will show blocked threads such as:

      This thread is waiting for notification on lock [0x7095007a0] owned by ThreadPoolAsyncTaskExecutor::Thread 8
      
      This thread holds [0x68b571350, 0x68b5bb2e8]
      
      Stack trace
      javax.ws.rs.ext.RuntimeDelegate.getInstance(RuntimeDelegate.java:89)
      javax.ws.rs.core.MediaType.<clinit>(MediaType.java:44)
      com.atlassian.plugins.authentication.impl.basicauth.filter.DisableBasicAuthResponseWriter.<clinit>(DisableBasicAuthResponseWriter.java:42)
      jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(java.base@11.0.9/Native Method)
      jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(java.base@11.0.9/NativeConstructorAccessorImpl.java:62)
      jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(java.base@11.0.9/DelegatingConstructorAccessorImpl.java:45)
      java.lang.reflect.Constructor.newInstance(java.base@11.0.9/Constructor.java:490)
      org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:175)
      org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:117)
      org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:300)
      org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:285)
      org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1338)
      

      Steps to Reproduce

      1. Upgrade the plugin to 4.2
      2. Restart the application a couple of times, if something in the background will make scanning for JARs slow enough, then the plugin will fail to start.

      Expected Results

      The plugin should successfully start each time.

      Actual Results

      Some times the plugin doesn't start due to a timeout issue.

      Workaround

      Currently there is no known workaround for this behavior. A workaround will be added here when available

              ppetrowski Patryk
              mmakowski Mareusz (Inactive)
              Votes:
              3 Vote for this issue
              Watchers:
              14 Start watching this issue

                Created:
                Updated:
                Resolved: