portals-jetspeed-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From a..@apache.org
Subject svn commit: r472231 - /portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/HeaderAggregatorImpl.java
Date Tue, 07 Nov 2006 20:15:10 GMT
Author: ate
Date: Tue Nov  7 12:15:10 2006
New Revision: 472231

URL: http://svn.apache.org/viewvc?view=rev&rev=472231
Log:
Fix several potential exceptions when trying to access non-available/existing portlets
BTW: I think the current implementation of access the real instance of a portlet is way to
heavy...
        Will try to come up with a simpler and more lightweight solution.

Modified:
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/HeaderAggregatorImpl.java

Modified: portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/HeaderAggregatorImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/HeaderAggregatorImpl.java?view=diff&rev=472231&r1=472230&r2=472231
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/HeaderAggregatorImpl.java
(original)
+++ portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/HeaderAggregatorImpl.java
Tue Nov  7 12:15:10 2006
@@ -38,6 +38,7 @@
 import org.apache.jetspeed.headerresource.HeaderResource;
 import org.apache.jetspeed.headerresource.HeaderResourceFactory;
 import org.apache.jetspeed.headerresource.HeaderResourceLib;
+import org.apache.jetspeed.om.common.portlet.PortletApplication;
 import org.apache.jetspeed.om.page.ContentFragment;
 import org.apache.jetspeed.om.page.ContentPage;
 import org.apache.jetspeed.portlet.PortletHeaderRequest;
@@ -869,25 +870,27 @@
     {
         try
         {
-            if ( fragment.getType().equals( ContentFragment.LAYOUT ) )
+            if ( !fragment.getType().equals( ContentFragment.LAYOUT ) )
             {
-                return false;
-            }
-            
-            PortletWindow portletWindow = getPortletWindowAccessor().getPortletWindow( fragment
);
-            PortletDefinition pd = portletWindow.getPortletEntity().getPortletDefinition();
-            String portletApplicationContextPath = pd.getPortletApplicationDefinition().getWebApplicationDefinition().getContextRoot();
-            Portlet portlet = getPortletFactory().getPortletInstance( context.getConfig().getServletContext().getContext(
portletApplicationContextPath ), pd ).getRealPortlet();            
-            if ( portlet instanceof SupportsHeaderPhase )
-            {
-                log.debug( "renderHeaderFragment: " + pd.getName() + " supports header phase"
);
-                
-                HeaderResource hr = getHeaderResourceFactory().getHeaderResource( context,
this.baseUrlAccess, isDesktop(), getHeaderConfiguration() );
-                PortletHeaderRequest headerRequest = new PortletHeaderRequestImpl( context,
portletWindow, portletApplicationContextPath );
-                PortletHeaderResponse headerResponse = new PortletHeaderResponseImpl( context,
hr, isDesktop(), getHeaderConfiguration(), getHeaderResourceRegistry() );
-                ((SupportsHeaderPhase)portlet).doHeader( headerRequest, headerResponse );
-                return true;
+                PortletWindow portletWindow = getPortletWindowAccessor().getPortletWindow(
fragment );
+                PortletDefinition pd = portletWindow.getPortletEntity().getPortletDefinition();
+                if ( pd != null && getPortletFactory().isPortletApplicationRegistered((PortletApplication)pd.getPortletApplicationDefinition()
) )
+                {
+                    String portletApplicationContextPath = pd.getPortletApplicationDefinition().getWebApplicationDefinition().getContextRoot();
+                    Portlet portlet = getPortletFactory().getPortletInstance( context.getConfig().getServletContext().getContext(
portletApplicationContextPath ), pd ).getRealPortlet();            
+                    if ( portlet != null && portlet instanceof SupportsHeaderPhase
)
+                    {
+                        log.debug( "renderHeaderFragment: " + pd.getName() + " supports header
phase" );
+                        
+                        HeaderResource hr = getHeaderResourceFactory().getHeaderResource(
context, this.baseUrlAccess, isDesktop(), getHeaderConfiguration() );
+                        PortletHeaderRequest headerRequest = new PortletHeaderRequestImpl(
context, portletWindow, portletApplicationContextPath );
+                        PortletHeaderResponse headerResponse = new PortletHeaderResponseImpl(
context, hr, isDesktop(), getHeaderConfiguration(), getHeaderResourceRegistry() );
+                        ((SupportsHeaderPhase)portlet).doHeader( headerRequest, headerResponse
);
+                        return true;
+                    }
+                }
             }
+            return false;
         }
         catch ( Exception e )
         {



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


Mime
View raw message