On Wed, May 30, 2012 at 10:48 AM, Andrea Del Bene <[email protected]> wrote:
> Hi,
>
> is it possible that the synchronization problem is due to a concurrent use
> of DataStore inside AsynchronousDataStore? For example this could happen if
> both AsynchronousDataStore and PageSavingRunnable call
> 'dataStore.storeData'.

Yes, could be.
We need some sort of synchronization in this code for sure.

>
>> Hi,
>>
>> I'm not able so far to reproduce the problem. I tried with
>> wicket-examples, our app and wicket-jquery-ui examples.
>>
>> But I see how this can happen!
>>
>> The new inversed index should be in sync with the normal index all the
>> time, i.e. when the normal is null the inversed is null too.
>> But there is no synchronization in this code!
>> There is a PageWindowManager per http session so there is a chance for
>> a concurrency problem when different concurrent requests work with
>> different page instances.
>>
>> We need ConcurrentBiMap or some synchronizations around the place...
>>
>>
>> On Tue, May 29, 2012 at 10:06 PM, Martin Grigorov<[email protected]>
>>  wrote:
>>>
>>> Hi Sebastien,
>>>
>>> This looks like a problem in the new code I added in PageWindowManager.
>>> Thanks for the report!
>>> I'll check it tomorrow and if there really is a problem then I'll
>>> restart the release procedure.
>>>
>>> On Tue, May 29, 2012 at 9:59 PM, Sebastien<[email protected]>  wrote:
>>>>
>>>> Dear Wicket Team,
>>>>
>>>> I've got a silent NPE with the 1.5.7. with tomcat running under eclipse.
>>>> It
>>>> occurs only once, on the "first" page being accessed (in fact it is not
>>>> really the first accessed page, because it does not occurs on every
>>>> pages.
>>>> But, when it  occurs, it is only one time but always for the same pages.
>>>> At
>>>> least for the exception bellow.
>>>>
>>>> I also had a bigger stack trace which happens every time on every
>>>> "impacted" pages. I unfortunately cannot give you the stack trace as I
>>>> do
>>>> not know how to repro (maybe multiple hot-deploy, I don't know). But I
>>>> saw
>>>> in the NPE that the exception came from the same line (at
>>>>
>>>> org.apache.wicket.pageStore.PageWindowManager.putWindowIndex(PageWindowManager.java:92)
>>>>
>>>> It does not repro while using embedded jetty.
>>>>
>>>>
>>>> ********************************************************************
>>>> *** WARNING: Wicket is running in DEVELOPMENT mode.              ***
>>>> ***                               ^^^^^^^^^^^                    ***
>>>> *** Do NOT deploy to your live server(s) without changing this.  ***
>>>> *** See Application#getConfigurationType() for more information. ***
>>>> ********************************************************************
>>>> May 29, 2012 8:38:02 PM org.apache.coyote.AbstractProtocol start
>>>> INFO: Starting ProtocolHandler ["http-bio-8080"]
>>>> May 29, 2012 8:38:02 PM org.apache.coyote.AbstractProtocol start
>>>> INFO: Starting ProtocolHandler ["ajp-bio-8009"]
>>>> May 29, 2012 8:38:02 PM org.apache.catalina.startup.Catalina start
>>>> INFO: Server startup in 4853 ms
>>>> INFO  - PropertiesFactory          - Loading properties files from
>>>>
>>>> file:/home/sebastien/Java/apache-tomcat-7.0.23/webapps/jquery-ui-samples/WEB-INF/classes/com/googlecode/wicket/jquery/ui/samples/SampleApplication.properties
>>>> with loader
>>>> org.apache.wicket.resource.IsoPropertiesFilePropertiesLoader@889ec59
>>>> Exception in thread "Wicket-PageSavingThread"
>>>> java.lang.NullPointerException
>>>>    at
>>>>
>>>> org.apache.wicket.pageStore.PageWindowManager.putWindowIndex(PageWindowManager.java:92)
>>>>    at
>>>>
>>>> org.apache.wicket.pageStore.PageWindowManager.createPageWindow(PageWindowManager.java:396)
>>>>    at
>>>>
>>>> org.apache.wicket.pageStore.DiskDataStore$SessionEntry.savePage(DiskDataStore.java:326)
>>>>    at
>>>>
>>>> org.apache.wicket.pageStore.DiskDataStore.storeData(DiskDataStore.java:176)
>>>>    at
>>>>
>>>> org.apache.wicket.pageStore.AsynchronousDataStore$PageSavingRunnable.run(AsynchronousDataStore.java:348)
>>>>    at java.lang.Thread.run(Thread.java:679)
>>>>
>>>>
>>>> As usual, I do not exclude that I may have done something bad, but just
>>>> in
>>>> case...
>>>>
>>>> Best regards,
>>>> Sebastien.
>>>
>>>
>>>
>>> --
>>> Martin Grigorov
>>> jWeekend
>>> Training, Consulting, Development
>>> http://jWeekend.com
>>
>>
>>
>



-- 
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com

Reply via email to