Hi Daniel,

> Every now and then (it really is random!) accessing a collection fails with
> a null pointer exception.


I assume you run this test in a multithreaded environment? If yes, your problem could be caused by object materialization in rc5. Before objects will be full materialized they have been put to cache, so another thread could find partial materialized objects, is fixed in rc6 and CVS head.

It's only speculation (maybe it's only a simple prefetching problem).

Do the same problem occur when a per broker cache was used (ObjectCachePerBrokerImpl)?

regards,
Armin

Daniel Perry wrote:

Our large project is now reaching maturity, and is being trialed with some
users finally!  Despite quite large object trees, it is performing well (our
strategy is proxying collections only).  But we are having a few problems
with collection proxies.

Every now and then (it really is random!) accessing a collection fails with
a null pointer exception.

I will point out now that it is using RC5, not 6 (although the dev version
is using 6). If this is likely to not occur with RC6 then please let me
know!

A stack trace is shown below.

The code that caused this failure is:

List pdps = e.getPdps();
pdps.add(pdp);
e.setPdps(pdps);

e is a persisted object, and pdps is a List (inverse-primary-key based
collection)

Note that when this collapsed, pdps was an empty list.  But normally this
code works fine! And it's not only here that the problem occurs.

Daniel.


org.apache.ojb.broker.PersistenceBrokerException: java.lang.NullPointerException at org.apache.ojb.broker.accesslayer.CollectionProxy.loadData(Unknown Source) at org.apache.ojb.broker.accesslayer.ListProxy.loadData(Unknown Source) at org.apache.ojb.broker.accesslayer.CollectionProxy.getData(Unknown Source) at org.apache.ojb.broker.accesslayer.CollectionProxy.add(Unknown Source) at com.netcase.pdp.service.PDPDataService.createNewAppraisal(PDPDataService.jav a:386) ...

Caused by: java.lang.NullPointerException
        at org.apache.ojb.broker.accesslayer.BasePrefetcher.<init>(Unknown Source)
        at
org.apache.ojb.broker.accesslayer.RelationshipPrefetcherImpl.<init>(Unknown
Source)
        at org.apache.ojb.broker.accesslayer.CollectionPrefetcher.<init>(Unknown
Source)
        at
org.apache.ojb.broker.accesslayer.RelationshipPrefetcherFactory.createRelati
onshipPrefetcher(Unknown Source)
        at
org.apache.ojb.broker.core.QueryReferenceBroker$PBCollectionProxyListener.ge
tPrefetcher(Unknown Source)
        at
org.apache.ojb.broker.core.QueryReferenceBroker$PBPrefetchingListener.prefet
ch(Unknown Source)
        at
org.apache.ojb.broker.core.QueryReferenceBroker$PBCollectionProxyListener.be
foreLoading(Unknown Source)
        at org.apache.ojb.broker.accesslayer.CollectionProxy.beforeLoading(Unknown
Source)
        ... 41 more


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




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



Reply via email to