[ http://issues.apache.org/jira/browse/JCR-9?page=all ]
Stefan Guggisberg closed JCR-9:
-------------------------------
closing resolved issue
> Version.isSame(Object) not working
> ----------------------------------
>
> Key: JCR-9
> URL: http://issues.apache.org/jira/browse/JCR-9
> Project: Jackrabbit
> Type: Bug
> Environment: Jackrabbit SVN revision 54847
> Reporter: Felix Meschberger
> Assignee: Tobias Strasser
>
> Version interface is implemented (on the frontend) by the VersionImpl class (extending
NodeWrapper), which delegates to an internal NodeImpl class, which in turn extends ItemImpl.
> Say you have :
> Node node = // at Version 1.0
> Version version = // retrieved as 1.0 for the node
> Version baseVersion = node.getBaseVersion()
> You now expect
> baseVersion.isSame(version)
> even if
> baseVersion != version
> This fails, because VersionImpl delegates the isSame call to its delegatee, thus above
call becomes
> ((VersionImpl) baseVersion).delegatee.isSame(version)
> where this method is implemented by the ItemImpl class from which the delegatee NodeImpl
extends.
> That latter implementation ItemImpl.isSame() only returns true if the other is an ItemImpl,
too. But this is not the case because VersionImpl is a Version, NodeWrapper, Node but not
an ItemImpl.
> Probably the best solution would be for NodeImpl.isSame() to check whether the otherItem
is a NodeWrapper und use ((NodeWrapper) otherItem).delegatee as the otherItem for the delegatee
call.
> On another track: ItemImpl.isSame() should probably do a fast check whether the otherItem
is actually the same instance to prevent type checks...
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
|