Uploaded image for project: 'Confluence Data Center'
  1. Confluence Data Center
  2. CONFSERVER-9594

ConditionalPropertySet's cannot be cached breaking cluster installations that delegate user management to JIRA

    XMLWordPrintable

Details

    Description

      When a user attempts to login, their propertyset is retrieved. When Confluence attempts to cache it this exception results:

      (Wrapped) java.io.NotSerializableException: com.atlassian.confluence.user.providers.jira.ConditionalPropertySet
      at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
      at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)
      at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)
      at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
      at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
      at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)
      at com.tangosol.util.ExternalizableHelper.writeSerializable(ExternalizableHelper.java:2100)
      at com.tangosol.util.ExternalizableHelper.internalWriteObject(ExternalizableHelper.java:2481)
      at com.tangosol.util.ExternalizableHelper.toBinary(ExternalizableHelper.java:166)
      at com.tangosol.coherence.component.util.daemon.queueProcessor.service.ReplicatedCache.requestUpdate(ReplicatedCache.CDB:21)
      at com.tangosol.coherence.component.util.daemon.queueProcessor.service.ReplicatedCache.updateResource(ReplicatedCache.CDB:68)
      at com.tangosol.coherence.component.util.CacheHandler.put(CacheHandler.CDB:11)
      at com.tangosol.coherence.component.util.CacheHandler.put(CacheHandler.CDB:1)
      at com.tangosol.coherence.component.util.SafeNamedCache.put(SafeNamedCache.CDB:1)
      at com.atlassian.confluence.cache.tangosol.TangosolCache.put(TangosolCache.java:42)
      at bucket.user.providers.CachingProfileProvider.getPropertySet(CachingProfileProvider.java:145)
      at com.atlassian.user.impl.osuser.properties.OSUPropertySetFactory.getPropertySet(OSUPropertySetFactory.java:36)
      at com.atlassian.user.impl.delegation.properties.DelegatingPropertySetFactory.getPropertySet(DelegatingPropertySetFactory.java:51)
      at bucket.user.DefaultUserAccessor.isDeactivated(DefaultUserAccessor.java:663)
      at sun.reflect.GeneratedMethodAccessor178.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:585)
      at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:284)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:155)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:122)
      at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:56)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:174)
      at $Proxy16.isDeactivated(Unknown Source)
      at com.atlassian.confluence.security.DefaultPermissionManager.permissionNotPossible(DefaultPermissionManager.java:109)
      at com.atlassian.confluence.security.DefaultPermissionManager.hasPermission(DefaultPermissionManager.java:23)
      at sun.reflect.GeneratedMethodAccessor226.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:585)
      at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:284)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:155)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:122)
      at com.atlassian.spring.interceptors.SpringProfilingInterceptor.invoke(SpringProfilingInterceptor.java:20)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
      at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:56)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:174)
      at $Proxy30.hasPermission(Unknown Source)
      at com.atlassian.confluence.pages.actions.PageAwareInterceptor.intercept(PageAwareInterceptor.java:82)
      

      ConditionalPropertySet's are only used when a customer has configured OSUser to delegate user management to JIRA.

      Attachments

        Activity

          People

            Unassigned Unassigned
            dave@atlassian.com dave (Inactive)
            Votes:
            1 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: