weaver      2004/07/28 06:23:10

  Modified:    portal/src/java/org/apache/jetspeed/aggregator/impl
                        ContentDispatcherImpl.java PortletRendererImpl.java
               jetspeed-api/src/java/org/apache/jetspeed/aggregator
                        PortletRenderer.java ContentDispatcher.java
  Added:       jetspeed-api/src/java/org/apache/jetspeed/aggregator
                        FailedToRenderFragmentException.java
  Log:
  Use checked exceptions to indicate a failure in rendering instead of consuming and 
logging.
  
  Revision  Changes    Path
  1.6       +6 -3      
jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/impl/ContentDispatcherImpl.java
  
  Index: ContentDispatcherImpl.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/impl/ContentDispatcherImpl.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ContentDispatcherImpl.java        12 May 2004 18:46:53 -0000      1.5
  +++ ContentDispatcherImpl.java        28 Jul 2004 13:23:09 -0000      1.6
  @@ -29,6 +29,7 @@
   import org.apache.commons.logging.LogFactory;
   import org.apache.jetspeed.aggregator.ContentDispatcher;
   import org.apache.jetspeed.aggregator.ContentDispatcherCtrl;
  +import org.apache.jetspeed.aggregator.FailedToRenderFragmentException;
   import org.apache.jetspeed.aggregator.PortletRenderer;
   import org.apache.jetspeed.om.page.Fragment;
   import org.apache.jetspeed.request.RequestContext;
  @@ -67,8 +68,9 @@
        * of the request fragment.
        * If the fragment rendered content is not yet available, the method will
        * hold until it's completely rendered.
  +     * @throws FailedToRenderFragmentException if the Fragment to include could not 
