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]