You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by cr...@apache.org on 2005/09/18 02:46:21 UTC

svn commit: r289875 - /struts/shale/trunk/core-library/src/java/org/apache/shale/tiles/TilesViewHandler.java

Author: craigmcc
Date: Sat Sep 17 17:46:18 2005
New Revision: 289875

URL: http://svn.apache.org/viewcvs?rev=289875&view=rev
Log:
Make TilesViewHandler work correctly even in a portlet environment, by skipping
the tile lookup (instead of throwing a class cast exception).

PR:  Bugzilla #36521
Submitted by:  Ronald Holshausen <uglyog AT gmail.com>


Modified:
    struts/shale/trunk/core-library/src/java/org/apache/shale/tiles/TilesViewHandler.java

Modified: struts/shale/trunk/core-library/src/java/org/apache/shale/tiles/TilesViewHandler.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/core-library/src/java/org/apache/shale/tiles/TilesViewHandler.java?rev=289875&r1=289874&r2=289875&view=diff
==============================================================================
--- struts/shale/trunk/core-library/src/java/org/apache/shale/tiles/TilesViewHandler.java (original)
+++ struts/shale/trunk/core-library/src/java/org/apache/shale/tiles/TilesViewHandler.java Sat Sep 17 17:46:18 2005
@@ -261,24 +261,27 @@
 
       ExternalContext externalContext = FacesContext.getCurrentInstance()
                                                     .getExternalContext();
-      ServletRequest request = (ServletRequest)externalContext.getRequest();
-      ServletContext servletContext = (ServletContext)externalContext.
-                                                            getContext();
+      Object request = externalContext.getRequest();
+      Object context = externalContext.getContext();
       ComponentDefinition tile = null;
-      try {
-         tile = TilesUtil.getDefinition(name, request, servletContext);
-      }
-      catch(NoSuchDefinitionException  nsex) { /* not here */ }
-      catch(DefinitionsFactoryException dex) { /* not here */ }
-
-      if (tile == null && name.startsWith("/")) { // try again w/o slash...
-         try {
-            tile = TilesUtil.getDefinition(name, request, servletContext);
-         }
-         catch(NoSuchDefinitionException  nsdex) { /* not here */ }
-         catch(DefinitionsFactoryException dfex) { /* not here */ }
+      if ((request instanceof ServletRequest) &&
+          (context instanceof ServletContext)) {
+          ServletRequest servletRequest = (ServletRequest) request;
+          ServletContext servletContext = (ServletContext) context;
+          try {
+              tile = TilesUtil.getDefinition(name, servletRequest, servletContext);
+          } catch (NoSuchDefinitionException nsex) {
+              /* not here */
+          } catch (DefinitionsFactoryException dex) {
+              /* not here */
+          }
+      } else {
+          if (log.isDebugEnabled()) {
+              log.debug("Not a servlet request, skipping tile lookup");
+          }
       }
       return tile;
+
    }
 
    /**



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org