You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-user@db.apache.org by Oliver Mihatsch <o....@virtual-solution.de> on 2005/04/25 16:07:53 UTC

NullPointer in PersistenceBrokerAbstractImpl

Hello,

in a web application I developed there is a strange error which occurs every 2 Weeks - 2 Months:

java.lang.NullPointerException
	at org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.notifiyStateListener(PersistenceBrokerAbstractImpl.java:350)
	at org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.fireBrokerEvent(PersistenceBrokerAbstractImpl.java:305)
	at org.apache.ojb.broker.core.PersistenceBrokerImpl.beginTransaction(PersistenceBrokerImpl.java:400)
	at org.apache.ojb.broker.core.DelegatingPersistenceBroker.beginTransaction(DelegatingPersistenceBroker.java:139)
	at org.apache.ojb.broker.core.DelegatingPersistenceBroker.beginTransaction(DelegatingPersistenceBroker.java:139)
	at de.virtualsolution.util.OJBUtil.delete(OJBUtil.java:152)
....

OJB Version I'm using is ojb-1.0.1. It is self compiled to get the debug informations.
After the error occurs every ojb db access fails with this NPE. Only restarting the application helps.

The error is reproducable, but it takes ca. 2 Weeks - 2 Months to get it ;)
I think only insert/update/delete actions produces it, but not sure.

Thanks in advance,
Oliver Mihatsch

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


Re: NullPointer in PersistenceBrokerAbstractImpl

Posted by Oliver Mihatsch <o....@virtual-solution.de>.
Hi Armin,

ok, you are right, there are multiple threads using the same PersistenceBroker.
This must be the error.

Now it's clear, first thread clears the listener list while the other is modifing it -> BANG ;)

Thank you for the fast (and excellent) support.

Regards,
Oliver


