Hey Filip,

I thing you must also sync the first get statement :-)

 public static SenderState getSenderState(Member member) {
+        SenderState state = (SenderState)memberStates.get(member);
+        if ( state == null ) {
+            synchronized ( memberStates ) {
+                state = (SenderState)memberStates.get(member);
+

The internal hashmap state can be corrupted when other thread add or remove elements inside the first get call!

Peter


Am 15.03.2006 um 20:32 schrieb [EMAIL PROTECTED]:

  public static SenderState getSenderState(Member member) {
+        SenderState state = (SenderState)memberStates.get(member);
+        if ( state == null ) {
+            synchronized ( memberStates ) {
+                state = (SenderState)memberStates.get(member);
+

Reply via email to