You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by cr...@apache.org on 2007/09/18 09:03:20 UTC

svn commit: r576735 - /beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowControllerFactory.java

Author: crogers
Date: Tue Sep 18 00:03:19 2007
New Revision: 576735

URL: http://svn.apache.org/viewvc?rev=576735&view=rev
Log:
Add a runtime check in FlowControllerFactory to ensure that a global.Global class inherits from SharedFlowController before trying to create the shared flow.  BEEHIVE-1205

Tests: NetUI BVT (WinXP passed)


Modified:
    beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowControllerFactory.java

Modified: beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowControllerFactory.java
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowControllerFactory.java?rev=576735&r1=576734&r2=576735&view=diff
==============================================================================
--- beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowControllerFactory.java (original)
+++ beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowControllerFactory.java Tue Sep 18 00:03:19 2007
@@ -689,13 +689,21 @@
             try
             {
                 FlowControllerFactory factory = get( servletContext );
-                SharedFlowController sf =
-                    factory.createSharedFlow( new RequestContext( request, response ), PageFlowConstants.GLOBALAPP_CLASSNAME );
+                Class sharedFlowClass = factory.getFlowControllerClass(PageFlowConstants.GLOBALAPP_CLASSNAME);
+                if (!SharedFlowController.class.isAssignableFrom(sharedFlowClass)) {
+                    LOG.info("Class " + PageFlowConstants.GLOBALAPP_CLASSNAME + " is not an instance of "
+                            + SharedFlowController.class.getName());
+                    servletContext.setAttribute(NO_GLOBAL_APP_KEY, Boolean.TRUE);
+                    return null;
+                }
 
+                SharedFlowController sf =
+                    factory.createSharedFlow(new RequestContext(request, response), sharedFlowClass);
                 if ( ! ( sf instanceof GlobalApp ) )
                 {
                     LOG.error( "Class " + PageFlowConstants.GLOBALAPP_CLASSNAME + " is not an instance of "
                                 + GlobalApp.class.getName() );
+                    servletContext.setAttribute(NO_GLOBAL_APP_KEY, Boolean.TRUE);
                     return null;
                 }