jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jukka Zitting (JIRA)" <j...@apache.org>
Subject [jira] Commented: (JCR-1423) [PATCH] fix clone implementation
Date Wed, 27 Feb 2008 15:41:51 GMT

    [ https://issues.apache.org/jira/browse/JCR-1423?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12572942#action_12572942

Jukka Zitting commented on JCR-1423:

This change breaks test cases.

I suspect the reason to be that "new ThisClass()" is not the same as "(ThisClass) super.clone()".
The latter copies all field values as-is, so for example all reference variables in the cloned
object point back to components of the original object instead of being freshly initialized.

Why do we even need clone()? IMHO a copying constructor is much better solution for cloning

> [PATCH] fix clone implementation
> --------------------------------
>                 Key: JCR-1423
>                 URL: https://issues.apache.org/jira/browse/JCR-1423
>             Project: Jackrabbit
>          Issue Type: Improvement
>          Components: jackrabbit-core, jackrabbit-jcr2spi
>            Reporter: Dave Brosius
>            Priority: Trivial
>             Fix For: 1.5
>         Attachments: fix_clone_impl.patch
> Several classes implement clone, by doing new XXXX() to create the object. As these classes
aren't final, this will fail if these classes are ever derived from (which they are not, right
now). The correct implementation is to call super.clone(). This patch fixes this.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message