ByteBuffer.equals(Object obj)
	    byte v1 = this.get(i);
	    byte v2 = that.get(j);
	    if (v1 != v2) {
		if ((v1 != v1) && (v2 != v2))	// For float and double
		    continue;
		return false;
FloatBuffer.equals(Object obj)
	    float v1 = this.get(i);
	    float v2 = that.get(j);
	    if (v1 != v2) {
		if ((v1 != v1) && (v2 != v2))	// For float and double
		    continue;
		return false;
Can anybody explain (v1 != v1) && (v2 != v2) to me? 
Seems like somebody messed up with the code-generation tool.
 
      
    