Author: jdonnerstag
Date: Mon Feb 23 19:16:25 2009
New Revision: 747103
URL: http://svn.apache.org/viewvc?rev=747103&view=rev
Log:
fixed WICKET-2107 Misplaced IllegalStateExceptions when accessing stateful URL
with different session
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/listener/BehaviorRequestTarget.java
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/listener/BehaviorRequestTarget.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/listener/BehaviorRequestTarget.java?rev=747103&r1=747102&r2=747103&view=diff
==============================================================================
---
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/listener/BehaviorRequestTarget.java
(original)
+++
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/listener/BehaviorRequestTarget.java
Mon Feb 23 19:16:25 2009
@@ -24,6 +24,7 @@
import org.apache.wicket.RequestListenerInterface;
import org.apache.wicket.behavior.IBehavior;
import org.apache.wicket.behavior.IBehaviorListener;
+import org.apache.wicket.protocol.http.PageExpiredException;
import org.apache.wicket.request.RequestParameters;
/**
@@ -82,7 +83,8 @@
final String id = getRequestParameters().getBehaviorId();
if (id == null)
{
- throw new IllegalStateException(
+ // wicket-2107
+ throw new PageExpiredException(
"Parameter behaviorId was not provided: unable
to locate listener. Component: " +
component.toString());
}
@@ -93,16 +95,21 @@
if (behaviors.size() > idAsInt)
{
- behaviorListener =
(IBehaviorListener)behaviors.get(idAsInt);
+ IBehavior behavior = behaviors.get(idAsInt);
+ if (behavior instanceof IBehaviorListener)
+ {
+ behaviorListener = (IBehaviorListener)behavior;
+ }
}
+
if (behaviorListener == null)
{
- throw new IllegalStateException("No behavior listener
found with behaviorId " + id +
+ // wicket-2107
+ throw new PageExpiredException("No behavior listener
found with behaviorId " + id +
"; Component: " + component.toString());
}
// Invoke the interface method
behaviorListener.onRequest();
-
}
}
\ No newline at end of file