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

Rakesh R commented on BOOKKEEPER-747:
-------------------------------------

Thanks again [~fpj], it looks nice. I've one small suggestion:

Kindly do logs inside synchronized block or have a copy of the list and pass it 
to logger. There could be again chance of ConcurrentModificationException, 
while logging it will iterate over the collection, isn't it ?

{code}
                 LOG.debug("Removed ledger metadata listeners on ledger {} : 
{}",
                         ledgerId, listenerSet);
+                synchronized(listenerSet){
+                    for(LedgerMetadataListener l : listenerSet) {
+                        unregisterLedgerMetadataListener(ledgerId, l);
+                        l.onChanged( ledgerId, null );
+                    }
+                }
{code}

Apart from this +1 from me.

> Implement register/unregister LedgerMetadataListener in MSLedgerManagerFactory
> ------------------------------------------------------------------------------
>
>                 Key: BOOKKEEPER-747
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-747
>             Project: Bookkeeper
>          Issue Type: Improvement
>    Affects Versions: 4.3.0, 4.2.3
>            Reporter: Flavio Junqueira
>            Assignee: Flavio Junqueira
>             Fix For: 4.3.0, 4.2.3
>
>         Attachments: BOOKKEEPER-747-4.2.patch, BOOKKEEPER-747-4.2.patch, 
> BOOKKEEPER-747-4.2.patch, BOOKKEEPER-747-4.2.patch, BOOKKEEPER-747-4.2.patch, 
> BOOKKEEPER-747.patch, BOOKKEEPER-747.patch, BOOKKEEPER-747.patch, 
> BOOKKEEPER-747.patch, BOOKKEEPER-747.patch, BOOKKEEPER-747.patch, 
> BOOKKEEPER-747.patch
>
>
> Check TODOs in MSLedgerManagerFactory.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to