RE: Help in store function call in PersistenceBroker

2003-07-09 Thread Chiah Tong Kiat
That's true.  I've a table with reference-descriptor tag with one key FK
pointing to another table that is define with 2 primary key.

When PB attempt to store the parent, it's try to create a Identity object
that is looking for 2 keys which it's only passing in value.  That's when
it's trying a exception.



-Original Message-
From: Edson Carlos Ericksson Richter
[mailto:[EMAIL PROTECTED] 
Sent: Wednesday, July 09, 2003 6:59 PM
To: OJB Users List
Subject: Re: Help in store function call in PersistenceBroker

The more precise check is if

if( ojbFkFields.lenght > refPkValues.lenght )
throw new PersistenceBrokerException("The number of fields in
foreign key is greater than the number of fields in primary key (" +
realObj.getClass().getName() + ")");


Just m2c,

Edson Richter

- Original Message - 
From: "Edson Carlos Ericksson Richter" <[EMAIL PROTECTED]>
To: "OJB Users List" <[EMAIL PROTECTED]>
Sent: Wednesday, July 09, 2003 7:47 AM
Subject: Re: Help in store function call in PersistenceBroker


I had this (exactly) stack trace when I made some reference (foreign key)
with two fields mapping for a table that has only one field in primary key.
I think OJB must check if fkfields[].length == pkfield[].lenght, and throw a
better explanatory exception. The code in PersistenceBrokerImpl should be
similar to

// MBAIRD: we have 'disassociated' this object from the referenced
object,
// the object representing the ord is now null, so set the fk to
null.
if (ref == null)
{
refPkValues = new Object[objFkFields.length];
}
else
{
// BRJ: ref may be Proxy
Class refClass = ProxyHelper.getRealClass(ref);
ClassDescriptor refCld =
descriptorRepository.getDescriptorFor(refClass);

refPkValues = brokerHelper.getKeyValues(refCld, ref, false);
}

if( ojbFkFields.lenght != refPkValues.lenght )
throw new PersistenceBrokerException("The number of fields in
foreign key doesn't match the number of fields in primary key (" +
realObj.getClass().getName() + ")");


for (int i = 0; i < objFkFields.length; i++)
{
objFkFields[i].getPersistentField().set(realObj,
refPkValues[i]);
}


Jakob, Armin, Thomas can someone confirm this?

Edson Richter

- Original Message - 
From: "Chiah Tong Kiat" <[EMAIL PROTECTED]>
To: "OJB Users List" <[EMAIL PROTECTED]>
Sent: Tuesday, July 08, 2003 11:38 PM
Subject: Help in store function call in PersistenceBroker


Hi



I'm having some problem when I attempt to store the database.



It's throwing the stack trace following stack trace



com.fedex.cih.jp.JPShipmentImpl.setMDEDetails(JPShipmentImpl.java:424)
2003-07-0

9 02:03:00,843 ERROR [ExecuteThread: '8' for queue: 'default']
jp.JPShipmentImpl

 (JPShipmentImpl.java:424) -
org.apache.ojb.broker.PersistenceBrokerException: C

ould not generate primary key values for given Identity

com.fedex.data.ShipmentCoreClearanceImpl{2057001}, exception was
java.lang.Array

IndexOutOfBoundsException

java.lang.ArrayIndexOutOfBoundsException

at
org.apache.ojb.broker.util.BrokerHelper.getKeyValues(BrokerHelper.java:263)

at
org.apache.ojb.broker.util.BrokerHelper.getKeyValues(BrokerHelper.java:204)

at
org.apache.ojb.broker.core.PersistenceBrokerImpl.assertFkAssignment(Persiste
nceBrokerImpl.java:730)

at
org.apache.ojb.broker.core.PersistenceBrokerImpl.assignReferenceFKs(Persiste
nceBrokerImpl.java:2104)

at
org.apache.ojb.broker.core.PersistenceBrokerImpl.storeToDb(PersistenceBroker
Impl.java:1935)

at
org.apache.ojb.broker.core.PersistenceBrokerImpl.store(PersistenceBrokerImpl
.java:1874)

at
org.apache.ojb.broker.core.PersistenceBrokerImpl.store(PersistenceBrokerImpl
.java:660)

at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(DelegatingPersi
stenceBroker.java:158)

at
com.fedex.cih.jp.JPShipmentImpl.setMDEDetails(JPShipmentImpl.java:370)

at
com.fedex.cih.ejb.ShipmentBean.setMDEDetails(ShipmentBean.java:159)

at
com.fedex.cih.ejb.ShipmentBean_6ssy2e_EOImpl.setMDEDetails(ShipmentBean_6ssy
2e_EOImpl.java:202)

at
com.fedex.cih.ejb.ShipmentBean_6ssy2e_EOImpl_WLSkel.invoke(Unknown Source)

at
weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:362)

at
weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:313)

