Program: 153933
Project: 153933
Buggy source:
/** 
 * check handshake response server => client HTTP/1.1 101 WebSocket Protocol Handshake Upgrade: WebSocket Connection: Upgrade Sec-WebSocket-Origin: http://example.com Sec-WebSocket-Location: ws://example.com/demo Sec-WebSocket-Protocol: sample 8jKS'y:G*Co,Wxa-
 * @param buffer
 */
@Override protected boolean parseHandshakeResponseHeader(ByteBuffer buffer) throws WebSocketException {
  if (!super.parseHandshakeResponseHeader(buffer)) {
    return false;
  }
  if (!"String_Node_Str".equalsIgnoreCase(this.getResponseHeaderMap().get("String_Node_Str"))) {
    throw new WebSocketException(3101,"String_Node_Str" + responseHeaderMap.get("String_Node_Str"));
  }
  if (!"String_Node_Str".equalsIgnoreCase(this.getResponseHeaderMap().get("String_Node_Str"))) {
    throw new WebSocketException(3101,"String_Node_Str" + responseHeaderMap.get("String_Node_Str"));
  }
  String serverOrigin=this.getResponseHeaderMap().get("String_Node_Str");
  if (origin != null && serverOrigin != null && !serverOrigin.equals(origin)) {
    throw new WebSocketException(3101,"String_Node_Str" + origin + "String_Node_Str"+ serverOrigin);
  }
  String serverLocation=this.getResponseHeaderMap().get("String_Node_Str");
  try {
    URI uri=new URI(location.getScheme(),location.getHost(),location.getPath(),location.getFragment());
    if (serverLocation != null && !serverLocation.equals(uri.toString())) {
      throw new WebSocketException(3101,"String_Node_Str" + uri.toString() + "String_Node_Str"+ serverLocation);
    }
  }
 catch (  URISyntaxException e) {
    ;
  }
  String protocolStr=this.getResponseHeaderMap().get("String_Node_Str");
  if (protocolStr != null) {
    serverProtocols=protocolStr.split("String_Node_Str");
  }
  return true;
}

Fixed version (ground truth):
/** 
 * check handshake response <pre> server => client HTTP/1.1 101 WebSocket Protocol Handshake Upgrade: WebSocket Connection: Upgrade Sec-WebSocket-Origin: http://example.com Sec-WebSocket-Location: ws://example.com/demo Sec-WebSocket-Protocol: sample 8jKS'y:G*Co,Wxa- </pre>
 * @param buffer
 */
@Override protected boolean parseHandshakeResponseHeader(ByteBuffer buffer) throws WebSocketException {
  if (!super.parseHandshakeResponseHeader(buffer)) {
    return false;
  }
  if (!"String_Node_Str".equalsIgnoreCase(this.getResponseHeaderMap().get("String_Node_Str"))) {
    throw new WebSocketException(3500,"String_Node_Str" + responseHeaderMap.get("String_Node_Str"));
  }
  if (!"String_Node_Str".equalsIgnoreCase(this.getResponseHeaderMap().get("String_Node_Str"))) {
    throw new WebSocketException(3501,"String_Node_Str" + responseHeaderMap.get("String_Node_Str"));
  }
  String serverOrigin=this.getResponseHeaderMap().get("String_Node_Str");
  if (origin != null && serverOrigin != null && !serverOrigin.equals(origin)) {
    throw new WebSocketException(3502,"String_Node_Str" + origin + "String_Node_Str"+ serverOrigin);
  }
  String serverLocation=this.getResponseHeaderMap().get("String_Node_Str");
  try {
    URI uri=new URI(location.getScheme(),location.getHost(),location.getPath(),location.getFragment());
    if (serverLocation != null && !serverLocation.equals(uri.toString())) {
      throw new WebSocketException(3503,"String_Node_Str" + uri.toString() + "String_Node_Str"+ serverLocation);
    }
  }
 catch (  URISyntaxException e) {
    ;
  }
  String protocolStr=this.getResponseHeaderMap().get("String_Node_Str");
  if (protocolStr != null) {
    serverProtocols=protocolStr.split("String_Node_Str");
  }
  return true;
}