[jboss-jira] [JBoss JIRA] (WFLY-12836) Large allocations in EJBContextImpl#isCallerInRole

Philippe Marschall (Jira) issues at jboss.org
Sun Dec 1 08:22:00 EST 2019


Philippe Marschall created WFLY-12836:
-----------------------------------------

             Summary: Large allocations in EJBContextImpl#isCallerInRole
                 Key: WFLY-12836
                 URL: https://issues.jboss.org/browse/WFLY-12836
             Project: WildFly
          Issue Type: Bug
          Components: EJB
    Affects Versions: 18.0.1.Final
            Reporter: Philippe Marschall
            Assignee: Cheng Fang
         Attachments: elytron_allocations_redacted.PNG

In our application we have the need to know the roles of the current user. We would like to do this using Java / Jakarta EE APIs rather than rely on WildFly implementation classes. We do this by iterating over all roles, which we know statically, and calling {{EJBContext#isCallerInRole}} for each one. This seem to be a common technique, see [How to get user roles in a JSP / Servlet](https://stackoverflow.com/questions/344117/how-to-get-user-roles-in-a-jsp-servlet).
That's about 100 roles for us. We were expecting that would be a lookup into a {{HashMap}} or similar with O(1) complexity and almost no allocations.
This however does not seem to be case as {{EJBContextImpl#isCallerInRole}} seems to do the role mapping for every call. This results in a large amount of allocations. In our case this completely dominates our allocation profile. See attached screenshot from JFR.



--
This message was sent by Atlassian Jira
(v7.13.8#713008)


More information about the jboss-jira mailing list