Armin Waibel wrote:
> sorry typo:
> 
> "strange, I can't find a reson how these exceptions can happen..."
> 
> Armin Waibel wrote:
> 
>> Hi,
>>
>> strange, I kind find a reson how these exception can happen
>>
>> java.lang.ArrayIndexOutOfBoundsException
>>     at java.lang.System.arraycopy(Native Method)
>>     at 
>> org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.addListener(PersistenceBrokerAbstractImpl.java:112) 
>>
>>     at 
>> org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.addListener(PersistenceBrokerAbstractImpl.java:87) 
>>
>>     at 
>> org.apache.ojb.broker.accesslayer.RsIterator.<init>(RsIterator.java:205)
>>
>> or
>>
>> java.lang.NullPointerException
>>     at 
>> org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.notifiyStateListener(PersistenceBrokerAbstractImpl.java:350) 
>>
>>     at 
>> org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.fireBrokerEvent(PersistenceBrokerAbstractImpl.java:305) 
>>
>>     at 
>> org.apache.ojb.broker.core.PersistenceBrokerImpl.beginTransaction(PersistenceBrokerImpl.java:400) 
>>
>>
>> Think the only reason can be a concurrency problem. Do you use any 
>> daemon/timer objects? Since you can't reproduce this issue with an 
>> test case it's hard to find out the reason. Could you find any flaws 
>> in PersistenceBrokerAbstractImpl?
>>
>> regards,
>> Armin
>>
>>
>> Oliver Mihatsch wrote:
>>
>>> Hi Armin,
>>>
>>> no, every thread and function creates a new Persistence Broker before 
>>> any database interaction.
>>>
>>> Regards,
>>> Oliver
>>>
>>> Armin Waibel wrote:
>>>
>>>> Hi Oliver,
>>>>
>>>> could it happen that
>>>> de.virtualsolution.util.OJBUtil.retrieve(OJBUtil.java:174)
>>>> and
>>>> de.virtualsolution.util.OJBUtil.delete(OJBUtil.java:152)
>>>> was called by concurrent threads at the same time (on the same PB 
>>>> instance)?
>>>>
>>>> regsrds,
>>>> Armin
>>>>
>>>> Oliver Mihatsch wrote:
>>>>
>>>>> Hm, this could be the cause, but not sure:
>>>>>
>>>>> java.lang.ArrayIndexOutOfBoundsException
>>>>>     at java.lang.System.arraycopy(Native Method)
>>>>>     at 
>>>>> org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.addListener(PersistenceBrokerAbstractImpl.java:112) 
>>>>>
>>>>>     at 
>>>>> org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.addListener(PersistenceBrokerAbstractImpl.java:87) 
>>>>>
>>>>>     at 
>>>>> org.apache.ojb.broker.accesslayer.RsIterator.<init>(RsIterator.java:205) 
>>>>>
>>>>>     at 
>>>>> org.apache.ojb.broker.core.RsIteratorFactoryImpl.createRsIterator(RsIteratorFactoryImpl.java:58) 
>>>>>
>>>>>     at 
>>>>> org.apache.ojb.broker.core.PersistenceBrokerImpl.getRsIteratorFromQuery(PersistenceBrokerImpl.java:1808) 
>>>>>
>>>>>     at 
>>>>> org.apache.ojb.broker.core.PersistenceBrokerImpl.getIteratorFromQuery(PersistenceBrokerImpl.java:1333) 
>>>>>
>>>>>     at 
>>>>> org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryReferenceBroker.java:111) 
>>>>>
>>>>>     at 
>>>>> org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryReferenceBroker.java:233) 
>>>>>
>>>>>     at 
>>>>> org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryReferenceBroker.java:269) 
>>>>>
>>>>>     at 
>>>>> org.apache.ojb.broker.core.QueryReferenceBroker.retrieveCollection(QueryReferenceBroker.java:566) 
>>>>>
>>>>>     at 
>>>>> org.apache.ojb.broker.core.PersistenceBrokerImpl.refreshRelationships(PersistenceBrokerImpl.java:1184) 
>>>>>
>>>>>     at 
>>>>> org.apache.ojb.broker.core.PersistenceBrokerImpl.doGetObjectByIdentity(PersistenceBrokerImpl.java:1378) 
>>>>>
>>>>>     at 
>>>>> org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByIdentity(PersistenceBrokerImpl.java:1346) 
>>>>>
>>>>>     at 
>>>>> org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByQuery(PersistenceBrokerImpl.java:1435) 
>>>>>
>>>>>     at 
>>>>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(DelegatingPersistenceBroker.java:307) 
>>>>>
>>>>>     at 
>>>>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(DelegatingPersistenceBroker.java:307) 
>>>>>
>>>>>     at de.virtualsolution.util.OJBUtil.retrieve(OJBUtil.java:174)
>>>>> ...
>>>>>
>>>>>
>>>>>
>>>>> Oliver Mihatsch wrote:
>>>>>
>>>>>> Hello,
>>>>>>
>>>>>> in a web application I developed there is a strange error which 
>>>>>> occurs every 2 Weeks - 2 Months:
>>>>>>
>>>>>> java.lang.NullPointerException
>>>>>>     at 
>>>>>> org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.notifiyStateListener(PersistenceBrokerAbstractImpl.java:350) 
>>>>>>
>>>>>>     at 
>>>>>> org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.fireBrokerEvent(PersistenceBrokerAbstractImpl.java:305) 
>>>>>>
>>>>>>     at 
>>>>>> org.apache.ojb.broker.core.PersistenceBrokerImpl.beginTransaction(PersistenceBrokerImpl.java:400) 
>>>>>>
>>>>>>     at 
>>>>>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.beginTransaction(DelegatingPersistenceBroker.java:139) 
>>>>>>
>>>>>>     at 
>>>>>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.beginTransaction(DelegatingPersistenceBroker.java:139) 
>>>>>>
>>>>>>     at de.virtualsolution.util.OJBUtil.delete(OJBUtil.java:152)
>>>>>> ....
>>>>>>
>>>>>> OJB Version I'm using is ojb-1.0.1. It is self compiled to get the 
>>>>>> debug informations.
>>>>>> After the error occurs every ojb db access fails with this NPE. 
>>>>>> Only restarting the application helps.
>>>>>>
>>>>>> The error is reproducable, but it takes ca. 2 Weeks - 2 Months to 
>>>>>> get it ;)
>>>>>> I think only insert/update/delete actions produces it, but not sure.
>>>>>>
>>>>>> Thanks in advance,
>>>>>> Oliver Mihatsch
>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
>>>>>> For additional commands, e-mail: ojb-user-help@db.apache.org
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
>>>>> For additional commands, e-mail: ojb-user-help@db.apache.org
>>>>>
>>>>>
>>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
>>>> For additional commands, e-mail: ojb-user-help@db.apache.org
>>>>
>>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
>>> For additional commands, e-mail: ojb-user-help@db.apache.org
>>>
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
>> For additional commands, e-mail: ojb-user-help@db.apache.org
>>
>>
>>
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
> 
> 


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


Re: NullPointer in PersistenceBrokerAbstractImpl

Posted by Armin Waibel <ar...@apache.org>.
sorry typo:

"strange, I can't find a reson how these exceptions can happen..."

Armin Waibel wrote:
> Hi,
> 
> strange, I kind find a reson how these exception can happen
> 
> java.lang.ArrayIndexOutOfBoundsException
>     at java.lang.System.arraycopy(Native Method)
>     at 
> org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.addListener(PersistenceBrokerAbstractImpl.java:112) 
> 
>     at 
> org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.addListener(PersistenceBrokerAbstractImpl.java:87) 
> 
>     at 
> org.apache.ojb.broker.accesslayer.RsIterator.<init>(RsIterator.java:205)
> 
> or
> 
> java.lang.NullPointerException
>     at 
> org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.notifiyStateListener(PersistenceBrokerAbstractImpl.java:350) 
> 
>     at 
> org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.fireBrokerEvent(PersistenceBrokerAbstractImpl.java:305) 
> 
>     at 
> org.apache.ojb.broker.core.PersistenceBrokerImpl.beginTransaction(PersistenceBrokerImpl.java:400) 
> 
> 
> Think the only reason can be a concurrency problem. Do you use any 
> daemon/timer objects? Since you can't reproduce this issue with an test 
> case it's hard to find out the reason. Could you find any flaws in 
> PersistenceBrokerAbstractImpl?
> 
> regards,
> Armin
> 
> 
> Oliver Mihatsch wrote:
> 
>> Hi Armin,
>>
>> no, every thread and function creates a new Persistence Broker before 
>> any database interaction.
>>
>> Regards,
>> Oliver
>>
>> Armin Waibel wrote:
>>
>>> Hi Oliver,
>>>
>>> could it happen that
>>> de.virtualsolution.util.OJBUtil.retrieve(OJBUtil.java:174)
>>> and
>>> de.virtualsolution.util.OJBUtil.delete(OJBUtil.java:152)
>>> was called by concurrent threads at the same time (on the same PB 
>>> instance)?
>>>
>>> regsrds,
>>> Armin
>>>
>>> Oliver Mihatsch wrote:
>>>
>>>> Hm, this could be the cause, but not sure:
>>>>
>>>> java.lang.ArrayIndexOutOfBoundsException
>>>>     at java.lang.System.arraycopy(Native Method)
>>>>     at 
>>>> org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.addListener(PersistenceBrokerAbstractImpl.java:112) 
>>>>
>>>>     at 
>>>> org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.addListener(PersistenceBrokerAbstractImpl.java:87) 
>>>>
>>>>     at 
>>>> org.apache.ojb.broker.accesslayer.RsIterator.<init>(RsIterator.java:205) 
>>>>
>>>>     at 
>>>> org.apache.ojb.broker.core.RsIteratorFactoryImpl.createRsIterator(RsIteratorFactoryImpl.java:58) 
>>>>
>>>>     at 
>>>> org.apache.ojb.broker.core.PersistenceBrokerImpl.getRsIteratorFromQuery(PersistenceBrokerImpl.java:1808) 
>>>>
>>>>     at 
>>>> org.apache.ojb.broker.core.PersistenceBrokerImpl.getIteratorFromQuery(PersistenceBrokerImpl.java:1333) 
>>>>
>>>>     at 
>>>> org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryReferenceBroker.java:111) 
>>>>
>>>>     at 
>>>> org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryReferenceBroker.java:233) 
>>>>
>>>>     at 
>>>> org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryReferenceBroker.java:269) 
>>>>
>>>>     at 
>>>> org.apache.ojb.broker.core.QueryReferenceBroker.retrieveCollection(QueryReferenceBroker.java:566) 
>>>>
>>>>     at 
>>>> org.apache.ojb.broker.core.PersistenceBrokerImpl.refreshRelationships(PersistenceBrokerImpl.java:1184) 
>>>>
>>>>     at 
>>>> org.apache.ojb.broker.core.PersistenceBrokerImpl.doGetObjectByIdentity(PersistenceBrokerImpl.java:1378) 
>>>>
>>>>     at 
>>>> org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByIdentity(PersistenceBrokerImpl.java:1346) 
>>>>
>>>>     at 
>>>> org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByQuery(PersistenceBrokerImpl.java:1435) 
>>>>
>>>>     at 
>>>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(DelegatingPersistenceBroker.java:307) 
>>>>
>>>>     at 
>>>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(DelegatingPersistenceBroker.java:307) 
>>>>
>>>>     at de.virtualsolution.util.OJBUtil.retrieve(OJBUtil.java:174)
>>>> ...
>>>>
>>>>
>>>>
>>>> Oliver Mihatsch wrote:
>>>>
>>>>> Hello,
>>>>>
>>>>> in a web application I developed there is a strange error which 
>>>>> occurs every 2 Weeks - 2 Months:
>>>>>
>>>>> java.lang.NullPointerException
>>>>>     at 
>>>>> org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.notifiyStateListener(PersistenceBrokerAbstractImpl.java:350) 
>>>>>
>>>>>     at 
>>>>> org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.fireBrokerEvent(PersistenceBrokerAbstractImpl.java:305) 
>>>>>
>>>>>     at 
>>>>> org.apache.ojb.broker.core.PersistenceBrokerImpl.beginTransaction(PersistenceBrokerImpl.java:400) 
>>>>>
>>>>>     at 
>>>>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.beginTransaction(DelegatingPersistenceBroker.java:139) 
>>>>>
>>>>>     at 
>>>>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.beginTransaction(DelegatingPersistenceBroker.java:139) 
>>>>>
>>>>>     at de.virtualsolution.util.OJBUtil.delete(OJBUtil.java:152)
>>>>> ....
>>>>>
>>>>> OJB Version I'm using is ojb-1.0.1. It is self compiled to get the 
>>>>> debug informations.
>>>>> After the error occurs every ojb db access fails with this NPE. 
>>>>> Only restarting the application helps.
>>>>>
>>>>> The error is reproducable, but it takes ca. 2 Weeks - 2 Months to 
>>>>> get it ;)
>>>>> I think only insert/update/delete actions produces it, but not sure.
>>>>>
>>>>> Thanks in advance,
>>>>> Oliver Mihatsch
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
>>>>> For additional commands, e-mail: ojb-user-help@db.apache.org
>>>>>
>>>>>
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
>>>> For additional commands, e-mail: ojb-user-help@db.apache.org
>>>>
>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
>>> For additional commands, e-mail: ojb-user-help@db.apache.org
>>>
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
>> For additional commands, e-mail: ojb-user-help@db.apache.org
>>
>>
>>
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
> 
> 
> 

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


Re: NullPointer in PersistenceBrokerAbstractImpl

Posted by Armin Waibel <ar...@apache.org>.
Hi,

strange, I kind find a reson how these exception can happen

java.lang.ArrayIndexOutOfBoundsException
     at java.lang.System.arraycopy(Native Method)
     at 
org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.addListener(PersistenceBrokerAbstractImpl.java:112)
     at 
org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.addListener(PersistenceBrokerAbstractImpl.java:87)
     at 
org.apache.ojb.broker.accesslayer.RsIterator.<init>(RsIterator.java:205)

or

java.lang.NullPointerException
     at 
org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.notifiyStateListener(PersistenceBrokerAbstractImpl.java:350)
     at 
org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.fireBrokerEvent(PersistenceBrokerAbstractImpl.java:305)
     at 
org.apache.ojb.broker.core.PersistenceBrokerImpl.beginTransaction(PersistenceBrokerImpl.java:400) 


Think the only reason can be a concurrency problem. Do you use any 
daemon/timer objects? Since you can't reproduce this issue with an test 
case it's hard to find out the reason. Could you find any flaws in 
PersistenceBrokerAbstractImpl?

regards,
Armin


Oliver Mihatsch wrote:
> Hi Armin,
> 
> no, every thread and function creates a new Persistence Broker before 
> any database interaction.
> 
> Regards,
> Oliver
> 
> Armin Waibel wrote:
> 
>> Hi Oliver,
>>
>> could it happen that
>> de.virtualsolution.util.OJBUtil.retrieve(OJBUtil.java:174)
>> and
>> de.virtualsolution.util.OJBUtil.delete(OJBUtil.java:152)
>> was called by concurrent threads at the same time (on the same PB 
>> instance)?
>>
>> regsrds,
>> Armin
>>
>> Oliver Mihatsch wrote:
>>
>>> Hm, this could be the cause, but not sure:
>>>
>>> java.lang.ArrayIndexOutOfBoundsException
>>>     at java.lang.System.arraycopy(Native Method)
>>>     at 
>>> org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.addListener(PersistenceBrokerAbstractImpl.java:112) 
>>>
>>>     at 
>>> org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.addListener(PersistenceBrokerAbstractImpl.java:87) 
>>>
>>>     at 
>>> org.apache.ojb.broker.accesslayer.RsIterator.<init>(RsIterator.java:205)
>>>     at 
>>> org.apache.ojb.broker.core.RsIteratorFactoryImpl.createRsIterator(RsIteratorFactoryImpl.java:58) 
>>>
>>>     at 
>>> org.apache.ojb.broker.core.PersistenceBrokerImpl.getRsIteratorFromQuery(PersistenceBrokerImpl.java:1808) 
>>>
>>>     at 
>>> org.apache.ojb.broker.core.PersistenceBrokerImpl.getIteratorFromQuery(PersistenceBrokerImpl.java:1333) 
>>>
>>>     at 
>>> org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryReferenceBroker.java:111) 
>>>
>>>     at 
>>> org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryReferenceBroker.java:233) 
>>>
>>>     at 
>>> org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryReferenceBroker.java:269) 
>>>
>>>     at 
>>> org.apache.ojb.broker.core.QueryReferenceBroker.retrieveCollection(QueryReferenceBroker.java:566) 
>>>
>>>     at 
>>> org.apache.ojb.broker.core.PersistenceBrokerImpl.refreshRelationships(PersistenceBrokerImpl.java:1184) 
>>>
>>>     at 
>>> org.apache.ojb.broker.core.PersistenceBrokerImpl.doGetObjectByIdentity(PersistenceBrokerImpl.java:1378) 
>>>
>>>     at 
>>> org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByIdentity(PersistenceBrokerImpl.java:1346) 
>>>
>>>     at 
>>> org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByQuery(PersistenceBrokerImpl.java:1435) 
>>>
>>>     at 
>>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(DelegatingPersistenceBroker.java:307) 
>>>
>>>     at 
>>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(DelegatingPersistenceBroker.java:307) 
>>>
>>>     at de.virtualsolution.util.OJBUtil.retrieve(OJBUtil.java:174)
>>> ...
>>>
>>>
>>>
>>> Oliver Mihatsch wrote:
>>>
>>>> Hello,
>>>>
>>>> in a web application I developed there is a strange error which 
>>>> occurs every 2 Weeks - 2 Months:
>>>>
>>>> java.lang.NullPointerException
>>>>     at 
>>>> org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.notifiyStateListener(PersistenceBrokerAbstractImpl.java:350) 
>>>>
>>>>     at 
>>>> org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.fireBrokerEvent(PersistenceBrokerAbstractImpl.java:305) 
>>>>
>>>>     at 
>>>> org.apache.ojb.broker.core.PersistenceBrokerImpl.beginTransaction(PersistenceBrokerImpl.java:400) 
>>>>
>>>>     at 
>>>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.beginTransaction(DelegatingPersistenceBroker.java:139) 
>>>>
>>>>     at 
>>>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.beginTransaction(DelegatingPersistenceBroker.java:139) 
>>>>
>>>>     at de.virtualsolution.util.OJBUtil.delete(OJBUtil.java:152)
>>>> ....
>>>>
>>>> OJB Version I'm using is ojb-1.0.1. It is self compiled to get the 
>>>> debug informations.
>>>> After the error occurs every ojb db access fails with this NPE. Only 
>>>> restarting the application helps.
>>>>
>>>> The error is reproducable, but it takes ca. 2 Weeks - 2 Months to 
>>>> get it ;)
>>>> I think only insert/update/delete actions produces it, but not sure.
>>>>
>>>> Thanks in advance,
>>>> Oliver Mihatsch
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
>>>> For additional commands, e-mail: ojb-user-help@db.apache.org
>>>>
>>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
>>> For additional commands, e-mail: ojb-user-help@db.apache.org
>>>
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
>> For additional commands, e-mail: ojb-user-help@db.apache.org
>>
>>
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
> 
> 
> 

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


Re: NullPointer in PersistenceBrokerAbstractImpl

Posted by Oliver Mihatsch <o....@virtual-solution.de>.
Hi Armin,

no, every thread and function creates a new Persistence Broker before any database interaction.

Regards,
Oliver

Armin Waibel wrote:
> Hi Oliver,
> 
> could it happen that
> de.virtualsolution.util.OJBUtil.retrieve(OJBUtil.java:174)
> and
> de.virtualsolution.util.OJBUtil.delete(OJBUtil.java:152)
> was called by concurrent threads at the same time (on the same PB 
> instance)?
> 
> regsrds,
> Armin
> 
> Oliver Mihatsch wrote:
> 
>> Hm, this could be the cause, but not sure:
>>
>> java.lang.ArrayIndexOutOfBoundsException
>>     at java.lang.System.arraycopy(Native Method)
>>     at 
>> org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.addListener(PersistenceBrokerAbstractImpl.java:112) 
>>
>>     at 
>> org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.addListener(PersistenceBrokerAbstractImpl.java:87) 
>>
>>     at 
>> org.apache.ojb.broker.accesslayer.RsIterator.<init>(RsIterator.java:205)
>>     at 
>> org.apache.ojb.broker.core.RsIteratorFactoryImpl.createRsIterator(RsIteratorFactoryImpl.java:58) 
>>
>>     at 
>> org.apache.ojb.broker.core.PersistenceBrokerImpl.getRsIteratorFromQuery(PersistenceBrokerImpl.java:1808) 
>>
>>     at 
>> org.apache.ojb.broker.core.PersistenceBrokerImpl.getIteratorFromQuery(PersistenceBrokerImpl.java:1333) 
>>
>>     at 
>> org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryReferenceBroker.java:111) 
>>
>>     at 
>> org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryReferenceBroker.java:233) 
>>
>>     at 
>> org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryReferenceBroker.java:269) 
>>
>>     at 
>> org.apache.ojb.broker.core.QueryReferenceBroker.retrieveCollection(QueryReferenceBroker.java:566) 
>>
>>     at 
>> org.apache.ojb.broker.core.PersistenceBrokerImpl.refreshRelationships(PersistenceBrokerImpl.java:1184) 
>>
>>     at 
>> org.apache.ojb.broker.core.PersistenceBrokerImpl.doGetObjectByIdentity(PersistenceBrokerImpl.java:1378) 
>>
>>     at 
>> org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByIdentity(PersistenceBrokerImpl.java:1346) 
>>
>>     at 
>> org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByQuery(PersistenceBrokerImpl.java:1435) 
>>
>>     at 
>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(DelegatingPersistenceBroker.java:307) 
>>
>>     at 
>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(DelegatingPersistenceBroker.java:307) 
>>
>>     at de.virtualsolution.util.OJBUtil.retrieve(OJBUtil.java:174)
>> ...
>>
>>
>>
>> Oliver Mihatsch wrote:
>>
>>> Hello,
>>>
>>> in a web application I developed there is a strange error which 
>>> occurs every 2 Weeks - 2 Months:
>>>
>>> java.lang.NullPointerException
>>>     at 
>>> org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.notifiyStateListener(PersistenceBrokerAbstractImpl.java:350) 
>>>
>>>     at 
>>> org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.fireBrokerEvent(PersistenceBrokerAbstractImpl.java:305) 
>>>
>>>     at 
>>> org.apache.ojb.broker.core.PersistenceBrokerImpl.beginTransaction(PersistenceBrokerImpl.java:400) 
>>>
>>>     at 
>>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.beginTransaction(DelegatingPersistenceBroker.java:139) 
>>>
>>>     at 
>>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.beginTransaction(DelegatingPersistenceBroker.java:139) 
>>>
>>>     at de.virtualsolution.util.OJBUtil.delete(OJBUtil.java:152)
>>> ....
>>>
>>> OJB Version I'm using is ojb-1.0.1. It is self compiled to get the 
>>> debug informations.
>>> After the error occurs every ojb db access fails with this NPE. Only 
>>> restarting the application helps.
>>>
>>> The error is reproducable, but it takes ca. 2 Weeks - 2 Months to get 
>>> it ;)
>>> I think only insert/update/delete actions produces it, but not sure.
>>>
>>> Thanks in advance,
>>> Oliver Mihatsch
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
>>> For additional commands, e-mail: ojb-user-help@db.apache.org
>>>
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
>> For additional commands, e-mail: ojb-user-help@db.apache.org
>>
>>
>>
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
> 
> 


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


Re: NullPointer in PersistenceBrokerAbstractImpl

Posted by Armin Waibel <ar...@apache.org>.
Hi Oliver,

could it happen that
de.virtualsolution.util.OJBUtil.retrieve(OJBUtil.java:174)
and
de.virtualsolution.util.OJBUtil.delete(OJBUtil.java:152)
was called by concurrent threads at the same time (on the same PB instance)?

regsrds,
Armin

Oliver Mihatsch wrote:
> Hm, this could be the cause, but not sure:
> 
> java.lang.ArrayIndexOutOfBoundsException
>     at java.lang.System.arraycopy(Native Method)
>     at 
> org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.addListener(PersistenceBrokerAbstractImpl.java:112) 
> 
>     at 
> org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.addListener(PersistenceBrokerAbstractImpl.java:87) 
> 
>     at 
> org.apache.ojb.broker.accesslayer.RsIterator.<init>(RsIterator.java:205)
>     at 
> org.apache.ojb.broker.core.RsIteratorFactoryImpl.createRsIterator(RsIteratorFactoryImpl.java:58) 
> 
>     at 
> org.apache.ojb.broker.core.PersistenceBrokerImpl.getRsIteratorFromQuery(PersistenceBrokerImpl.java:1808) 
> 
>     at 
> org.apache.ojb.broker.core.PersistenceBrokerImpl.getIteratorFromQuery(PersistenceBrokerImpl.java:1333) 
> 
>     at 
> org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryReferenceBroker.java:111) 
> 
>     at 
> org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryReferenceBroker.java:233) 
> 
>     at 
> org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryReferenceBroker.java:269) 
> 
>     at 
> org.apache.ojb.broker.core.QueryReferenceBroker.retrieveCollection(QueryReferenceBroker.java:566) 
> 
>     at 
> org.apache.ojb.broker.core.PersistenceBrokerImpl.refreshRelationships(PersistenceBrokerImpl.java:1184) 
> 
>     at 
> org.apache.ojb.broker.core.PersistenceBrokerImpl.doGetObjectByIdentity(PersistenceBrokerImpl.java:1378) 
> 
>     at 
> org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByIdentity(PersistenceBrokerImpl.java:1346) 
> 
>     at 
> org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByQuery(PersistenceBrokerImpl.java:1435) 
> 
>     at 
> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(DelegatingPersistenceBroker.java:307) 
> 
>     at 
> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(DelegatingPersistenceBroker.java:307) 
> 
>     at de.virtualsolution.util.OJBUtil.retrieve(OJBUtil.java:174)
> ...
> 
> 
> 
> Oliver Mihatsch wrote:
> 
>> Hello,
>>
>> in a web application I developed there is a strange error which occurs 
>> every 2 Weeks - 2 Months:
>>
>> java.lang.NullPointerException
>>     at 
>> org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.notifiyStateListener(PersistenceBrokerAbstractImpl.java:350) 
>>
>>     at 
>> org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.fireBrokerEvent(PersistenceBrokerAbstractImpl.java:305) 
>>
>>     at 
>> org.apache.ojb.broker.core.PersistenceBrokerImpl.beginTransaction(PersistenceBrokerImpl.java:400) 
>>
>>     at 
>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.beginTransaction(DelegatingPersistenceBroker.java:139) 
>>
>>     at 
>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.beginTransaction(DelegatingPersistenceBroker.java:139) 
>>
>>     at de.virtualsolution.util.OJBUtil.delete(OJBUtil.java:152)
>> ....
>>
>> OJB Version I'm using is ojb-1.0.1. It is self compiled to get the 
>> debug informations.
>> After the error occurs every ojb db access fails with this NPE. Only 
>> restarting the application helps.
>>
>> The error is reproducable, but it takes ca. 2 Weeks - 2 Months to get 
>> it ;)
>> I think only insert/update/delete actions produces it, but not sure.
>>
>> Thanks in advance,
>> Oliver Mihatsch
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
>> For additional commands, e-mail: ojb-user-help@db.apache.org
>>
>>
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
> 
> 
> 

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


Re: NullPointer in PersistenceBrokerAbstractImpl

Posted by Oliver Mihatsch <o....@virtual-solution.de>.
Hm, this could be the cause, but not sure:

java.lang.ArrayIndexOutOfBoundsException
	at java.lang.System.arraycopy(Native Method)
	at org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.addListener(PersistenceBrokerAbstractImpl.java:112)
	at org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.addListener(PersistenceBrokerAbstractImpl.java:87)
	at org.apache.ojb.broker.accesslayer.RsIterator.<init>(RsIterator.java:205)
	at org.apache.ojb.broker.core.RsIteratorFactoryImpl.createRsIterator(RsIteratorFactoryImpl.java:58)
	at org.apache.ojb.broker.core.PersistenceBrokerImpl.getRsIteratorFromQuery(PersistenceBrokerImpl.java:1808)
	at org.apache.ojb.broker.core.PersistenceBrokerImpl.getIteratorFromQuery(PersistenceBrokerImpl.java:1333)
	at org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryReferenceBroker.java:111)
	at org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryReferenceBroker.java:233)
	at org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryReferenceBroker.java:269)
	at org.apache.ojb.broker.core.QueryReferenceBroker.retrieveCollection(QueryReferenceBroker.java:566)
	at org.apache.ojb.broker.core.PersistenceBrokerImpl.refreshRelationships(PersistenceBrokerImpl.java:1184)
	at org.apache.ojb.broker.core.PersistenceBrokerImpl.doGetObjectByIdentity(PersistenceBrokerImpl.java:1378)
	at org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByIdentity(PersistenceBrokerImpl.java:1346)
	at org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByQuery(PersistenceBrokerImpl.java:1435)
	at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(DelegatingPersistenceBroker.java:307)
	at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(DelegatingPersistenceBroker.java:307)
	at de.virtualsolution.util.OJBUtil.retrieve(OJBUtil.java:174)
