Thomas Dudziak <tomdzk <at> gmail.com> writes:

> 
> Mhm, a couple of points:
> 
> * A minor thing but you should not use the id-stuff for the field
> descriptors but rather reference the foreignkey fields directly. Has
> no bearance to your problem but anyway ...
> 
> * Perhaps you should declare the ojbConcreteClass field in the whole
> hierarchy of CreditDefaultSwap, i.e. even in Instrument. Likewise, it
> might help if you duplicate Instrument's fields in the descriptor of
> InstrumentModel. Or perhaps you don't need InstrumentModel's
> descriptor ? Do you query for it (it is not used elsewhere in the
> repository file) ?
> 
> * I don't understand where in BasePrefetcher#prefetchRelationship an
> access to a field descriptor might happen. Could you set a breakpoint
> to the MetadataException and post where the exception is uttered and
> what the context is ?
> 
> Tom
> 
Tom

Here is a stack trace. Happens when I try to save a Price for a 
CreditDefaultSwap. A CreditDefaultSwap has a collection or 0 or more 
PriceDetails and each PriceDetail has 0 or more Prices. (if that helps :-)

309765 ERROR [pool-2-thread-1] PersistentField - while set field: 
[try to set 'object value' in 'target object'
target obj class: com.credittrade.instruments.derivatives.CreditDefaultSwap
target field name: rank
target field type: class com.credittrade.instruments.DebtRank
object value class: java.lang.String
object value: Senior
]
309781 ERROR [pool-2-thread-1] pc.PricePosterAbstractImpl - Could not commit 
the trade to the database
java.lang.IllegalArgumentException
        at sun.reflect.UnsafeObjectFieldAccessorImpl.set
(UnsafeObjectFieldAccessorImpl.java:63)
        at java.lang.reflect.Field.set(Field.java:656)
        at 
org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDirectAccessImplNew.s
etValueFor(PersistentFieldDirectAccessImplNew.java:216)
        at 
org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDirectAccessImplNew.s
et(PersistentFieldDirectAccessImplNew.java:158)
        at 
org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.buildOrRefreshObject
(RowReaderDefaultImpl.java:121)
        at 
org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.readObjectFrom
(RowReaderDefaultImpl.java:81)
        at org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet
(RsIterator.java:443)
        at org.apache.ojb.broker.accesslayer.RsIterator.next
(RsIterator.java:265)
        at org.apache.ojb.broker.accesslayer.ChainingIterator.next
(ChainingIterator.java:322)
        at 
org.apache.ojb.broker.accesslayer.BasePrefetcher.prefetchRelationship
(BasePrefetcher.java:107)
        at 
org.apache.ojb.broker.core.QueryReferenceBroker.performRetrievalTasks
(QueryReferenceBroker.java:329)
        at org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery
(QueryReferenceBroker.java:167)
        at org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery
(QueryReferenceBroker.java:233)
        at 
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery
(PersistenceBrokerImpl.java:1209)
        at 
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery
(DelegatingPersistenceBroker.java:328)
        at 
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery
(DelegatingPersistenceBroker.java:328)
        at org.apache.ojb.broker.core.proxy.CollectionProxyDefaultImpl.loadData
(CollectionProxyDefaultImpl.java:152)
        at org.apache.ojb.broker.core.proxy.ListProxyDefaultImpl.loadData
(ListProxyDefaultImpl.java:148)
        at org.apache.ojb.broker.core.proxy.CollectionProxyDefaultImpl.getData
(CollectionProxyDefaultImpl.java:429)
        at org.apache.ojb.broker.core.proxy.CollectionProxyDefaultImpl.iterator
(CollectionProxyDefaultImpl.java:244)
        at com.credittrade.market.PriceDetail.findPriceDetail
(PriceDetail.java:397)
        at com.credittrade.instruments.InstrumentModel.getPriceDetail
(InstrumentModel.java:88)
        at com.credittrade.instruments.InstrumentModel.addPrice
(InstrumentModel.java:206)
        at com.credittrade.market.pc.baskets.BasketPricePoster.saveReference
(BasketPricePoster.java:72)
        at com.credittrade.market.pc.baskets.BasketPricePoster.saveReference
(BasketPricePoster.java:1)
        at com.credittrade.market.pc.PricePosterAbstractImpl.postTrade
(PricePosterAbstractImpl.java:379)
        at com.credittrade.market.pc.ServerPricePoster.postTrade