at
weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManage
r.java:821)

at
weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:308)

at
weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:3
0)

at weblogic.kernel.Exe

Re: Help in store function call in PersistenceBroker

2003-07-09 Thread Edson Carlos Ericksson Richter
The more precise check is if

if( ojbFkFields.lenght > refPkValues.lenght )
throw new PersistenceBrokerException("The number of fields in
foreign key is greater than the number of fields in primary key (" +
realObj.getClass().getName() + ")");


Just m2c,

Edson Richter

- Original Message - 
From: "Edson Carlos Ericksson Richter" <[EMAIL PROTECTED]>
To: "OJB Users List" <[EMAIL PROTECTED]>
Sent: Wednesday, July 09, 2003 7:47 AM
Subject: Re: Help in store function call in PersistenceBroker


I had this (exactly) stack trace when I made some reference (foreign key)
with two fields mapping for a table that has only one field in primary key.
I think OJB must check if fkfields[].length == pkfield[].lenght, and throw a
better explanatory exception. The code in PersistenceBrokerImpl should be
similar to

// MBAIRD: we have 'disassociated' this object from the referenced
object,
// the object representing the ord is now null, so set the fk to
null.
if (ref == null)
{
refPkValues = new Object[objFkFields.length];
}
else
{
// BRJ: ref may be Proxy
Class refClass = ProxyHelper.getRealClass(ref);
ClassDescriptor refCld =
descriptorRepository.getDescriptorFor(refClass);

refPkValues = brokerHelper.getKeyValues(refCld, ref, false);
}

if( ojbFkFields.lenght != refPkValues.lenght )
throw new PersistenceBrokerException("The number of fields in
foreign key doesn't match the number of fields in primary key (" +
realObj.getClass().getName() + ")");


for (int i = 0; i < objFkFields.length; i++)
{
objFkFields[i].getPersistentField().set(realObj,
refPkValues[i]);
}


Jakob, Armin, Thomas can someone confirm this?

Edson Richter

- Original Message - 
From: "Chiah Tong Kiat" <[EMAIL PROTECTED]>
To: "OJB Users List" <[EMAIL PROTECTED]>
Sent: Tuesday, July 08, 2003 11:38 PM
Subject: Help in store function call in PersistenceBroker


Hi



I'm having some problem when I attempt to store the database.



It's throwing the stack trace following stack trace



com.fedex.cih.jp.JPShipmentImpl.setMDEDetails(JPShipmentImpl.java:424)
2003-07-0

9 02:03:00,843 ERROR [ExecuteThread: '8' for queue: 'default']
jp.JPShipmentImpl

 (JPShipmentImpl.java:424) -
org.apache.ojb.broker.PersistenceBrokerException: C

ould not generate primary key values for given Identity

com.fedex.data.ShipmentCoreClearanceImpl{2057001}, exception was
java.lang.Array

IndexOutOfBoundsException

java.lang.ArrayIndexOutOfBoundsException

at
org.apache.ojb.broker.util.BrokerHelper.getKeyValues(BrokerHelper.java:263)

at
org.apache.ojb.broker.util.BrokerHelper.getKeyValues(BrokerHelper.java:204)

at
org.apache.ojb.broker.core.PersistenceBrokerImpl.assertFkAssignment(Persiste
nceBrokerImpl.java:730)

at
org.apache.ojb.broker.core.PersistenceBrokerImpl.assignReferenceFKs(Persiste
nceBrokerImpl.java:2104)

at
org.apache.ojb.broker.core.PersistenceBrokerImpl.storeToDb(PersistenceBroker
Impl.java:1935)

at
org.apache.ojb.broker.core.PersistenceBrokerImpl.store(PersistenceBrokerImpl
.java:1874)

at
org.apache.ojb.broker.core.PersistenceBrokerImpl.store(PersistenceBrokerImpl
.java:660)

at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(DelegatingPersi
stenceBroker.java:158)

at
com.fedex.cih.jp.JPShipmentImpl.setMDEDetails(JPShipmentImpl.java:370)

at
com.fedex.cih.ejb.ShipmentBean.setMDEDetails(ShipmentBean.java:159)

at
com.fedex.cih.ejb.ShipmentBean_6ssy2e_EOImpl.setMDEDetails(ShipmentBean_6ssy
2e_EOImpl.java:202)

at
com.fedex.cih.ejb.ShipmentBean_6ssy2e_EOImpl_WLSkel.invoke(Unknown Source)

at
weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:362)

