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

Takahito Kikuchi commented on JCR-3833:
---------------------------------------

[[email protected]],  we are concerned about cache.entrySet().iterator() at 
Line 576 but not cache.remove().

If the entry object in cache is removed successfully by cache.remove(), 
cache.entrySet would be decreased then next entry will be retrieved and 
removed. However, if the entry object is not removed due to the failure of 
removing the file during async upload, the entry in cache would not be removed, 
then the next entry would be the same entry again by the iterator at Line 576 
because the iterator is not changed still. Consequently, that causes endless 
loop until async upload of the file completes. If the file is larger, the 
endless loop will continue for a longer time. It's harmful.

Hence, we think cache.entrySet().iterator() at Line 576 is not needed so that 
the failed entry should never be retrieved during the purge job. If the 
{{iterator}} after {{remove}} is needed, please let us know why.

> Compatibility with Java 8
> -------------------------
>
>                 Key: JCR-3833
>                 URL: https://issues.apache.org/jira/browse/JCR-3833
>             Project: Jackrabbit Content Repository
>          Issue Type: Task
>            Reporter: Unico Hommes
>            Assignee: Unico Hommes
>             Fix For: 2.9.1, 2.8.1
>
>




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to