Author: mgrigorov
Date: Thu Jul 14 08:42:40 2011
New Revision: 1146600
URL: http://svn.apache.org/viewvc?rev=1146600&view=rev
Log:
WICKET-3900 AsynchronousDataStoreTest is failing randomly
Add a check for 'null' when iterating over the non-submitted tasks.
A task may be submitted during the iteration and in this case
ThreadPoolExecutor#getQueue().iretator().next() may return null.
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/AsynchronousDataStore.java
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/AsynchronousDataStore.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/AsynchronousDataStore.java?rev=1146600&r1=1146599&r2=1146600&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/AsynchronousDataStore.java
(original)
+++
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/AsynchronousDataStore.java
Thu Jul 14 08:42:40 2011
@@ -88,12 +88,16 @@ public class AsynchronousDataStore imple
for (Runnable runnable : savePagesExecutor.getQueue())
{
StoreEntryRunnable storeEntryRunnable =
(StoreEntryRunnable)runnable;
- Entry cursorEntry = storeEntryRunnable.getEntry();
-
- if (cursorEntry.getPageId() == pageId &&
cursorEntry.getSessionId().equals(sessionId))
+ if (storeEntryRunnable != null)
{
- entry = cursorEntry;
- break;
+ Entry cursorEntry =
storeEntryRunnable.getEntry();
+
+ if (cursorEntry.getPageId() == pageId &&
+
cursorEntry.getSessionId().equals(sessionId))
+ {
+ entry = cursorEntry;
+ break;
+ }
}
}
@@ -129,11 +133,15 @@ public class AsynchronousDataStore imple
for (Runnable runnable : savePagesExecutor.getQueue())
{
StoreEntryRunnable storeEntryRunnable =
(StoreEntryRunnable)runnable;
- Entry cursorEntry = storeEntryRunnable.getEntry();
-
- if (cursorEntry.getPageId() == pageId &&
cursorEntry.getSessionId().equals(sessionId))
+ if (storeEntryRunnable != null)
{
- savePagesExecutor.remove(runnable);
+ Entry cursorEntry =
storeEntryRunnable.getEntry();
+
+ if (cursorEntry.getPageId() == pageId &&
+
cursorEntry.getSessionId().equals(sessionId))
+ {
+ savePagesExecutor.remove(runnable);
+ }
}
}
@@ -148,11 +156,14 @@ public class AsynchronousDataStore imple
for (Runnable runnable : savePagesExecutor.getQueue())
{
StoreEntryRunnable storeEntryRunnable =
(StoreEntryRunnable)runnable;
- Entry cursorEntry = storeEntryRunnable.getEntry();
-
- if (cursorEntry.getSessionId().equals(sessionId))
+ if (storeEntryRunnable != null)
{
- savePagesExecutor.remove(runnable);
+ Entry cursorEntry =
storeEntryRunnable.getEntry();
+
+ if
(cursorEntry.getSessionId().equals(sessionId))
+ {
+ savePagesExecutor.remove(runnable);
+ }
}
}