[
https://issues.apache.org/jira/browse/JDO-630?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12799259#action_12799259
]
Craig Russell commented on JDO-630:
-----------------------------------
The NPE is here:
+ /** */
+ public void testAbstractSuperclassExact() {
+ if (!runsWithApplicationIdentity()) return;
+ Transaction tx = null;
+ try {
+ pm = getPM();
+ pm.currentTransaction().begin();
+ // create the oid
+ Object abstractOid = new LongIdentity(Employee.class, id);
+ pm.getObjectById(abstractOid, false);
<======================NPE====================
+ appendMessage(ASSERTION_FAILED + "getObjectById exact for abstract
superclass must fail.");
+ } catch (JDOException ex) {
+ System.out.println("testAbstractSuperclass caught correct
JDOUserException: " + ex.getMessage());
+ }
+ finally {
+ if ((tx != null) && tx.isActive())
+ tx.rollback();
+ }
+ failOnError();
+ }
+
> Support specification of exact class in SingleFieldIdentity
> -----------------------------------------------------------
>
> Key: JDO-630
> URL: https://issues.apache.org/jira/browse/JDO-630
> Project: JDO
> Issue Type: Improvement
> Components: specification, tck2
> Reporter: Andy Jefferson
> Assignee: Craig Russell
> Fix For: JDO 2 maintenance release 3
>
> Attachments: jdo-630.patch
>
>
> When calling PersistenceManager.getObjectById() with a SingleFieldIdentity,
> there seems to be no way of avoiding the following
> (if the implementation decides to do so):
> "It is an implementation decision whether to access the data store, if
> required to determine the exact class. This will be the case of inheritance,
> where multiple <code>PersistenceCapable</code> classes share the same
> ObjectId class."
> Now when I know for sure that the targetClassName of the given
> SingleFieldIdentity already denotes the correct class for the given id, how
> can I avoid that additional roundtrip to the database for finding the exact
> class?
> It would be useful to have a way of specifying a SingleFieldIdentity to be
> for the exact class specified. This could be done by addition of methods
> void setExact(boolean flag);
> boolean getExact();
> to SingleFieldIdentity
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.