[
https://issues.apache.org/jira/browse/JDO-459?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Craig Russell resolved JDO-459.
-------------------------------
Resolution: Fixed
> PersistenceCapable.jdoIsDetached needs update to reflect latest
> ---------------------------------------------------------------
>
> Key: JDO-459
> URL: https://issues.apache.org/jira/browse/JDO-459
> Project: JDO
> Issue Type: Bug
> Components: specification
> Affects Versions: JDO 2 final
> Reporter: Andy Jefferson
> Assignee: Craig Russell
> Fix For: JDO 2 maintenance release 1
>
>
> There are two issues.
> 1. The JDO2 spec 21.21.3 has a suggested implementation of jdoIsDetached.
> This was clearly written before we added "jdoDetachedState" to the
> PersistenceCapable interface and so a StateManager is not present on a
> detached object.
> 2. When we have a base class that is not detachable and a subclass that is
> detachable we have a problem to define PersistenceCapable.jdoIsDetached since
> the base class has no "jdoDetachedState", and the method is final so cant be
> overridden by subclasses. We have 2 possible solutions to this. Either we
> change the signature of jdoIsDetached to not be final (allowing subclasses to
> override it), or we implement it like this
> Root class be enhanced with the following method
> public final boolean jdoIsDetached()
> {
> return jdoIsDetachedInternal();
> }
> and if a class is Detachable it also gains the following method
> protected boolean jdoIsDetachedInternal()
> {
> if (jdoStateManager == null)
> {
> if (jdoDetachedState == null)
> return false;
> return true;
> }
> return false;
> }
> and if a class is not Detachable it gains the following method
> protected boolean jdoIsDetachedInternal()
> {
> return false;
> }
> This would then cater for the root class not being Detachable, and
> subclass(es) being Detachable.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.