jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lukas Eder (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (JCR-3394) Use multiple sessions to calculate permissions
Date Mon, 15 Apr 2013 16:14:16 GMT

    [ https://issues.apache.org/jira/browse/JCR-3394?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13631817#comment-13631817
] 

Lukas Eder commented on JCR-3394:
---------------------------------

The current implementation of SessionPoolFactory.Pool.getSession() will throw an ArrayIndexOutOfBoundsException,
once "sindex" overflows. A possible solution:

            int n = (sindex = (sindex + 1) % sessions.length);

Or

            int n = sindex++;
            return sessions[(n & Integer.MAX_VALUE) % sessions.length];

These solutions aren't threadsafe, just as the current one. For the original purpose, that
might be OK as a "non-perfect" round-robin algorithm is acceptable. As this SessionPoolFactory
might be reused elsewhere, I still think that an AtomicInteger might be better here.
                
> Use multiple sessions to calculate permissions
> ----------------------------------------------
>
>                 Key: JCR-3394
>                 URL: https://issues.apache.org/jira/browse/JCR-3394
>             Project: Jackrabbit Content Repository
>          Issue Type: Sub-task
>            Reporter: angela
>         Attachments: JCR-3394_2.patch, JCR-3394.patch, pool-1-10-100.csv, pool-1-10-100-nocache.csv,
pooled.csv, pooled.png
>
>
> see JCR-2950 for information. subtask to track changes related to that (potential) improvement

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message