Updated Branches:
  refs/heads/master 549b148f9 -> ae473c840

FIXED - TAP5-2267: Contributing ExceptionHandlerAssistant instances to
RequestExceptionHandler is broken 
- apply Dragan Sahpaski's patch with test that allows contributing
assistant instances to the DefautlRequestExceptionHandler


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

Branch: refs/heads/master
Commit: ae473c840b9f425d8470dd0e8fd44d99e20be1a0
Parents: 549b148
Author: kaosko <kao...@apache.org>
Authored: Sat Dec 28 23:39:06 2013 -0800
Committer: kaosko <kao...@apache.org>
Committed: Sat Dec 28 23:39:06 2013 -0800

----------------------------------------------------------------------
 .../internal/services/DefaultRequestExceptionHandler.java    | 2 +-
 .../services/DefaultRequestExceptionHandlerTest.java         | 8 +++++++-
 2 files changed, 8 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ae473c84/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DefaultRequestExceptionHandler.java
----------------------------------------------------------------------
diff --git 
a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DefaultRequestExceptionHandler.java
 
b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DefaultRequestExceptionHandler.java
index 897b3b2..62a8708 100644
--- 
a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DefaultRequestExceptionHandler.java
+++ 
b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DefaultRequestExceptionHandler.java
@@ -113,7 +113,7 @@ public class DefaultRequestExceptionHandler implements 
RequestExceptionHandler
                 throw new IllegalArgumentException(Throwable.class.getName() + 
" is the only allowable key type but " + entry.getKey().getName()
                         + " was contributed");
 
-            if (ExceptionHandlerAssistant.class.isAssignableFrom((Class) 
entry.getValue()))
+            if (entry.getValue() instanceof Class && 
ExceptionHandlerAssistant.class.isAssignableFrom((Class) entry.getValue()))
             {
                 @SuppressWarnings("unchecked")
                 Class<ExceptionHandlerAssistant> handlerType = 
(Class<ExceptionHandlerAssistant>) entry.getValue();

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ae473c84/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/DefaultRequestExceptionHandlerTest.java
----------------------------------------------------------------------
diff --git 
a/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/DefaultRequestExceptionHandlerTest.java
 
b/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/DefaultRequestExceptionHandlerTest.java
index b9bf0c9..d458e1c 100644
--- 
a/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/DefaultRequestExceptionHandlerTest.java
+++ 
b/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/DefaultRequestExceptionHandlerTest.java
@@ -75,6 +75,13 @@ public class DefaultRequestExceptionHandlerTest extends 
InternalBaseTestCase {
         componentClassResolver = mockComponentClassResolver();
         linkSource = mockLinkSource();
         serviceResources = mockServiceResources();
+           mockConfiguration.put(AccessControlException.class, MyPage.class);
+        mockConfiguration.put(MyContextAwareException.class, new 
ExceptionHandlerAssistant() {
+                                 public Object 
handleRequestException(Throwable exception, List<Object> exceptionContext)
+                                     throws IOException {
+                                 return null;
+                             }
+                         });
         exceptionHandler = new DefaultRequestExceptionHandler(pageCache, 
renderer, logger, "exceptionpage", request, response, componentClassResolver, 
linkSource, serviceResources, mockConfiguration);
     }
        
@@ -117,7 +124,6 @@ public class DefaultRequestExceptionHandlerTest extends 
InternalBaseTestCase {
        
        @Test
        public void handleRequestExceptionWithConfiguredPage() throws 
IOException {
-           mockConfiguration.put(AccessControlException.class, MyPage.class);
            train_resolvePageClassNameToPageName(componentClassResolver, 
MyPage.class.getName(), "mypage" );
            Link link = mockLink();
         expect(linkSource.createPageRenderLink("mypage", false, new 
Object[]{"accesscontrol"})).andReturn(link);

Reply via email to