LocalBSPRunner cannot deliver multiple messages to the same peer
-----------------------------------------------------------------
Key: HAMA-482
URL: https://issues.apache.org/jira/browse/HAMA-482
Project: Hama
Issue Type: Bug
Reporter: Tommaso Teofili
Assignee: Tommaso Teofili
Fix For: 0.4.0
the line 331 of LocalBSPRunner contains a warning which may result in bugs with
multiple messages.
In fact
{code}
LinkedList<BSPMessage> msgs = localOutgoingMessages.get(peerName);
{code}
is trying to get a List of BSPMessage instances from a localOutgoingMessages of
type {code}HashMap<InetSocketAddress, LinkedList<BSPMessage>>{code}.
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 :
{code}
InetSocketAddress inetSocketAddress = socketCache.get(peerName);
if (inetSocketAddress == null) {
inetSocketAddress = BSPNetUtils.getAddress(peerName);
socketCache.put(peerName, inetSocketAddress);
}
{code}
upmost in the method and then call
{code}
LinkedList<BSPMessage> msgs = localOutgoingMessages.get(inetSocketAddress);
{code}
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).
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira