Re: [Vote] Release Apache Wicket 1.5.7
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 -- Martin Grigorov jWeekend Training, Consulting, Development http://jWeekend.com
Re: [Vote] Release Apache Wicket 1.5.7
This vote is canceled due to this potential problem. On Wed, May 30, 2012 at 10:19 AM, Martin Grigorov mgrigo...@apache.org wrote: 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 -- Martin Grigorov jWeekend Training, Consulting, Development http://jWeekend.com -- Martin Grigorov jWeekend Training, Consulting, Development http://jWeekend.com
Re: [Vote] Release Apache Wicket 1.5.7
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 Grigorovmgrigo...@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, Sebastienseb...@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
Re: [Vote] Release Apache Wicket 1.5.7
On Wed, May 30, 2012 at 10:48 AM, Andrea Del Bene adelb...@ciseonweb.it 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 Grigorovmgrigo...@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, Sebastienseb...@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 -- Martin Grigorov jWeekend Training, Consulting, Development http://jWeekend.com
Re: [Vote] Release Apache Wicket 1.5.7
I don't wanna be too simplistic or too optimistic ( :-) ), but it should be enough to make 'synchronized' the public methods of PageWindowManager...This shouldn't cause performance issues since we have only few (two?) threads per user and is better then building a complex error-prone implementation of a synchronized bi-directional map. Yes, could be. We need some sort of synchronization in this code for sure.
Re: [Vote] Release Apache Wicket 1.5.7
I agree. This is what I'm testing currently. Actually only the private methods which use the maps need to be synchronized. But since I wasn't able to reproduce the problem and I have no time now to write a new multithreaded unit test for PageWindowManager I'm not 100% certain that the issue will be solved. Even DiskDataStoreTest doesn't reproduce it... On Wed, May 30, 2012 at 12:40 PM, Andrea Del Bene adelb...@ciseonweb.it wrote: I don't wanna be too simplistic or too optimistic ( :-) ), but it should be enough to make 'synchronized' the public methods of PageWindowManager...This shouldn't cause performance issues since we have only few (two?) threads per user and is better then building a complex error-prone implementation of a synchronized bi-directional map. Yes, could be. We need some sort of synchronization in this code for sure. -- Martin Grigorov jWeekend Training, Consulting, Development http://jWeekend.com
Re: [Vote] Release Apache Wicket 1.5.7
Hello Martin, If the git repo is up-to-date, I can test it this evening. Please let me know. Best regards, Sebastien On Wed, May 30, 2012 at 11:47 AM, Martin Grigorov mgrigo...@apache.orgwrote: I agree. This is what I'm testing currently. Actually only the private methods which use the maps need to be synchronized. But since I wasn't able to reproduce the problem and I have no time now to write a new multithreaded unit test for PageWindowManager I'm not 100% certain that the issue will be solved. Even DiskDataStoreTest doesn't reproduce it... On Wed, May 30, 2012 at 12:40 PM, Andrea Del Bene adelb...@ciseonweb.it wrote: I don't wanna be too simplistic or too optimistic ( :-) ), but it should be enough to make 'synchronized' the public methods of PageWindowManager...This shouldn't cause performance issues since we have only few (two?) threads per user and is better then building a complex error-prone implementation of a synchronized bi-directional map. Yes, could be. We need some sort of synchronization in this code for sure. -- Martin Grigorov jWeekend Training, Consulting, Development http://jWeekend.com
Re: [Vote] Release Apache Wicket 1.5.7
Please take a look at WICKET-4577 before building a new 1.5.7
[Vote] Release Apache Wicket 1.5.7 (build 2)
This vote is to release Apache Wicket 1.5.7 Git repo http://git-wip-us.apache.org/repos/asf/wicket.git Branch name build/wicket-1.5.7 Archived and signed Git repo http://people.apache.org/~mgrigorov/wicket-1.5.7/ Changelog https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310561version=12321241 This vote ends Saturday, June 2 at 17:00 (GMT+2) Please test the release and offer your vote. The Wicket team!
Re: [Vote] Release Apache Wicket 1.5.7
Hello Martin, As you did not repro the issue, I wanted to be sure it was repro on my side before testing the fix. The fact is that it was really difficult to reproduce: I had to make a really heavy life to tomcat for the exception to be thrown. (but when it is thrown once, it is thrown each time the server starts and the first page is accessed). Then, I rebuilt 1.5.7 from new sources, rebuilt my project and restarted tomcat. No exception thrown, even after having tested the most I was able to do. So I think I can say that the issue is fixed. Thanks best regards, Sebastien. On Wed, May 30, 2012 at 3:14 PM, Martin Grigorov mgrigo...@apache.orgwrote: I made all public method of PageWindowManager synchronized as Andrea suggested. @Sebastien: please try 1.5-SNAPSHOT or 1.5.7 second build which I'll run now. On Wed, May 30, 2012 at 3:06 PM, Andrea Del Bene adelb...@ciseonweb.it wrote: Please take a look at WICKET-4577 before building a new 1.5.7 -- Martin Grigorov jWeekend Training, Consulting, Development http://jWeekend.com
Looking for help with wicketstuff-core releases
Hello, I've been doing the wicketstuff-core builds since May 2010 and I've been pretty selfish in that I only added myself to the list of users allowed to publish org.wicketstuff artifacts through the oss.sonatype.org infrastructure. My wife had twin boys this past January so I have found that my available free time has suddenly gone to zero. I'd like to find one or more volunteers to take over the release process for wicketstuff-core or at least part of it (Maybe one person per branch) so that releases are more regular again. The best way for frequent releases is to take some piece of your application and then put it into wicketstuff then when you need new features, etc for a real work release you are extremely motivated to cut a wicketstuff-core release :) I will still keep the ci.wicketstuff.org jenkins instance running and hopefully in a few months I will have better time management and can get back into doing some releases myself. Next Steps: 1. create an account at https://issues.sonatype.org then sent me your username and I will update the ticket and get your account permissioned to be able to release org.wicketstuff artifacts. Thanks, Mike