Skip to content
Snippets Groups Projects
Commit ad71463c authored by Damon Kohler's avatar Damon Kohler
Browse files

Adds a couple null checks to the subscriber handshake.

parent 7d075e6a
No related branches found
No related tags found
No related merge requests found
......@@ -16,6 +16,8 @@
package org.ros.internal.node.topic;
import com.google.common.base.Preconditions;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.ros.internal.node.BaseClientHandshake;
......@@ -34,6 +36,9 @@ public class SubscriberHandshake extends BaseClientHandshake {
public SubscriberHandshake(ConnectionHeader outgoingConnectionHeader) {
super(outgoingConnectionHeader);
Preconditions.checkNotNull(outgoingConnectionHeader.getField(ConnectionHeaderFields.TYPE));
Preconditions.checkNotNull(outgoingConnectionHeader
.getField(ConnectionHeaderFields.MD5_CHECKSUM));
}
@Override
......@@ -43,12 +48,18 @@ public class SubscriberHandshake extends BaseClientHandshake {
log.info("Incoming publisher connection header: " + incommingConnectionHeader);
}
setErrorMessage(incommingConnectionHeader.getField(ConnectionHeaderFields.ERROR));
if (!incommingConnectionHeader.getField(ConnectionHeaderFields.TYPE).equals(
outgoingConnectionHeader.getField(ConnectionHeaderFields.TYPE))) {
String incomingType = incommingConnectionHeader.getField(ConnectionHeaderFields.TYPE);
if (incomingType == null) {
setErrorMessage("Incoming type cannot be null.");
} else if (!incomingType.equals(outgoingConnectionHeader.getField(ConnectionHeaderFields.TYPE))) {
setErrorMessage("Message types don't match.");
}
if (!incommingConnectionHeader.getField(ConnectionHeaderFields.MD5_CHECKSUM).equals(
outgoingConnectionHeader.getField(ConnectionHeaderFields.MD5_CHECKSUM))) {
String incomingMd5Checksum =
incommingConnectionHeader.getField(ConnectionHeaderFields.MD5_CHECKSUM);
if (incomingMd5Checksum == null) {
setErrorMessage("Incoming MD5 checksum cannot be null.");
} else if (!incomingMd5Checksum.equals(outgoingConnectionHeader
.getField(ConnectionHeaderFields.MD5_CHECKSUM))) {
setErrorMessage("Checksums don't match.");
}
return getErrorMessage() == null;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment