According to that there should be *four* values for POINTZ types -- not three nor two.
So, try splicing in this code round line 448 and see if it gets you any joy:
else if (recordType == POINTZ)
Coordinate pt = new Coordinate(byteBuf.getDouble(), byteBuf.getDouble(), byteBuf.getDouble());
// The next byte is the "measure" value which we don't use;
// but read in anyway to check with debugger.
double measure = byteBuf.getDouble();
geom = geomFactory.createPoint(pt);
} // ... rest of else if block
You might have to update isSupported() to let it know that POINTZ types are OK.
-- [log in to unmask]