Unsynchronised hashmap DefaultPermissionSchemeManager.schemeEntityCache causing hangs

XMLWordPrintable

    • 3.06

      In DefaultPermissionSchemeManager, we have an unsynchronized hashmap schemeEntityCache, which is used from multiple threads. It occasionally will hang threads, resulting in thread dumps like:

      "Servlet.Engine.Transports : 4045" daemon prio=5 tid=0x0225c640 nid=0x32d6 runnable [cd4fc000..cd4ffc30]
          at java.util.HashMap.eq(HashMap.java:274)
          at java.util.HashMap.get(HashMap.java:323)
          at org.ofbiz.core.entity.GenericEntity.compareTo(GenericEntity.java:829)
          at org.ofbiz.core.entity.GenericEntity.equals(GenericEntity.java:751)
          at java.util.HashMap.eq(HashMap.java:274)
          at java.util.HashMap.containsKey(HashMap.java:343)
          at com.atlassian.jira.permission.DefaultPermissionSchemeManager.cacheSchemeEntities(DefaultPermissionSchemeManager.java:321)
          at com.atlassian.jira.permission.DefaultPermissionSchemeManager.getEntities(DefaultPermissionSchemeManager.java:171)
          at com.atlassian.jira.permission.DefaultPermissionSchemeManager.getEntities(DefaultPermissionSchemeManager.java:74)
          at com.atlassian.jira.permission.DefaultPermissionSchemeManager.hasSchemePermission(DefaultPermissionSchemeManager.java:294)
          at com.atlassian.jira.permission.DefaultPermissionSchemeManager.hasPermission(DefaultPermissionSchemeManager.java:279)
          at com.atlassian.jira.permission.DefaultPermissionSchemeManager.hasSchemeAuthority(DefaultPermissionSchemeManager.java:233)
          at com.atlassian.jira.security.AbstractPermissionManager.hasProjectPermission(AbstractPermissionManager.java:176)
          at com.atlassian.jira.security.AbstractPermissionManager.hasPermission(AbstractPermissionManager.java:135)
          at com.atlassian.jira.security.WorkflowBasedPermissionManager.hasPermission(WorkflowBasedPermissionManager.java:61)
          at com.atlassian.jira.security.AbstractPermissionManager.hasPermission(AbstractPermissionManager.java:108)
          at com.atlassian.jira.security.AbstractPermissionManager.hasProjects(AbstractPermissionManager.java:221)
          at sun.reflect.GeneratedMethodAccessor90.invoke(Unknown Source)
      

              Assignee:
              Unassigned
              Reporter:
              Jeff Turner
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: