db-ojb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Mogley" <mmog...@adelphia.net>
Subject Re: getObjectByIdentity fails after cvs update
Date Sun, 29 Feb 2004 20:27:54 GMT
I found the problem.  Has to do with PersistenceBrokerSyncImpl actually
calling close() on the broker, which of course nullifies the
descriptorRepository reference.  This is done right after my initial
getCollection call.  Hence, the observed behavior.

I read some recent messages on the changes to PersistenceBrokerSyncImpl
which cause this problem.  It seems the main motivation for the chances is
to have the PB connection be physically closed in nontransactional contexts.
So in this case, why just close the connection and leave the broker intact?
Then, next time the broker is used, if connection is null, it retrieves a
fresh connection.

This may be irrelevant for me now that I've decided to retrieve brokers on
demand (instead of holding onto a single broker throughout the EJB's
lifecycle), but I still think it's unexpected behavior.

Michael

----- Original Message ----- 
From: "Armin Waibel" <arminw@apache.org>
To: "OJB Developers List" <ojb-dev@db.apache.org>
Sent: Sunday, February 29, 2004 11:14 AM
Subject: Re: getObjectByIdentity fails after cvs update


> Hi again,
>
> Michael Mogley wrote:
>
> > Hi Armin,
> >
> > I don't do anything exotic.  The scenario is this:
> >
> > 1) app.ear is deployed.
> > 2) I go to the app.war home-page.  No problems.
> > 3) I go to the entity-listing page that retrieves a collection of
OJB-mapped
> > entities from the db.  No problems.
> > 4) I click on a specific entity to go to its detail page (which uses the
> > getObjectByIdentity - which worked before the cvs-update).  Problems.
> >
> > It is hard to see how the descriptor repository can be null if step 3
> > succeeded.  One thing I should mention is I'm retrieving proxies for the
> > collection.  However, as I said, this worked before.
> >
>
> indeed this sounds strange!
> When did you the last CVS update that works?
> Proxy could be a problem, but as long as all is done in the same JVM
> this should work.
> Did you get any other error/warn log messages?
>
>
> regards,
> Armin
>
> > Any other ideas?
> >
> > Michael
> >
> > ----- Original Message ----- 
> > From: "Armin Waibel" <arminw@apache.org>
> > To: "OJB Developers List" <ojb-dev@db.apache.org>
> > Sent: Sunday, February 29, 2004 2:35 AM
> > Subject: Re: getObjectByIdentity fails after cvs update
> >
> >
> >
> >>Hi Michael,
> >>
> >>current CVS head pass all PB-Tests without problems. Seems that in your
> >>case, the DescriptorRepository was not set for used PB instance or was
> >>set to 'null'. Do you do "any exotic things" in your application,
> >>setting of DescriptorRepository for PB instance, using own PB
> >>implementation, ...?
> >>
> >>regards,
> >>Armin
> >>
> >>Michael Mogley wrote:
> >>
> >>
> >>>Hi Dev Guys,
> >>>
> >>>I just cvs-updated the last few weeks worth of changes and now get this
> >
> > error from my web-app when looking up an object by identity:
> >
> >>>java.lang.NullPointerException
> >>>        at
> >
> >
org.apache.ojb.broker.core.PersistenceBrokerImpl.getClassDescriptor(Persiste
> > nceBrokerImpl.java:1602)
> >
> >>>        at
> >
> >
org.apache.ojb.broker.cache.CacheDistributor.searchInClassDescriptor(CacheDi
> > stributor.java:276)
> >
> >>>        at
> >
> >
org.apache.ojb.broker.cache.CacheDistributor.getCache(CacheDistributor.java:
> > 198)
> >
> >>>        at
> >
> >
org.apache.ojb.broker.cache.AbstractMetaCache.lookup(AbstractMetaCache.java:
> > 117)
> >
> >>>        at
> >
> > org.apache.ojb.broker.cache.InternalCache.lookup(InternalCache.java:80)
> >
> >>>        at
> >
> >
org.apache.ojb.broker.core.PersistenceBrokerImpl.doGetObjectByIdentity(Persi
> > stenceBrokerImpl.java:1229)
> >
> >>>        at
> >
> >
org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByIdentity(Persist
> > enceBrokerImpl.java:1212)
> >
> >>>        at
> >
> >
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByIdentity(D
> > elegatingPersistenceBroker.java:296)
> >
> >>>        at
> >
> >
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByIdentity(D
> > elegatingPersistenceBroker.java:296)
> >
> >>>I have tried with various cache implementations including
> >
> > ObjectCacheEmptyImpl.
> >
> >>>Could this be due to some recent OJB code changes?  Do I need to add
> >
> > something new to my class descriptors?
> >
> >>>Grateful for any help.
> >>>
> >>>Michael
> >>
> >>---------------------------------------------------------------------
> >>To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
> >>For additional commands, e-mail: ojb-dev-help@db.apache.org
> >>
> >>
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
> > For additional commands, e-mail: ojb-dev-help@db.apache.org
> >
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-dev-help@db.apache.org
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org


Mime
View raw message