db-jdo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Craig Russell (JIRA)" <j...@apache.org>
Subject [jira] Commented: (JDO-630) Support specification of exact class in SingleFieldIdentity
Date Tue, 12 Jan 2010 16:35:54 GMT

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


Mime
View raw message