docs: @SuppressWarnings("unchecked")
  	public final void readChildren(ObjectInputStream ois) throws IOException, ClassNotFoundException
  	{
  		synchronized (children)
  		{
  			for (int i = 0; i < serializable; i++)
  			{
  				Object child = ois.readObject();
  				BCSChild childBCSC = (BCSChild) ois.readObject();
  				children.put(child, childBCSC);
  
  				childDeserializedHook(child, childBCSC);
  
  				// set child's beanContext property
  				BeanContextChild beanContextChild = getChildBeanContextChild(child);
  				if (beanContextChild != null)
  				{
  					try
  					{
  						beanContextChild.setBeanContext(getBeanContextPeer());
  					}
  					catch (PropertyVetoException e)
  					{
  						throw new IOException(Messages.getString("beans.6B"));
  					}
  					// ensure no duplicate listener
  					beanContextChild.removePropertyChangeListener("beanContext", nonSerPCL);
  					// listen to child's beanContext change
  					beanContextChild.addPropertyChangeListener("beanContext", nonSerPCL);
  				}
  			}
  		}
  	}