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'.
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<mgrigo...@apache.org>  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<seb...@gmail.com>  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



Reply via email to