code: private void readObject(ObjectInputStream in) throws IOException,
  	ClassNotFoundException {
  
  		// Call the default implementation to de-serialize our object
  		in.defaultReadObject();
  
  		parent = new WeakReference<DepTreeNode>(null);
  
  		// restore parent reference on all children
  		if (children != null) {
  			for (Entry<String, DepTreeNode> entry : children.entrySet()) {
  				entry.getValue().setParent(this);
  			}
  		}
  	}
docs: Method called when this object is de-serialized
  
  @param in The {@link ObjectInputStream} to read from
  @throws IOException
  @throws ClassNotFoundException