From: Andrew C. O. (JIRA) <no...@at...> - 2006-02-23 22:19:57
|
[ http://opensource.atlassian.com/projects/hibernate/browse/EJB-133?page=comments#action_22307 ] Andrew C. Oliver commented on EJB-133: -------------------------------------- I had ideas on how you could diagnose it but you weren't interested in them.. ripped out the call. Replaced with getResultList(). works now, NEVER get null back (not even once). Like I said "fine. close it." -Andy > getSingleResult throws bogus javax.persistence.NoResultException > ---------------------------------------------------------------- > > Key: EJB-133 > URL: http://opensource.atlassian.com/projects/hibernate/browse/EJB-133 > Project: Hibernate Entity Manager > Type: Bug > Versions: 3.1beta8 > Reporter: Andrew C. Oliver > > > http://jira.jboss.com/jira/browse/EJBTHREE-451 - originally opened as (but is clearly a Hibernate issue) - > This is the code: > /* > * (non-Javadoc) > * > * @see org.jboss.mail.mailbox.MailboxService#getMailboxByAlias(java.lang.String) > */ > @Tx(TxType.REQUIRED) > public Mailbox getMailboxByAlias(String alias) { > emInit(); > String query = "from Mailbox as mbox join fetch mbox.defaultInFolder where mbox.aliases.name=:alias"; > return (Mailbox) session.createQuery(query) > .setParameter("alias", alias).getSingleResult(); > } > It results in this query: > select mailbox0_.id as id4_0_, folder1_.id as id4_1_, mailbox0_.parent_id as parent4_4_0_, mailbox0_.name as name4_0_, mailbox0_.defaultOutFolder_id as defaultO5_4_0_, mailbox0_.defaultInFolder_id as defaultI6_4_0_, folder1_.parent_id as parent4_4_1_, folder1_.name as name4_1_, folder1_.defaultOutFolder_id as defaultO5_4_1_, folder1_.defaultInFolder_id as defaultI6_4_1_, folder1_.TYPE as TYPE4_1_ from Folder mailbox0_ inner join Folder folder1_ on mailbox0_.defaultInFolder_id=folder1_.id, Alias aliases2_ where mailbox0_.TYPE='org.jboss.mail.mailbox.Mailbox' and mailbox0_.id=aliases2_.FOLDER_ID and aliases2_.name= ?; > When the above query is run from the console with the value replacing the ?, a result is returned. The aliases and mailboxes were precreated. However this exception is returned: > Caused by: javax.persistence.NoResultException: No entity found for query > at org.hibernate.ejb.QueryImpl.getSingleResult(QueryImpl.java:47) > at org.jboss.mail.store.AbstractStore.org$jboss$mail$store$AbstractStore$loadMetaData$aop(AbstractStore.java:181) > at org.jboss.mail.store.AbstractStore$loadMetaData_N999927503220138265.invokeNext()Ljava.lang.Object;(AbstractStore$loadMetaData_N999927503220138265.java:???) > at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:126) > at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:196) > at org.jboss.mail.store.AbstractStore$loadMetaData_N999927503220138265.invokeNext()Ljava.lang.Object;(AbstractStore$loadMetaData_N999927503220138265.java:???) > at org.jboss.mail.store.AbstractStore.loadMetaData(Ljava.lang.Long;)Lorg.jboss.mail.store.StoreItemMetaData;(AbstractStore.java:???) > at org.jboss.mail.store.AbstractStore.org$jboss$mail$store$AbstractStore$getStoreItem$aop(AbstractStore.java:87) > at org.jboss.mail.store.AbstractStore$getStoreItem_N5079312968078757045.invokeNext()Ljava.lang.Object;(AbstractStore$getStoreItem_N5079312968078757045.java:???) > at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:126) > at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:196) > at org.jboss.mail.store.AbstractStore$getStoreItem_N5079312968078757045.invokeNext()Ljava.lang.Object;(AbstractStore$getStoreItem_N5079312968078757045.java:???) > at org.jboss.mail.store.AbstractStore.getStoreItem(Ljava.lang.Long;)Lorg.jboss.mail.store.StoreItem;(AbstractStore.java:???) > at jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source) > at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:87) > at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:638) > at javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:201) > at $Proxy103.getStoreItem(Ljava.lang.Long;)Lorg.jboss.mail.store.StoreItem;(Unknown Source) > at org.jboss.mail.message.StoredMailBody.getItem(StoredMailBody.java:105) > at org.jboss.mail.message.StoredMailBody.getSize(StoredMailBody.java:172) > at org.jboss.mail.mailbox.MessageData.<init>(MessageData.java:119) > at org.jboss.mail.mailhandler.localmailbox.LocalDelivery.org$jboss$mail$mailhandler$localmailbox$LocalDelivery$deliver$aop(LocalDelivery.java:101) > at org.jboss.mail.mailhandler.localmailbox.LocalDelivery.access$1(Lorg.jboss.mail.mailhandler.localmailbox.LocalDelivery;Lorg.jboss.mail.mailbox.MailboxService;Lorg.jboss.mail.message.MailAddress;Lorg.jboss.mail.message.Mail;)S(LocalDelivery.java:???) > at org.jboss.mail.mailhandler.localmailbox.LocalDelivery$deliver_7597238674321613949.invokeNext()Ljava.lang.Object;(LocalDelivery$deliver_7597238674321613949.java:???) > at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79) > at org.jboss.aspects.tx.TxInterceptor$RequiresNew.invoke(TxInterceptor.java:253) > at org.jboss.mail.mailhandler.localmailbox.LocalDelivery$deliver_7597238674321613949.invokeNext()Ljava.lang.Object;(LocalDelivery$deliver_7597238674321613949.java:???) > at org.jboss.mail.mailhandler.localmailbox.LocalDelivery.deliver(Lorg.jboss.mail.mailbox.MailboxService;Lorg.jboss.mail.message.MailAddress;Lorg.jboss.mail.message.Mail;)S(LocalDelivery.java:???) > at org.jboss.mail.mailhandler.localmailbox.LocalDelivery.send(LocalDelivery.java:43) > at jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source) > You can find a log demonstrating this on dev09 in /services/specmail directory. it isn't a small log file because debugging was turned up all the way :-) So eric will be bugging me to delete it before long. > Under load when connections timeout this exception is thrown. I suspect that deep down it is a broken socket or similar based SQL exception, but the result is actually threre. The number of them go up as load increases. This has been replicated under Postgresql and Mysql. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira |