Hi all,

Just noticed that when using HttpSessionDataStore pages are not saved.
This happens when Wicket-PageSavingThread 
(org.apache.wicket.pageStore.AsynchronousDataStore)
tries to store entry's data to the dataStore. In this case store happens to be 
HttpSessionDataStore.

When trying to get pageTable at 
org.apache.wicket.pageStore.memory.HttpSessionDataStore:138
Session.exists() returns always false. It seems that code in 
HttpSessionDataStore
expects the call for storing the page coming from user's thread that has 
correct threadLocal?

The error that is printed to the log goes something like:
"ERROR - HttpSessionDataStore       - Cannot store the data for page with id 
'0' in session with id '1x6veaq6f0b23trchiio53f3g'"

Store is created pretty much the way it is described in HttpSessionDataStore's 
javadocs:

                             setPageManagerProvider(new 
DefaultPageManagerProvider(this) {

                                                          @Override
                                                          protected IDataStore 
newDataStore()
                                                          {
                                                                                
       return new HttpSessionDataStore(new DefaultPageManagerContext(), new 
PageNumberEvictionStrategy(12));
                                                          }
                             });

Problem goes away by setting  to synchronous action by: 
getStoreSettings().setAsynchronous(false);

Now the question is this the correct way to avoid this problem? Or should 
asynchronous saving work also with HttpSessionDataStore?
So is this a bug and should I open jira issue and provide quickstart 
demonstrating the problem?

Regards,
Mikko Pukki

Reply via email to