TAP5-2070 better to take no activation handler method as a way to accept empty 
activation context


Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/28e3321f
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/28e3321f
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/28e3321f

Branch: refs/heads/master
Commit: 28e3321f7865fb74cd36c78f3911bfbd9750ae77
Parents: 8d24cbd
Author: Massimo Lusetti <[email protected]>
Authored: Mon Aug 5 18:17:02 2013 +0200
Committer: Massimo Lusetti <[email protected]>
Committed: Mon Aug 5 19:48:15 2013 +0200

----------------------------------------------------------------------
 .../apache/tapestry5/internal/services/PageActivatorImpl.java  | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/28e3321f/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageActivatorImpl.java
----------------------------------------------------------------------
diff --git 
a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageActivatorImpl.java
 
b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageActivatorImpl.java
index 3b7742b..5ebdc7c 100644
--- 
a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageActivatorImpl.java
+++ 
b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageActivatorImpl.java
@@ -50,10 +50,14 @@ public class PageActivatorImpl implements PageActivator
 
                boolean handled = 
pageResources.triggerContextEvent(EventConstants.ACTIVATE, activationContext, 
callback);
 
+               boolean acceptEmpty = 
!pageResources.getComponentModel().handlesEvent(EventConstants.ACTIVATE) &&
+                                                               
activationContext.getCount() == 0;
+
                boolean checkUnknown = 
metaDataLocator.findMeta(MetaDataConstants.UNKNOWN_ACTIVATION_CONTEXT_CHECK,
                                                                                
                                pageResources, Boolean.class);
 
-               if ( !handled && checkUnknown && 
!pageResources.getComponentModel().handleActivationEventContext())
+               if ( !handled && !acceptEmpty && checkUnknown &&
+                               
!pageResources.getComponentModel().handleActivationEventContext())
                {
                        logger.info("Page {} required an exact activation 
context, let's handle this", pageResources.getPageName());
                        
unknownActivationContextHandler.handleUnknownContext(pageResources, 
activationContext);

Reply via email to