docs: @Override
    public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
      setPageID(in.readInt());
      isLeaf = in.readBoolean();
      supernode = in.readBoolean();
      numEntries = in.readInt();
  
      final int capacity = in.readInt();
      if(supernode) {
        // this node is a supernode and is yet to be filled
        capacity_to_be_filled = capacity;
        return;
      }
      // the following causes a null pointer -- something is obviously missing
      // entries = (E[]) java.lang.reflect.Array.newInstance(eclass, capacity);
      if(isLeaf()) {
        entries = (Entry[]) new SpatialPointLeafEntry[capacity];
      }
      else {
        entries = (Entry[]) new XTreeDirectoryEntry[capacity];
      }
      for(int i = 0; i < numEntries; i++) {
        SpatialEntry s = isLeaf() ? new SpatialPointLeafEntry() : new XTreeDirectoryEntry();
        s.readExternal(in);
        entries[i] = s;
      }
    }