code: protected PropertyData removeChildProperty(final String parentIdentifier, final String childIdentifier)
     {
        final List<PropertyData> childProperties = propertiesCache.get(parentIdentifier);
        if (childProperties != null)
        {
           synchronized (childProperties)
           { // [PN] 17.01.07
              for (Iterator<PropertyData> i = childProperties.iterator(); i.hasNext();)
              {
                 PropertyData cn = i.next();
                 if (cn.getIdentifier().equals(childIdentifier))
                 {
                    i.remove();
                    if (childProperties.size() <= 0)
                    {
                       propertiesCache.remove(parentIdentifier);
                    }
                    return cn;
                 }
              }
           }
        }
        return null;
     }
docs: Remove property by id if parent properties are cached in CP.
  
  @param parentIdentifier
  - parent id
  @param childIdentifier
  - property id
  @return removed property or null if property not cached or parent properties are not cached