at
weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:313)

at
weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManage
r.java:821)

at
weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:308)

at
weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:3
0)

at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:213)

at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:189)

rethrown as org.apache.ojb.broker.PersistenceBrokerException: Could not
generate

 primary key values for given Identity

com.fedex.data.ShipmentCoreClearanceImpl{2057001}, exception was
java.lang.ArrayIndexOutOfBoundsException

at
org.apache.ojb.broker.util.BrokerHelper.getKeyValues(BrokerHelper.java:275)

at
org.apache.ojb.broker.util.BrokerHelper.getKe

Re: Help in store function call in PersistenceBroker

2003-07-09 Thread Edson Carlos Ericksson Richter
I had this (exactly) stack trace when I made some reference (foreign key)
with two fields mapping for a table that has only one field in primary key.
I think OJB must check if fkfields[].length == pkfield[].lenght, and throw a
better explanatory exception. The code in PersistenceBrokerImpl should be
similar to

// MBAIRD: we have 'disassociated' this object from the referenced
object,
// the object representing the ord is now null, so set the fk to
null.
if (ref == null)
{
refPkValues = new Object[objFkFields.length];
}
else
{
// BRJ: ref may be Proxy
Class refClass = ProxyHelper.getRealClass(ref);
ClassDescriptor refCld =
descriptorRepository.getDescriptorFor(refClass);

refPkValues = brokerHelper.getKeyValues(refCld, ref, false);
}

if( ojbFkFields.lenght != refPkValues.lenght )
throw new PersistenceBrokerException("The number of fields in
foreign key doesn't match the number of fields in primary key (" +
realObj.getClass().getName() + ")");


for (int i = 0; i < objFkFields.length; i++)
{
objFkFields[i].getPersistentField().set(realObj,
refPkValues[i]);
}


Jakob, Armin, Thomas can someone confirm this?

Edson Richter

- Original Message - 
From: "Chiah Tong Kiat" <[EMAIL PROTECTED]>
To: "OJB Users List" <[EMAIL PROTECTED]>
Sent: Tuesday, July 08, 2003 11:38 PM
Subject: Help in store function call in PersistenceBroker


Hi



I'm having some problem when I attempt to store the database.



It's throwing the stack trace following stack trace



com.fedex.cih.jp.JPShipmentImpl.setMDEDetails(JPShipmentImpl.java:424)
2003-07-0

9 02:03:00,843 ERROR [ExecuteThread: '8' for queue: 'default']
jp.JPShipmentImpl

 (JPShipmentImpl.java:424) -
org.apache.ojb.broker.PersistenceBrokerException: C

