[jira] Commented: (OPENJPA-208) NoResultException and NonUniqueResultException are not thrown when expected

2007-04-06 Thread Marc Prud'hommeaux (JIRA)

[ 
https://issues.apache.org/jira/browse/OPENJPA-208?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12487348
 ] 

Marc Prud'hommeaux commented on OPENJPA-208:


This seems to have slipped in in the fix for OPENJPA-168: see 
http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryImpl.java?p2=%2Fincubator%2Fopenjpa%2Ftrunk%2Fopenjpa-persistence%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Fopenjpa%2Fpersistence%2FQueryImpl.javap1=%2Fincubator%2Fopenjpa%2Ftrunk%2Fopenjpa-persistence%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Fopenjpa%2Fpersistence%2FQueryImpl.javar1=522581r2=522580view=diffpathrev=522581


 NoResultException and NonUniqueResultException are not thrown when expected
 ---

 Key: OPENJPA-208
 URL: https://issues.apache.org/jira/browse/OPENJPA-208
 Project: OpenJPA
  Issue Type: Bug
  Components: jpa
Affects Versions: 0.9.6
Reporter: Marc Prud'hommeaux
 Assigned To: Marc Prud'hommeaux

 When calling Query.getSingleResult() on a query that either has no result or 
 multiple results, either a NoResultException and NonUniqueResultException 
 (respectively) should be thrown in accordance with section 3.6.1 of the JPA 
 spec. Instead, we appear to throw a 
 org.apache.openjpa.persistence.InvalidStateException:
 org.apache.openjpa.persistence.InvalidStateException: The query on candidate 
 type class com.sun.ts.tests.ejb30.persistence.query.apitests.Department 
 with filter select d.name from Department d where d.id  1 was configured 
 to have a unique result, but more than one instance matched the query.
  at org.apache.openjpa.kernel.QueryImpl.singleResult(QueryImpl.java:1282)
  at org.apache.openjpa.kernel.QueryImpl.toResult(QueryImpl.java:1207)
  at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:982)
  at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:791)
  at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:761)
  at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:757)
  at 
 org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:514)
  at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:225)
  at 
 org.apache.openjpa.persistence.QueryImpl.getSingleResult(QueryImpl.java:287)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (OPENJPA-208) NoResultException and NonUniqueResultException are not thrown when expected

2007-04-06 Thread Marc Prud'hommeaux (JIRA)

[ 
https://issues.apache.org/jira/browse/OPENJPA-208?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12487352
 ] 

Marc Prud'hommeaux commented on OPENJPA-208:


The change to OPENJPA-168 seems to have been done to make the validation of a 
single result a little cleaner by having the kernel query perform the 
validation that there is a single result. However, this meant that we could 
only do generic exception translation, and so were no longer throwing a 
NoResultException or NonUniqueResultException. We could fix this by introducing 
a could new kernel exceptions or exception types, but it might just be easier 
to revert to having the validation done in the persistence QueryImpl.

Any objections to fixing this the easy way?

 NoResultException and NonUniqueResultException are not thrown when expected
 ---

 Key: OPENJPA-208
 URL: https://issues.apache.org/jira/browse/OPENJPA-208
 Project: OpenJPA
  Issue Type: Bug
  Components: jpa
Affects Versions: 0.9.6
Reporter: Marc Prud'hommeaux
 Assigned To: Marc Prud'hommeaux

 When calling Query.getSingleResult() on a query that either has no result or 
 multiple results, either a NoResultException and NonUniqueResultException 
 (respectively) should be thrown in accordance with section 3.6.1 of the JPA 
 spec. Instead, we appear to throw a 
 org.apache.openjpa.persistence.InvalidStateException:
 org.apache.openjpa.persistence.InvalidStateException: The query on candidate 
 type class com.sun.ts.tests.ejb30.persistence.query.apitests.Department 
 with filter select d.name from Department d where d.id  1 was configured 
 to have a unique result, but more than one instance matched the query.
  at org.apache.openjpa.kernel.QueryImpl.singleResult(QueryImpl.java:1282)
  at org.apache.openjpa.kernel.QueryImpl.toResult(QueryImpl.java:1207)
  at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:982)
  at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:791)
  at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:761)
  at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:757)
  at 
 org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:514)
  at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:225)
  at 
 org.apache.openjpa.persistence.QueryImpl.getSingleResult(QueryImpl.java:287)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.