(ServerPricePoster.java:92)
        at com.credittrade.market.pc.ClientPricePoster$PostTrade.execute
(ClientPricePoster.java:178)
        at com.credittrade.system.js.RPCTaskEntry.execute(RPCTaskEntry.java:63)
        at com.credittrade.system.js.TaskEntryProcessor.processEntry
(TaskEntryProcessor.java:41)
        at com.credittrade.system.js.SpaceWorker$HandOff.run
(SpaceWorker.java:230)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask
(ThreadPoolExecutor.java:650)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run
(ThreadPoolExecutor.java:675)
        at java.lang.Thread.run(Thread.java:595)
rethrown as 
org.apache.ojb.broker.metadata.MetadataException: IllegalAccess error setting 
field:rank in object:com.credittrade.instruments.derivatives.CreditDefaultSwap
        at 
org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDirectAccessImplNew.s
etValueFor(PersistentFieldDirectAccessImplNew.java:236)
        at 
org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDirectAccessImplNew.s
et(PersistentFieldDirectAccessImplNew.java:158)
        at 
org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.buildOrRefreshObject
(RowReaderDefaultImpl.java:121)
        at 
org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.readObjectFrom
(RowReaderDefaultImpl.java:81)
        at org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet
(RsIterator.java:443)
        at org.apache.ojb.broker.accesslayer.RsIterator.next
(RsIterator.java:265)
        at org.apache.ojb.broker.accesslayer.ChainingIterator.next
(ChainingIterator.java:322)
        at 
org.apache.ojb.broker.accesslayer.BasePrefetcher.prefetchRelationship
(BasePrefetcher.java:107)
        at 
org.apache.ojb.broker.core.QueryReferenceBroker.performRetrievalTasks
(QueryReferenceBroker.java:329)
        at org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery
(QueryReferenceBroker.java:167)
        at org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery
(QueryReferenceBroker.java:233)
        at 
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery
(PersistenceBrokerImpl.java:1209)
        at 
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery
(DelegatingPersistenceBroker.java:328)
        at 
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery
(DelegatingPersistenceBroker.java:328)
        at org.apache.ojb.broker.core.proxy.CollectionProxyDefaultImpl.loadData
(CollectionProxyDefaultImpl.java:152)
        at org.apache.ojb.broker.core.proxy.ListProxyDefaultImpl.loadData
(ListProxyDefaultImpl.java:148)
        at org.apache.ojb.broker.core.proxy.CollectionProxyDefaultImpl.getData
(CollectionProxyDefaultImpl.java:429)
        at org.apache.ojb.broker.core.proxy.CollectionProxyDefaultImpl.iterator
(CollectionProxyDefaultImpl.java:244)
        at com.credittrade.market.PriceDetail.findPriceDetail
(PriceDetail.java:397)
        at com.credittrade.instruments.InstrumentModel.getPriceDetail
(InstrumentModel.java:88)
        at com.credittrade.instruments.InstrumentModel.addPrice
(InstrumentModel.java:206)
        at com.credittrade.market.pc.baskets.BasketPricePoster.saveReference
(BasketPricePoster.java:72)
        at com.credittrade.market.pc.baskets.BasketPricePoster.saveReference
(BasketPricePoster.java:1)
        at com.credittrade.market.pc.PricePosterAbstractImpl.postTrade
(PricePosterAbstractImpl.java:379)
        at com.credittrade.market.pc.ServerPricePoster.postTrade
(ServerPricePoster.java:92)
        at com.credittrade.market.pc.ClientPricePoster$PostTrade.execute
(ClientPricePoster.java:178)
        at com.credittrade.system.js.RPCTaskEntry.execute(RPCTaskEntry.java:63)
        at com.credittrade.system.js.TaskEntryProcessor.processEntry
(TaskEntryProcessor.java:41)
        at com.credittrade.system.js.SpaceWorker$HandOff.run
(SpaceWorker.java:230)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask
(ThreadPoolExecutor.java:650)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run
(ThreadPoolExecutor.java:675)
        at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.IllegalArgumentException
        at sun.reflect.UnsafeObjectFieldAccessorImpl.set
(UnsafeObjectFieldAccessorImpl.java:63)
        at java.lang.reflect.Field.set(Field.java:656)
        at 
org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDirectAccessImplNew.s
etValueFor(PersistentFieldDirectAccessImplNew.java:216)
        ... 31 more


Mark



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

Reply via email to