I get and IllegalAccess exception when ojb tries to populate a reference to another object. I have no problems storing the object. The exception is attached and below is my code and mapping.

----- Code --------
Integer partyId = (Integer) getParameter("partyId");
Criteria crit = new Criteria();
crit.addEqualTo("partyId", partyId);
Query query = QueryFactory.newQuery(CPartyContactMech.class, crit);
setParameter("partyContactMechs", getBroker().getCollectionByQuery(query));

---- Exception ---------
Caused by: org.apache.ojb.broker.PersistenceBrokerException: org.apache.ojb.broker.metadata.MetadataException: IllegalAccess error setting field:contactMech in object:net.enterprise.common.model.party.CPartyContactMech

---- Mapping ------
<!-- Contact Mech -->

<class-descriptor
       class="net.enterprise.common.model.contact.CContactMech"
       proxy="dynamic"
       table="contact_mech"
   >
<field-descriptor
           name="contactMechId"
           column="contact_mech_id"
           jdbc-type="integer"
           primarykey="true"
           autoincrement="true"
       />
<field-descriptor
           name="contactMechTypeId"
           column="contact_mech_type_id"
           jdbc-type="varchar"
       />
</class-descriptor>

<!-- Party Contact Mech -->

<class-descriptor
       class="net.enterprise.common.model.party.CPartyContactMech"
       proxy="dynamic"
       table="party_contact_mech"
   >
<field-descriptor
           name="partyContactMechId"
           column="party_contact_mech_id"
           jdbc-type="integer"
           primarykey="true"
           autoincrement="true"
       />
<field-descriptor
           name="partyId"
           column="party_id"
           jdbc-type="integer"
       />
<field-descriptor
           name="contactMechId"
           column="contact_mech_id"
           jdbc-type="integer"
       />
<field-descriptor
           name="fromDate"
           column="from_date"
           jdbc-type="timestamp"
       />
<field-descriptor
           name="thruDate"
           column="thru_date"
           jdbc-type="timestamp"
       />
<field-descriptor
           name="contactMechPurposeId"
           column="contact_mech_purpose_id"
           jdbc-type="integer"
       />
<reference-descriptor
           name="contactMech"
           class-ref="net.enterprise.common.model.contact.CContactMech"
           auto-retreive="true"
           auto-update="true"
       >
       <foreignkey field-ref="contactMechId"/>
   </reference-descriptor>
<reference-descriptor
           name="party"
           class-ref="net.enterprise.common.model.party.CParty"
           auto-retreive="true"
           auto-update="true"
       >
       <foreignkey field-ref="partyId"/>
   </reference-descriptor>
</class-descriptor>
thanks

-chris worley
org.apache.ojb.broker.PersistenceBrokerException: Error invoking method 
afterLookup
        at 
org.apache.ojb.broker.core.proxy.IndirectionHandlerDefaultImpl.invoke(Unknown 
Source)
        at $Proxy0.afterLookup(Unknown Source)
        at 
org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.performCallBack(Unknown
 Source)
        at 
org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.fireBrokerEvent(Unknown
 Source)
        at org.apache.ojb.broker.accesslayer.RsIterator.next(Unknown Source)
        at 
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Unknown 
Source)
        at 
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Unknown 
Source)
        at 
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Unknown 
Source)
        at 
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Unknown 
Source)
        at 
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(Unknown
 Source)
        at 
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(Unknown
 Source)
        at 
net.enterprise.server.service.contact.CFindPartyContactMechByPartyIdService.doExecute(CFindPartyContactMechByPartyIdService.java:31)
        at net.enterprise.common.service.CService.execute(CService.java:45)
        at 
net.enterprise.common.service.CServiceExecutor.execute(CServiceExecutor.java:66)
        at 
net.enterprise.common.service.CLocalDispatcher.execute(CLocalDispatcher.java:41)
        at 
net.enterprise.server.service.contact.CFindContactService.doExecute(CFindContactService.java:48)
        at net.enterprise.common.service.CService.execute(CService.java:45)
        at 
net.enterprise.common.service.CServiceExecutor.execute(CServiceExecutor.java:66)
        at 
net.enterprise.server.service.CServiceProcess.run(CServiceProcess.java:53)
Caused by: org.apache.ojb.broker.PersistenceBrokerException: 
org.apache.ojb.broker.metadata.MetadataException: IllegalAccess error setting 
field:contactMech in object:net.enterprise.common.model.party.CPartyContactMech
        at 
org.apache.ojb.broker.core.proxy.IndirectionHandlerDefaultImpl.materializeSubject(Unknown
 Source)
        at 
org.apache.ojb.broker.core.proxy.IndirectionHandlerDefaultImpl.getRealSubject(Unknown
 Source)
        ... 19 more
Caused by: org.apache.ojb.broker.metadata.MetadataException: IllegalAccess 
error setting field:contactMech in 
object:net.enterprise.common.model.party.CPartyContactMech
        at 
org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDirectAccessImplNew.setValueFor(Unknown
 Source)
        at 
org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDirectAccessImplNew.set(Unknown
 Source)
        at 
org.apache.ojb.broker.core.QueryReferenceBroker.retrieveReference(Unknown 
Source)
        at 
org.apache.ojb.broker.core.QueryReferenceBroker.retrieveReferences(Unknown 
Source)
        at org.apache.ojb.broker.core.PersistenceBrokerImpl.getDBObject(Unknown 
Source)
        at 
org.apache.ojb.broker.core.PersistenceBrokerImpl.doGetObjectByIdentity(Unknown 
Source)
        at 
org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByIdentity(Unknown 
Source)
        at 
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByIdentity(Unknown
 Source)
        at 
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByIdentity(Unknown
 Source)
        ... 21 more
Caused by: java.lang.IllegalArgumentException
        at 
sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:63)
        at java.lang.reflect.Field.set(Field.java:519)
        ... 30 more

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to