ould not generate primary key values for given Identity

com.fedex.data.ShipmentCoreClearanceImpl{2057001}, exception was
java.lang.Array

IndexOutOfBoundsException

java.lang.ArrayIndexOutOfBoundsException

at
org.apache.ojb.broker.util.BrokerHelper.getKeyValues(BrokerHelper.java:263)

at
org.apache.ojb.broker.util.BrokerHelper.getKeyValues(BrokerHelper.java:204)

at
org.apache.ojb.broker.core.PersistenceBrokerImpl.assertFkAssignment(Persiste
nceBrokerImpl.java:730)

at
org.apache.ojb.broker.core.PersistenceBrokerImpl.assignReferenceFKs(Persiste
nceBrokerImpl.java:2104)

at
org.apache.ojb.broker.core.PersistenceBrokerImpl.storeToDb(PersistenceBroker
Impl.java:1935)

at
org.apache.ojb.broker.core.PersistenceBrokerImpl.store(PersistenceBrokerImpl
.java:1874)

at
org.apache.ojb.broker.core.PersistenceBrokerImpl.store(PersistenceBrokerImpl
.java:660)

at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(DelegatingPersi
stenceBroker.java:158)

at
com.fedex.cih.jp.JPShipmentImpl.setMDEDetails(JPShipmentImpl.java:370)

at
com.fedex.cih.ejb.ShipmentBean.setMDEDetails(ShipmentBean.java:159)

at
com.fedex.cih.ejb.ShipmentBean_6ssy2e_EOImpl.setMDEDetails(ShipmentBean_6ssy
2e_EOImpl.java:202)

at
com.fedex.cih.ejb.ShipmentBean_6ssy2e_EOImpl_WLSkel.invoke(Unknown Source)

at
weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:362)

at
weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:313)

at
weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManage
r.java:821)

at
weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:308)

at
weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:3
0)

at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:213)

at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:189)

rethrown as org.apache.ojb.broker.PersistenceBrokerException: Could not
generate

 primary key values for given Identity

com.fedex.data.ShipmentCoreClearanceImpl{2057001}, exception was
java.lang.ArrayIndexOutOfBoundsException

at
org.apache.ojb.broker.util.BrokerHelper.getKeyValues(BrokerHelper.java:275)

at
org.apache.ojb.broker.util.BrokerHelper.getKeyValues(BrokerHelper.java:204)

at
org.apache.ojb.broker.core.PersistenceBrokerImpl.assertFkAssignment(Persiste
nceBrokerImpl.java:730)

at
org.apache.ojb.broker.core.PersistenceBrokerImpl.assignReferenceFKs(Persiste
nceBrokerImpl.java:2104)

at
org.apache.ojb.broker.core.PersistenceBrokerImpl.storeToDb(PersistenceBroker
Impl.java:1935)

at
org.apache.ojb.broker.core.PersistenceBrokerImpl.store(PersistenceBrokerImpl
.java:1874)

at
org.apache.ojb.broker.core.PersistenceBrokerImpl.store(PersistenceBrokerImpl
.java:660)

at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.st

Help in store function call in PersistenceBroker

2003-07-08 Thread Chiah Tong Kiat








Hi

 

I’m having some problem when I attempt to store the database.

 

It’s throwing the stack trace following stack trace

 

com.fedex.cih.jp.JPShipmentImpl.setMDEDetails(JPShipmentImpl.java:424)
2003-07-0

9 02:03:00,843 ERROR [ExecuteThread: '8' for queue:
'default'] jp.JPShipmentImpl

 (JPShipmentImpl.java:424) - org.apache.ojb.broker.PersistenceBrokerException:
C

ould not generate primary key values for given Identity

com.fedex.data.ShipmentCoreClearanceImpl{2057001}, exception
was java.lang.Array

IndexOutOfBoundsException

java.lang.ArrayIndexOutOfBoundsException

    at org.apache.ojb.broker.util.BrokerHelper.getKeyValues(BrokerHelper.java:263)

    at org.apache.ojb.broker.util.BrokerHelper.getKeyValues(BrokerHelper.java:204)

    at
