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
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.
-
If you think it was sent incorrectly contact one of the administrators:
https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira