Hi Philipp, This is going to take some further discussion/input as this has been documented for sometime as a shallow copy.
If there is a consensus to move this forward, it will also require a CSR. I can help with that and sponsoring the updates, if the decision is to go ahead with the proposed change Best Lance > On Jan 19, 2019, at 2:34 PM, Philipp Kunz <philipp.k...@paratix.ch> wrote: > > Hi again, > Just after having sent the previous mail I found Manifest::clone > explicitly says it creates a shallow copy which is true only to a > certain extent. It deeply copies main attributes as well as individual > sections map already now and only shallowly copies individual sections > attributes maps. > I don't know about the background of it or why clone should only do a > shallow copy but if clone should really create a shallow copy, it > should probably create an even more shallow copy. In any case I figure > some potential for clarification at least. > Probably mostly because I already began a patch in the previous > message, I continued and attached another patch for a deep copy > approach. There might still be some reason not to deeply copy manifests > which I don't intend to forestall. > Philipp > > On Sat, 2019-01-19 at 19:32 +0100, Philipp Kunz wrote: >> Hi, >> >> Creating a new manifest as a copy from an existing one using the copy >> constructor assigns the new manifest individual sections entries map >> the same values which are references to attributes as the original >> rather than copying them as well deeply resulting in two manifests >> pointing to the same attributes instances modifications to which >> always affect both manifests. See test and proposed fix in the >> attached patch. >> >> Regards, >> Philipp > <manifestcopyconstructorandclone.patch> <http://oracle.com/us/design/oracle-email-sig-198324.gif> <http://oracle.com/us/design/oracle-email-sig-198324.gif> <http://oracle.com/us/design/oracle-email-sig-198324.gif> <http://oracle.com/us/design/oracle-email-sig-198324.gif>Lance Andersen| Principal Member of Technical Staff | +1.781.442.2037 Oracle Java Engineering 1 Network Drive Burlington, MA 01803 lance.ander...@oracle.com <mailto:lance.ander...@oracle.com>