...



Oliver Mihatsch wrote:
> Hello,
> 
> in a web application I developed there is a strange error which occurs 
> every 2 Weeks - 2 Months:
> 
> java.lang.NullPointerException
>     at 
> org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.notifiyStateListener(PersistenceBrokerAbstractImpl.java:350) 
> 
>     at 
> org.apache.ojb.broker.core.PersistenceBrokerAbstractImpl.fireBrokerEvent(PersistenceBrokerAbstractImpl.java:305) 
> 
>     at 
> org.apache.ojb.broker.core.PersistenceBrokerImpl.beginTransaction(PersistenceBrokerImpl.java:400) 
> 
>     at 
> org.apache.ojb.broker.core.DelegatingPersistenceBroker.beginTransaction(DelegatingPersistenceBroker.java:139) 
> 
>     at 
> org.apache.ojb.broker.core.DelegatingPersistenceBroker.beginTransaction(DelegatingPersistenceBroker.java:139) 
> 
>     at de.virtualsolution.util.OJBUtil.delete(OJBUtil.java:152)
> ....
> 
> OJB Version I'm using is ojb-1.0.1. It is self compiled to get the debug 
> informations.
> After the error occurs every ojb db access fails with this NPE. Only 
> restarting the application helps.
> 
> The error is reproducable, but it takes ca. 2 Weeks - 2 Months to get it ;)
> I think only insert/update/delete actions produces it, but not sure.
> 
> Thanks in advance,
> Oliver Mihatsch
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
> 
> 


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