I have observed a NullPointerException raised in PGobject.equals(). The attached patch checks for a null value and avoids raising an exception.
I am working with an application which makes extensive use of user-defined types, particularly enums, and also uses EclipseLink. I found it necessary to create EclipseLink converters to convert from the Java representation of the user-defined types to a PGobject so that PgJDBC sends the correct type information to the PostgreSQL server. It appears to be necessary to create an PGobject instance with the correct type label and a null value in order to store a NULL in a column with a user-defined type. However, this results in a NullPointerException when EclipseLink tests the two PGobject instances for equality. -Derrick