Thanks Thomas, it should be fixed now in HAMA-482.
Tommaso

2011/11/29 Thomas Jungblut <[email protected]>

> Yes this is a bug. I deem these guys who did the backward compatibility
> without generics. HashMap.get(Object o)....
> In fact those twos never return the same hashcode or aren't equal. So the
> result will always be null.
> Sorry for this.
>
> I guess you can fix this right away.
>
> 2011/11/29 Tommaso Teofili <[email protected]>
>
> > Hi all,
> > I just noticed the line 331 of LocalBSPRunner contains a warning which
> may
> > result in bugs with multiple messages.
> > In fact
> >
> > LinkedList<BSPMessage> msgs = localOutgoingMessages.get(peerName);
> >
> > is trying to get a List of BSPMessage instances from a
> > localOutgoingMessages of type HashMap<InetSocketAddress,
> > LinkedList<BSPMessage>>.
> >
> > It seems to me there is problem as peerName is a String, not a
> > InetSocketAddress and in fact my debugging session highlighted that get()
> > method to result always to return a null object.
> >
> > The quick fix seems to be putting the lines 337-341 :
> >
> >      InetSocketAddress inetSocketAddress = socketCache.get(peerName);
> >      if (inetSocketAddress == null) {
> >        inetSocketAddress = BSPNetUtils.getAddress(peerName);
> >        socketCache.put(peerName, inetSocketAddress);
> >      }
> >
> > upmost in the method and then call
> >
> > LinkedList<BSPMessage> msgs =
> localOutgoingMessages.get(inetSocketAddress);
> >
> > This was highlighted when dealing with multiple messages sent to a same
> > peer in local mode (only the last msg was actually stored in the
> > outGoingMessages item for that peer).
> >
> > Please let me know if this sounds completely wrong but it seems this
> fixes
> > my scenario.
> > Cheers,
> > Tommaso
> >
>
>
>
> --
> Thomas Jungblut
> Berlin <[email protected]>
>

Reply via email to