org.apache.ojb.broker.core.PersistenceBrokerImpl.assertFkAssignment(PersistenceBrokerImpl.java:730)

    at
org.apache.ojb.broker.core.PersistenceBrokerImpl.assignReferenceFKs(PersistenceBrokerImpl.java:2104)

    at org.apache.ojb.broker.core.PersistenceBrokerImpl.storeToDb(PersistenceBrokerImpl.java:1935)

    at org.apache.ojb.broker.core.PersistenceBrokerImpl.store(PersistenceBrokerImpl.java:1874)

    at org.apache.ojb.broker.core.PersistenceBrokerImpl.store(PersistenceBrokerImpl.java:660)

    at org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(DelegatingPersistenceBroker.java:158)

    at com.fedex.cih.jp.JPShipmentImpl.setMDEDetails(JPShipmentImpl.java:370)

    at com.fedex.cih.ejb.ShipmentBean.setMDEDetails(ShipmentBean.java:159)

    at
com.fedex.cih.ejb.ShipmentBean_6ssy2e_EOImpl.setMDEDetails(ShipmentBean_6ssy2e_EOImpl.java:202)

    at
com.fedex.cih.ejb.ShipmentBean_6ssy2e_EOImpl_WLSkel.invoke(Unknown Source)

    at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:362)

    at
weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:313)

    at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:821)

    at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:308)

    at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30)

    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:213)

    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:189)

rethrown as org.apache.ojb.broker.PersistenceBrokerException:
Could not generate

 primary key values for given Identity

com.fedex.data.ShipmentCoreClearanceImpl{2057001}, exception
was java.lang.ArrayIndexOutOfBoundsException

    at org.apache.ojb.broker.util.BrokerHelper.getKeyValues(BrokerHelper.java:275)

    at org.apache.ojb.broker.util.BrokerHelper.getKeyValues(BrokerHelper.java:204)

    at
org.apache.ojb.broker.core.PersistenceBrokerImpl.assertFkAssignment(PersistenceBrokerImpl.java:730)

    at org.apache.ojb.broker.core.PersistenceBrokerImpl.assignReferenceFKs(PersistenceBrokerImpl.java:2104)

    at org.apache.ojb.broker.core.PersistenceBrokerImpl.storeToDb(PersistenceBrokerImpl.java:1935)

    at org.apache.ojb.broker.core.PersistenceBrokerImpl.store(PersistenceBrokerImpl.java:1874)

    at org.apache.ojb.broker.core.PersistenceBrokerImpl.store(PersistenceBrokerImpl.java:660)

    at org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(DelegatingPersistenceBroker.java:158)

    at com.fedex.cih.jp.JPShipmentImpl.setMDEDetails(JPShipmentImpl.java:370)

    at com.fedex.cih.ejb.ShipmentBean.setMDEDetails(ShipmentBean.java:159)

    at
com.fedex.cih.ejb.ShipmentBean_6ssy2e_EOImpl.setMDEDetails(ShipmentBean_6ssy2e_EOImpl.java:202)

    at
com.fedex.cih.ejb.ShipmentBean_6ssy2e_EOImpl_WLSkel.invoke(Unknown Source)

    at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:362)

    at
weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:313)

    at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:821)

    at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:308)

    at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30)

    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:213)

    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:189)

com.fedex.cih.jp.JPShipmentImpl.setMDEDetails(JPShipmentImpl.java:446)
2003-07-0

9 02:03:01,187 DEBUG [ExecuteThread: '8' for queue:
'default'] jp.JPShipmentImpl

 (JPShipmentImpl.java:446) - Closing broker in finally setMDEDetails()
: TX

 

The problem happen when at the BrokerHelp

 

Where the class descriptor class is return 2 primary key

And the identity class return only contains one (which is
correct since at the reference mapping I’m only setting only one)











.










...




-
To unsubscribe, e-ma