code: public void copyFrom(Properties src, boolean shouldResetDefaults)
    {
  
      Enumeration keys = src.keys();
  
      while (keys.hasMoreElements())
      {
        String key = (String) keys.nextElement();
      
        if (!isLegalPropertyKey(key))
          throw new IllegalArgumentException(XSLMessages.createMessage(XSLTErrorResources.ER_OUTPUT_PROPERTY_NOT_RECOGNIZED, new Object[]{key})); //"output property not recognized: "
        
        Object oldValue = m_properties.get(key);
        if (null == oldValue)
        {
          String val = (String) src.get(key);
          
          if(shouldResetDefaults && key.equals(OutputKeys.METHOD))
          {
            setMethodDefaults(val);
          }
  
          m_properties.put(key, val);
        }
        else if (key.equals(OutputKeys.CDATA_SECTION_ELEMENTS))
        {
          m_properties.put(key, (String) oldValue + " " + (String) src.get(key));
        }
      }
    }
docs: Copy the keys and values from the source to this object.  This will
  not copy the default values.  This is meant to be used by going from
  a higher precedence object to a lower precedence object, so that if a
  key already exists, this method will not reset it.
  
  @param src non-null reference to the source properties.
  @param shouldResetDefaults true if the defaults should be reset based on
  the method property.