[ 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.