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
