1. Problems with "get" methods
Frequently, if you're having a problem (such as a null pointer exception) using one of Java 3D's "get" methods, you've forgotten to allocate the object needed to extract the data you're trying to retrieve. For example, calling the getCoordinates() in GeometryArray appears to allocate objects for you, and return the array elements that were allocated within the method. This is not the case.
By requiring that the array elements already exist, objects that were subclassed from Point3d can be passed into the method, and the method will still work correctly. If they hadn't done it this way, you would have to allocate your own array, a Point3d array and then copy the Point3d info into your own objects after the method call completed.