be rendered.
        */
  -    public void include(Fragment fragment, HttpServletRequest req, 
HttpServletResponse rsp)
  +    public void include(Fragment fragment, HttpServletRequest req, 
HttpServletResponse rsp) throws FailedToRenderFragmentException 
       {
           ObjectID oid = JetspeedObjectID.createFromString(fragment.getId());
   
  @@ -168,8 +170,9 @@
        * of the request fragment.
        * If the fragment rendered content is not yet available, the method will
        * hold until it's completely rendered.
  +     * @throws FailedToRenderFragmentException if the Fragment to include could not 
be rendered.
        */
  -    public void include(Fragment fragment, javax.portlet.RenderRequest req, 
javax.portlet.RenderResponse rsp)
  +    public void include(Fragment fragment, javax.portlet.RenderRequest req, 
javax.portlet.RenderResponse rsp) throws FailedToRenderFragmentException
       {
           ObjectID oid = JetspeedObjectID.createFromString(fragment.getId());
   
  
  
  
  1.17      +25 -11    
jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java
  
  Index: PortletRendererImpl.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- PortletRendererImpl.java  17 Mar 2004 22:19:53 -0000      1.16
  +++ PortletRendererImpl.java  28 Jul 2004 13:23:09 -0000      1.17
  @@ -22,8 +22,10 @@
   import org.apache.commons.logging.LogFactory;
   import org.apache.jetspeed.aggregator.ContentDispatcher;
   import org.apache.jetspeed.aggregator.ContentDispatcherCtrl;
  +import org.apache.jetspeed.aggregator.FailedToRenderFragmentException;
   import org.apache.jetspeed.aggregator.PortletRenderer;
   import org.apache.jetspeed.aggregator.UnknownPortletDefinitionException;
  +import org.apache.jetspeed.container.window.FailedToRetrievePortletWindow;
   import org.apache.jetspeed.container.window.PortletWindowAccessor;
   import org.apache.jetspeed.om.page.Fragment;
   import org.apache.jetspeed.request.RequestContext;
  @@ -73,8 +75,9 @@
       /**
           Render the specified Page fragment.
           Result is returned in the PortletResponse.
  +     * @throws FailedToRenderFragmentException
        */
  -    public void renderNow(Fragment fragment, RequestContext request)
  +    public void renderNow(Fragment fragment, RequestContext request) throws 
FailedToRenderFragmentException
       {
           //
           // create the portlet window and render the portlet
  @@ -94,9 +97,9 @@
               // should we decorate here instead of rendering Portlet ?
               container.renderPortlet(portletWindow, servletRequest, servletResponse);
           }
  -        catch (Throwable t)
  +        catch (Exception e)
           {            
  -            log.error("Failed to service portlet, portlet exception: " + 
t.toString(), t);
  +            throw new FailedToRenderFragmentException("Unable to render fragment 
because: "+e.toString(), e);
           }
           finally
           {
  @@ -112,8 +115,9 @@
       /**
           Render the specified Page fragment.
           Result is returned in the PortletResponse.
  +     * @throws FailedToRenderFragmentException
        */
  -    public void renderNow(Fragment fragment, HttpServletRequest request, 
HttpServletResponse response)
  +    public void renderNow(Fragment fragment, HttpServletRequest request, 
HttpServletResponse response) throws FailedToRenderFragmentException
       {
           //
           // create the portlet window and render the portlet
  @@ -123,21 +127,31 @@
               PortletWindow portletWindow = getPortletWindow(fragment);
               container.renderPortlet(portletWindow, request, response);
           }
  -        catch (Throwable t)
  +        catch (Exception e)
           {            
  -            log.error("Failed to service portlet, portlet exception: " + 
t.toString(), t);
  +            throw new FailedToRenderFragmentException("Unable to render fragment 
because: "+e.toString(), e);
           }
       }
   
       /** Render the specified Page fragment.
           The method returns before rendering is complete, rendered content can be
           accessed through the ContentDispatcher
  +     * @throws UnknownPortletDefinitionException
  +     * @throws FailedToRetrievePortletWindow
       */
  -    public void render(Fragment fragment, RequestContext request) throws 
UnknownPortletDefinitionException
  +    public void render(Fragment fragment, RequestContext request) throws 
FailedToRenderFragmentException
       {
           RenderingJob rJob = new RenderingJob();
   
  -        PortletWindow portletWindow = getPortletWindow(fragment);
  +        PortletWindow portletWindow;
  +        try
  +        {
  +            portletWindow = getPortletWindow(fragment);
  +        }
  +        catch (FailedToRetrievePortletWindow e)
  +        {
  +           throw new FailedToRenderFragmentException("Unable to render fragment 
because: "+e.toString(), e);
  +        }
           ContentDispatcherCtrl dispatcher = getDispatcherCtrl(request,true);
   
           HttpServletRequest servletRequest = 
request.getRequestForWindow(portletWindow);
  @@ -173,14 +187,14 @@
           return (ContentDispatcherCtrl)request.getContentDispatcher();
       }
   
  -    protected PortletWindow getPortletWindow(Fragment fragment) throws 
UnknownPortletDefinitionException
  +    protected PortletWindow getPortletWindow(Fragment fragment) throws  
FailedToRetrievePortletWindow
       {
           ObjectID oid = JetspeedObjectID.createFromString(fragment.getId());
                           
           PortletWindow portletWindow = windowAccessor.getPortletWindow(fragment);
           if (portletWindow == null)
           {
  -            throw new UnknownPortletDefinitionException("Portlet Window creation 
failed for fragment: " + fragment.getId() + ", " + fragment.getName());
  +            throw new FailedToRetrievePortletWindow("Portlet Window creation failed 
for fragment: " + fragment.getId() + ", " + fragment.getName());
           }
           PortletEntity portletEntity = portletWindow.getPortletEntity();
   
  
  
  
  1.2       +8 -6      
jakarta-jetspeed-2/jetspeed-api/src/java/org/apache/jetspeed/aggregator/PortletRenderer.java
  
  Index: PortletRenderer.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed-2/jetspeed-api/src/java/org/apache/jetspeed/aggregator/PortletRenderer.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- PortletRenderer.java      28 May 2004 18:51:55 -0000      1.1
  +++ PortletRenderer.java      28 Jul 2004 13:23:10 -0000      1.2
  @@ -17,6 +17,7 @@
   
   import javax.servlet.http.HttpServletRequest;
   import javax.servlet.http.HttpServletResponse;
  +
   import org.apache.jetspeed.om.page.Fragment;
   import org.apache.jetspeed.request.RequestContext;
   
  @@ -34,24 +35,25 @@
       /**
           Render the specified Page fragment.
           Result is returned in the PortletResponse.
  +     * @throws FailedToRenderFragmentException
        */
  -    public void renderNow(Fragment fragment, RequestContext request);
  +    public void renderNow(Fragment fragment, RequestContext request) throws 
FailedToRenderFragmentException;
   
       /**
           Render the specified Page fragment.
           Result is returned in the PortletResponse.
  +     * @throws FailedToRenderFragmentException
        */
  -    public void renderNow(Fragment fragment, HttpServletRequest request, 
HttpServletResponse response);
  +    public void renderNow(Fragment fragment, HttpServletRequest request, 
HttpServletResponse response) throws FailedToRenderFragmentException;
   
       /** 
        * 
        * Render the specified Page fragment.
        * The method returns before rendering is complete, rendered content can be
        * accessed through the ContentDispatcher
  -     * @throws UnknownPortletDefintionException is the PortletDefinition 
represented by this
  -     * fragment does not exist     .
  +     * @throws FailedToRenderFragmentException if the Fragment could not be 
rendered.
        */
  -    public void render(Fragment fragment, RequestContext request) throws 
UnknownPortletDefinitionException;
  +    public void render(Fragment fragment, RequestContext request) throws  
FailedToRenderFragmentException;
   
       /**
        * Retrieve the ContentDispatcher for the specified request
  
  
  
  1.2       +5 -3      
jakarta-jetspeed-2/jetspeed-api/src/java/org/apache/jetspeed/aggregator/ContentDispatcher.java
  
  Index: ContentDispatcher.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed-2/jetspeed-api/src/java/org/apache/jetspeed/aggregator/ContentDispatcher.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ContentDispatcher.java    28 May 2004 18:51:55 -0000      1.1
  +++ ContentDispatcher.java    28 Jul 2004 13:23:10 -0000      1.2
  @@ -34,16 +34,18 @@
        * of the request fragment.
        * If the fragment rendered content is not yet available, the method will
        * hold until it's completely rendered.
  +     * @throws FailedToRenderFragmentException if the Fragment to include could not 
be rendered.
        */
  -    public void include(Fragment fragment, HttpServletRequest req, 
HttpServletResponse rsp);
  +    public void include(Fragment fragment, HttpServletRequest req, 
HttpServletResponse rsp) throws FailedToRenderFragmentException;
       
       /**
        * Include in the provided PortletResponse output stream the rendered content
        * of the request fragment.
        * If the fragment rendered content is not yet available, the method will
        * hold until it's completely rendered.
  +     * @throws FailedToRenderFragmentException if the Fragment to include could not 
be rendered.
        */
  -    public void include(Fragment fragment, javax.portlet.RenderRequest req, 
javax.portlet.RenderResponse rsp);
  +    public void include(Fragment fragment, javax.portlet.RenderRequest req, 
javax.portlet.RenderResponse rsp) throws FailedToRenderFragmentException;
       
       /**
        * Sequentially wait on content generation for the given fragment.
  
  
  
  1.1                  
jakarta-jetspeed-2/jetspeed-api/src/java/org/apache/jetspeed/aggregator/FailedToRenderFragmentException.java
  
  Index: FailedToRenderFragmentException.java
  ===================================================================
  /*
   * Created on Jul 27, 2004
   *
   * TODO To change the template for this generated file go to
   * Window - Preferences - Java - Code Generation - Code and Comments
   */
  package org.apache.jetspeed.aggregator;
  
  import org.apache.jetspeed.exception.JetspeedException;
  
  /**
   * <p>
   * FailedToRenderFragmentException
   * </p>
   * <p>
   *
   * </p>
   * @author <a href="mailto:[EMAIL PROTECTED]">Scott T. Weaver</a>
   * @version $Id: FailedToRenderFragmentException.java,v 1.1 2004/07/28 13:23:10 
weaver Exp $
   *
   */
  public class FailedToRenderFragmentException extends JetspeedException
  {
  
      /**
       * 
       */
      public FailedToRenderFragmentException()
      {
          super();
      }
  
      /**
       * @param message
       */
      public FailedToRenderFragmentException( String message )
      {
          super(message);
      }
  
      /**
       * @param nested
       */
      public FailedToRenderFragmentException( Throwable nested )
      {
          super(nested);
      }
  
      /**
       * @param msg
       * @param nested
       */
      public FailedToRenderFragmentException( String msg, Throwable nested )
      {
          super(msg, nested);
      }
  
  }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to