I have a problem with remove and relation on jboss 3.2.6. (was working on 3.2.3) 
I would like to know if I made a mistake or if this is a bug I need to report :

I have 2 ejbs in relation :

One 'Parent' which has 0 or 1 'zeroOrOneChild'. My problem is that a call to remove on 
Parent fail with a NoSuchObjectLocalException if the relation is null (Parent has no 
zeroOrOneChild).

the ZeroOrOneChild table has a field idParent matching with its associate Parent 
(forein key). 

Here is my relation :

    <ejb-relationship-role >
  |             
<ejb-relationship-role-name>Parent-facmp20-has-zeroOrOneChild-facmp20</ejb-relationship-role-name>
  |             <multiplicity>One</multiplicity>
  |             <relationship-role-source >
  |                <ejb-name>Parent</ejb-name>
  |             </relationship-role-source>
  |             <cmr-field >
  |                <cmr-field-name>zeroOrOneChild</cmr-field-name>
  |             </cmr-field>
  |          </ejb-relationship-role>

 Parent.getZeroOrOneChild() can have a null value (I guess there is nothing special to 
set into the descriptor)
 

and the log and stacktrace when removing Parent with idParent=65558 and which has no 
ZeroOrOneChild :

2004-11-03 17:54:27,620 DEBUG [myapplicationlog] remove Parent
2004-11-03 17:54:27,620 DEBUG 
[org.jboss.ejb.plugins.cmp.jdbc.JDBCLoadEntityCommand.ZeroOrOneChild] Executing SQL: 
SELECT CdCleRIB, CdCodeCdR, CdCodeTiers, CdEvent, CdFonction, CdMillesime, 
CdModeReglement, CdProgramme, CdService, DtEcheanceAmortissement, DtEcheanceInteret, 
DtEncaissement, FlBonification, FlFraisGestion, LbFournisseur, LbImputationCapital, 
LbImputationICNE, LbImputationInteret FROM ZeroOrOneChild WHERE (IdParent=?)
2004-11-03 17:54:27,620 ERROR [org.jboss.ejb.plugins.LogInterceptor] 
TransactionRolledbackLocalException in method: null, causedBy:
javax.ejb.NoSuchObjectLocalException: Entity not found: primaryKey=[.65558.]
        at 
org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:158)
        at 
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:341)
        at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:148)
        at 
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:111)
        at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:191)
        at 
org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
        at org.jboss.ejb.EntityContainer.internalInvoke(EntityContainer.java:484)
        at org.jboss.ejb.Container.invoke(Container.java:709)
        at 
org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMRFieldBridge.invokeRemoveRelation(JDBCCMRFieldBridge.java:1211)
        at 
org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMRFieldBridge.destroyRelationLinks(JDBCCMRFieldBridge.java:1026)
        at 
org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMRFieldBridge.destroyRelationLinks(JDBCCMRFieldBridge.java:1012)
        at 
org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMRFieldBridge.destroyRelationLinks(JDBCCMRFieldBridge.java:996)
        at 
org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMRFieldBridge.setInstanceValue(JDBCCMRFieldBridge.java:890)
        at 
org.jboss.ejb.plugins.cmp.jdbc.CascadeDeleteStrategy$NoneCascadeDeleteStrategy.removedIds(CascadeDeleteStrategy.java:52)
        at 
org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMRFieldBridge.removeFromRelations(JDBCCMRFieldBridge.java:393)
        at 
org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCEntityBridge.removeFromRelations(JDBCEntityBridge.java:308)
        at 
org.jboss.ejb.plugins.cmp.jdbc.JDBCRemoveEntityCommand.execute(JDBCRemoveEntityCommand.java:91)
        at 
org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.removeEntity(JDBCStoreManager.java:682)
        at 
org.jboss.ejb.plugins.CMPPersistenceManager.removeEntity(CMPPersistenceManager.java:466)
        at 
org.jboss.resource.connectionmanager.CachedConnectionInterceptor.removeEntity(CachedConnectionInterceptor.java:457)
        at org.jboss.ejb.EntityContainer.remove(EntityContainer.java:500)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at 
org.jboss.ejb.EntityContainer$ContainerInterceptor.invoke(EntityContainer.java:1111)
        at 
org.jboss.ejb.plugins.cmp.jdbc.JDBCRelationInterceptor.invoke(JDBCRelationInterceptor.java:72)
        at 
org.jboss.cache.invalidation.triggers.EntityBeanCacheBatchInvalidatorInterceptor.invoke(EntityBeanCacheBatchInvalidatorInterceptor.java:113)
I understand that Jboss is looking for an element on 'ZeroOrOneChild' which has a 
idParent matching with the parent to be removed. 

But as this is a 0..1 relation it should not throw an exeption if no object is found, 
should it ?

Thank's.

Nicolas FRANK.


View the original post : 
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3853759#3853759

Reply to the post : 
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3853759


-------------------------------------------------------
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE
LinuxWorld Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_id=5588&alloc_id=12065&op=click
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to