From portal-commits at lists.jboss.org Tue Mar 20 11:23:57 2007 Content-Type: multipart/mixed; boundary="===============2575189727974310498==" MIME-Version: 1.0 From: portal-commits at lists.jboss.org To: portal-commits at lists.jboss.org Subject: [portal-commits] JBoss Portal SVN: r6776 - in trunk/core/src/main/org/jboss/portal/core: controller/portlet and 1 other directories. Date: Tue, 20 Mar 2007 11:23:56 -0400 Message-ID: --===============2575189727974310498== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Author: julien(a)jboss.com Date: 2007-03-20 11:23:56 -0400 (Tue, 20 Mar 2007) New Revision: 6776 Added: trunk/core/src/main/org/jboss/portal/core/controller/classic/HTTPRespons= e.java trunk/core/src/main/org/jboss/portal/core/controller/classic/HandlerResp= onse.java Modified: trunk/core/src/main/org/jboss/portal/core/controller/classic/AbstractRes= ponseHandler.java trunk/core/src/main/org/jboss/portal/core/controller/classic/ClassicCont= roller.java trunk/core/src/main/org/jboss/portal/core/controller/classic/ClassicResp= onseHandler.java trunk/core/src/main/org/jboss/portal/core/controller/classic/CommandForw= ard.java trunk/core/src/main/org/jboss/portal/core/controller/classic/ResponseHan= dler.java trunk/core/src/main/org/jboss/portal/core/controller/portlet/PortletResp= onseHandler.java trunk/core/src/main/org/jboss/portal/core/model/portal/PortalObjectRespo= nseHandler.java Log: improves the response handling mechanism in the core controller Modified: trunk/core/src/main/org/jboss/portal/core/controller/classic/Abst= ractResponseHandler.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/core/src/main/org/jboss/portal/core/controller/classic/AbstractRe= sponseHandler.java 2007-03-20 15:10:11 UTC (rev 6775) +++ trunk/core/src/main/org/jboss/portal/core/controller/classic/AbstractRe= sponseHandler.java 2007-03-20 15:23:56 UTC (rev 6776) @@ -22,43 +22,12 @@ *************************************************************************= *****/ package org.jboss.portal.core.controller.classic; = -import org.jboss.portal.server.ServerInvocation; -import org.jboss.portal.server.ServerException; import org.jboss.portal.jems.as.system.AbstractJBossService; = -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - /** * @author Julien Viet * @version $Revision: 1.1 $ */ public abstract class AbstractResponseHandler extends AbstractJBossService= implements ResponseHandler { - - public static void sendStatusCode(ServerInvocation invocation, int sc) = throws ServerException - { - try - { - HttpServletResponse resp =3D invocation.getServerContext().getCli= entResponse(); - resp.sendError(sc); - } - catch (IOException e) - { - throw new ServerException(e); - } - } - - public static void sendRedirect(ServerInvocation invocation, String red= irect) throws ServerException - { - try - { - HttpServletResponse resp =3D invocation.getServerContext().getCli= entResponse(); - resp.sendRedirect(redirect); - } - catch (IOException e) - { - throw new ServerException(e); - } - } } Modified: trunk/core/src/main/org/jboss/portal/core/controller/classic/Clas= sicController.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/core/src/main/org/jboss/portal/core/controller/classic/ClassicCon= troller.java 2007-03-20 15:10:11 UTC (rev 6775) +++ trunk/core/src/main/org/jboss/portal/core/controller/classic/ClassicCon= troller.java 2007-03-20 15:23:56 UTC (rev 6776) @@ -52,6 +52,7 @@ public class ClassicController extends Controller { = + // Unhardcode this private ResponseHandler[] handlers =3D new ResponseHandler[] { new ClassicResponseHandler(), @@ -60,11 +61,9 @@ new PortletInstanceResponseHandler() }; = + public void handle(ServerInvocation invocation) throws ServerException { - URLContext urlContext =3D invocation.getServerContext().getURLContex= t(); - ControllerContext ctx =3D new ControllerContext(invocation, this); - // Invoke the chain that creates the initial command ControllerCommand cmd =3D commandFactory.doMapping(invocation, invoc= ation.getServerContext().getPortalHost(), invocation.getServerContext().get= PortalContextPath(), invocation.getServerContext().getPortalRequestPath()); = @@ -72,78 +71,123 @@ if (cmd =3D=3D null) { // Handle that case - throw new ServerException("No valid command"); + throw new ServerException("No command was produced by the command= factory"); } = - try + // Create controller context + ControllerContext ctx =3D new ControllerContext(invocation, this); + + // Handle the command created + handleCommand(ctx, cmd); + } + + /** + * Handle a command which means it executes the command and reacts upon= the response created by the command. + * + * @param ctx the controller context + * @param cmd the command + * @throws ServerException + */ + protected void handleCommand(final ControllerContext ctx, final Control= lerCommand cmd) throws ServerException + { + HandlerResponse handlerResp =3D executeCommand(ctx, cmd); + + // + if (handlerResp =3D=3D null) { - while (true) + return; + } + + // Find out if we can execute in the same server invocation + if (handlerResp instanceof CommandForward) + { + CommandForward forward =3D (CommandForward)handlerResp; + URLContext urlContext =3D ctx.getServerInvocation().getServerCont= ext().getURLContext(); + if (requiresRedirect(cmd, urlContext, forward)) { - CommandForward forward; + String url =3D ctx.renderURL(forward.getCommand(), forward.get= URLContext(), null); + sendResponse(ctx, new HTTPResponse.SendRedirect(url)); + } + else + { + executeCommand(ctx, forward.getCommand()); + } + } + else + { + HTTPResponse hr =3D (HTTPResponse)handlerResp; + sendResponse(ctx, hr); + } + } = - // - try - { - // Execute command - Object response =3D ctx.execute(cmd); + /** + * All http responses in the stack should be handled here. + */ + protected void sendResponse(ControllerContext ctx, HTTPResponse resp) + { + try + { + resp.sendResponse(ctx.getServerInvocation().getServerContext()); + } + catch (IOException e) + { + log.error("Cound not send http response", e); + } + } = - // Handle the result - forward =3D handleResponse(ctx, cmd, response); - } - catch (CommandRedirectionException e) - { - // Handle the redirection as forward - forward =3D new CommandForward(e.getRedirection(), null); - } + protected HandlerResponse executeCommand(ControllerContext ctx, Control= lerCommand cmd) throws ServerException + { + URLContext urlContext =3D ctx.getServerInvocation().getServerContext= ().getURLContext(); = - // - if (forward =3D=3D null) - { - break; - } + try + { + // Execute command + Object commandResponse =3D ctx.execute(cmd); = - // Find out if we can execute in the same server invocation - if (requiresRedirect(cmd, urlContext, forward)) + // Handle the result + for (int i =3D 0;i < handlers.length;i++) + { + ResponseHandler handler =3D handlers[i]; + HandlerResponse handlerResponse =3D handler.handleResponse(ctx= , cmd, commandResponse); + if (handlerResponse !=3D null) { - String url =3D ctx.renderURL(forward.getCommand(), forward.= getURLContext(), null); - if (url =3D=3D null) - { - throw new ControllerException(); - } - AbstractResponseHandler.sendRedirect(invocation, url); - break; + return handlerResponse; } - else - { - cmd =3D forward.getCommand(); - } } + + // We were not able to determine a suitable response + return null; } + catch (CommandRedirectionException e) + { + // Handle the redirection as forward + return new CommandForward(e.getRedirection(), null); + } catch (InsufficientTransportGuaranteeException e) { urlContext =3D URLContext.newInstance(true, urlContext.isAuthenti= cated()); - ServerURL serverURL =3D getURLFactory().doMapping(invocation, cmd= ); - String url =3D invocation.getResponse().renderURL(serverURL, urlC= ontext, null); - AbstractResponseHandler.sendRedirect(invocation, url); + ServerURL serverURL =3D getURLFactory().doMapping(ctx.getServerIn= vocation(), cmd); + String url =3D ctx.getServerInvocation().getResponse().renderURL(= serverURL, urlContext, null); + return new HTTPResponse.SendRedirect(url); } catch (ControllerSecurityException e) { if (urlContext.isAuthenticated()) { - AbstractResponseHandler.sendStatusCode(invocation, HttpServlet= Response.SC_UNAUTHORIZED); + return new HTTPResponse.SetStatusCode(HttpServletResponse.SC_U= NAUTHORIZED); } else { urlContext =3D URLContext.newInstance(urlContext.isSecure(), t= rue); - ServerURL serverURL =3D getURLFactory().doMapping(invocation, = cmd); - String url =3D invocation.getResponse().renderURL(serverURL, u= rlContext, null); - AbstractResponseHandler.sendRedirect(invocation, url); + ServerURL serverURL =3D getURLFactory().doMapping(ctx.getServe= rInvocation(), cmd); + String url =3D ctx.getServerInvocation().getResponse().renderU= RL(serverURL, urlContext, null); + return new HTTPResponse.SendRedirect(url); } } catch (ResourceNotFoundException e) { log.error("Resource not found " + e.getRef(), e); - AbstractResponseHandler.sendStatusCode(invocation, HttpServletRes= ponse.SC_NOT_FOUND); + return new HTTPResponse.SetStatusCode(HttpServletResponse.SC_NOT_= FOUND); } catch (ControllerException e) { @@ -159,20 +203,6 @@ } } = - private CommandForward handleResponse(ControllerContext ctx, Controller= Command cmd, Object response) throws IOException, ServletException, ServerE= xception - { - for (int i =3D 0;i < handlers.length;i++) - { - ResponseHandler handler =3D handlers[i]; - CommandForward forward =3D handler.handleResponse(ctx, cmd, respo= nse); - if (forward !=3D null) - { - return forward; - } - } - return null; - } - /** * Return true if the execution of the next command requires a redirect. * = Modified: trunk/core/src/main/org/jboss/portal/core/controller/classic/Clas= sicResponseHandler.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/core/src/main/org/jboss/portal/core/controller/classic/ClassicRes= ponseHandler.java 2007-03-20 15:10:11 UTC (rev 6775) +++ trunk/core/src/main/org/jboss/portal/core/controller/classic/ClassicRes= ponseHandler.java 2007-03-20 15:23:56 UTC (rev 6776) @@ -36,10 +36,7 @@ import org.jboss.portal.core.model.portal.command.RenderPageCommand; = import javax.servlet.ServletException; -import javax.servlet.ServletOutputStream; -import javax.servlet.http.HttpServletResponse; import java.io.IOException; -import java.io.InputStream; = /** * @author Julien Viet @@ -50,7 +47,7 @@ = private PortalObjectId defaultPortalPath =3D PortalObjectId.parse("/def= ault", PortalObjectId.CANONICAL_FORMAT); = - public CommandForward handleResponse(ControllerContext ctx, ControllerC= ommand cmd, Object response) throws IOException, ServletException, ServerEx= ception + public HandlerResponse handleResponse(ControllerContext ctx, Controller= Command cmd, Object response) throws IOException, ServletException, ServerE= xception { ServerInvocation invocation =3D ctx.getServerInvocation(); = @@ -79,27 +76,12 @@ } = // - sendRedirect(invocation, location); - - // - return null; + return new HTTPResponse.SendRedirect(location); } else if (response instanceof StreamContentResponse) { StreamContentResponse scr =3D (StreamContentResponse)response; - HttpServletResponse resp =3D invocation.getServerContext().getCli= entResponse(); - resp.setContentType(scr.getContentType()); - ServletOutputStream sout =3D resp.getOutputStream(); - InputStream is =3D scr.getInputStream(); - byte[] buf =3D new byte[2048]; - int len; - while ((len =3D is.read(buf)) > 0) - { - sout.write(buf, 0, len); - } - sout.flush(); - sout.close(); - return null; + return new HTTPResponse.SendBinary(scr.getContentType(), scr.getI= nputStream()); } else { Modified: trunk/core/src/main/org/jboss/portal/core/controller/classic/Comm= andForward.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/core/src/main/org/jboss/portal/core/controller/classic/CommandFor= ward.java 2007-03-20 15:10:11 UTC (rev 6775) +++ trunk/core/src/main/org/jboss/portal/core/controller/classic/CommandFor= ward.java 2007-03-20 15:23:56 UTC (rev 6776) @@ -26,10 +26,12 @@ import org.jboss.portal.core.controller.ControllerCommand; = /** + * Forward to a new command. + * * @author Julien Viet * @version $Revision: 1.1 $ */ -public class CommandForward +public class CommandForward extends HandlerResponse { /** . */ private final ControllerCommand cmd; Added: trunk/core/src/main/org/jboss/portal/core/controller/classic/HTTPRes= ponse.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/core/src/main/org/jboss/portal/core/controller/classic/HTTPRespon= se.java (rev 0) +++ trunk/core/src/main/org/jboss/portal/core/controller/classic/HTTPRespon= se.java 2007-03-20 15:23:56 UTC (rev 6776) @@ -0,0 +1,118 @@ +/*************************************************************************= ***** + * JBoss, a division of Red Hat = * + * Copyright 2006, Red Hat Middleware, LLC, and individual = * + * contributors as indicated by the @authors tag. See the = * + * copyright.txt in the distribution for a full listing of = * + * individual contributors. = * + * = * + * This is free software; you can redistribute it and/or modify it = * + * under the terms of the GNU Lesser General Public License as = * + * published by the Free Software Foundation; either version 2.1 of = * + * the License, or (at your option) any later version. = * + * = * + * This software is distributed in the hope that it will be useful, = * + * but WITHOUT ANY WARRANTY; without even the implied warranty of = * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU = * + * Lesser General Public License for more details. = * + * = * + * You should have received a copy of the GNU Lesser General Public = * + * License along with this software; if not, write to the Free = * + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA = * + * 02110-1301 USA, or see the FSF site: http://www.fsf.org. = * + *************************************************************************= *****/ +package org.jboss.portal.core.controller.classic; + +import org.jboss.portal.server.ServerInvocationContext; +import org.jboss.portal.common.util.Tools; + +import javax.servlet.http.HttpServletResponse; +import javax.servlet.ServletOutputStream; +import java.io.IOException; +import java.io.InputStream; + +/** + * Response that sends a response to the http stream. + * + * @author Julien Viet + * @version $Revision: 1.1 $ + */ +public abstract class HTTPResponse extends HandlerResponse +{ + + public abstract void sendResponse(ServerInvocationContext ctx) throws I= OException; + + public static class SetStatusCode extends HTTPResponse + { + + /** . */ + private final int statusCode; + + public SetStatusCode(int statusCode) + { + this.statusCode =3D statusCode; + } + + public void sendResponse(ServerInvocationContext ctx) throws IOExcep= tion + { + HttpServletResponse resp =3D ctx.getClientResponse(); + resp.sendError(statusCode); + } + } + + public static class SendRedirect extends HTTPResponse + { + + /** . */ + private final String redirect; + + public SendRedirect(String redirect) + { + this.redirect =3D redirect; + } + + public void sendResponse(ServerInvocationContext ctx) throws IOExcep= tion + { + HttpServletResponse resp =3D ctx.getClientResponse(); + resp.sendRedirect(redirect); + } + } + + public static class SendBinary extends HTTPResponse + { + + /** . */ + private final String contentType; + + /** . */ + private final InputStream in; + + public SendBinary(String contentType, InputStream inputStream) + { + this.contentType =3D contentType; + this.in =3D inputStream; + } + + public void sendResponse(ServerInvocationContext ctx) throws IOExcep= tion + { + HttpServletResponse resp =3D ctx.getClientResponse(); + resp.setContentType(contentType); + ServletOutputStream sout =3D null; + try + { + sout =3D resp.getOutputStream(); + byte[] buf =3D new byte[2048]; + int len; + while ((len =3D in.read(buf)) > 0) + { + sout.write(buf, 0, len); + } + sout.flush(); + } + finally + { + Tools.safeClose(in); + Tools.safeClose(sout); + } + } + } +} Added: trunk/core/src/main/org/jboss/portal/core/controller/classic/Handler= Response.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/core/src/main/org/jboss/portal/core/controller/classic/HandlerRes= ponse.java (rev 0) +++ trunk/core/src/main/org/jboss/portal/core/controller/classic/HandlerRes= ponse.java 2007-03-20 15:23:56 UTC (rev 6776) @@ -0,0 +1,33 @@ +/*************************************************************************= ***** + * JBoss, a division of Red Hat = * + * Copyright 2006, Red Hat Middleware, LLC, and individual = * + * contributors as indicated by the @authors tag. See the = * + * copyright.txt in the distribution for a full listing of = * + * individual contributors. = * + * = * + * This is free software; you can redistribute it and/or modify it = * + * under the terms of the GNU Lesser General Public License as = * + * published by the Free Software Foundation; either version 2.1 of = * + * the License, or (at your option) any later version. = * + * = * + * This software is distributed in the hope that it will be useful, = * + * but WITHOUT ANY WARRANTY; without even the implied warranty of = * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU = * + * Lesser General Public License for more details. = * + * = * + * You should have received a copy of the GNU Lesser General Public = * + * License along with this software; if not, write to the Free = * + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA = * + * 02110-1301 USA, or see the FSF site: http://www.fsf.org. = * + *************************************************************************= *****/ +package org.jboss.portal.core.controller.classic; + +/** + * The response from a a response handler. + * + * @author Julien Viet + * @version $Revision: 1.1 $ + */ +public abstract class HandlerResponse +{ +} Modified: trunk/core/src/main/org/jboss/portal/core/controller/classic/Resp= onseHandler.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/core/src/main/org/jboss/portal/core/controller/classic/ResponseHa= ndler.java 2007-03-20 15:10:11 UTC (rev 6775) +++ trunk/core/src/main/org/jboss/portal/core/controller/classic/ResponseHa= ndler.java 2007-03-20 15:23:56 UTC (rev 6776) @@ -35,5 +35,5 @@ */ public interface ResponseHandler { - public CommandForward handleResponse(ControllerContext ctx, ControllerC= ommand cmd, Object response) throws IOException, ServletException, ServerEx= ception; + public HandlerResponse handleResponse(ControllerContext ctx, Controller= Command cmd, Object response) throws IOException, ServletException, ServerE= xception; } Modified: trunk/core/src/main/org/jboss/portal/core/controller/portlet/Port= letResponseHandler.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/core/src/main/org/jboss/portal/core/controller/portlet/PortletRes= ponseHandler.java 2007-03-20 15:10:11 UTC (rev 6775) +++ trunk/core/src/main/org/jboss/portal/core/controller/portlet/PortletRes= ponseHandler.java 2007-03-20 15:23:56 UTC (rev 6776) @@ -26,6 +26,8 @@ import org.jboss.portal.core.controller.ControllerContext; import org.jboss.portal.core.controller.classic.AbstractResponseHandler; import org.jboss.portal.core.controller.classic.CommandForward; +import org.jboss.portal.core.controller.classic.HandlerResponse; +import org.jboss.portal.core.controller.classic.HTTPResponse; import org.jboss.portal.core.model.portal.command.InvokePortletWindowActio= nCommand; import org.jboss.portal.core.model.portal.command.RenderPageCommand; import org.jboss.portal.core.model.portal.Page; @@ -59,7 +61,7 @@ StateString navState, PortletResponse response); = - public CommandForward handleResponse(ControllerContext ctx, ControllerC= ommand cmd, Object response) throws IOException, ServletException, ServerEx= ception + public HandlerResponse handleResponse(ControllerContext ctx, Controller= Command cmd, Object response) throws IOException, ServletException, ServerE= xception { if (response instanceof PortletResponse) { @@ -88,8 +90,7 @@ { HTTPRedirectionResponse redirectionResult =3D (HTTPRedirection= Response)pir; String url =3D redirectionResult.getLocation(); - sendRedirect(invocation, url); - return null; + return new HTTPResponse.SendRedirect(url); } else if (pir instanceof InsufficientTransportGuaranteeResponse) { @@ -124,17 +125,13 @@ } = // - sendRedirect(invocation, location); - - // - return null; + return new HTTPResponse.SendRedirect(location); } else if (pir instanceof ErrorResponse) { ErrorResponse error =3D (ErrorResponse)pir; error.logErrorTo(log, "An portlet exception occured in portlet= "); - sendStatusCode(invocation, HttpServletResponse.SC_INTERNAL_SER= VER_ERROR); - return null; + return new HTTPResponse.SetStatusCode(HttpServletResponse.SC_I= NTERNAL_SERVER_ERROR); } else { Modified: trunk/core/src/main/org/jboss/portal/core/model/portal/PortalObje= ctResponseHandler.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/core/src/main/org/jboss/portal/core/model/portal/PortalObjectResp= onseHandler.java 2007-03-20 15:10:11 UTC (rev 6775) +++ trunk/core/src/main/org/jboss/portal/core/model/portal/PortalObjectResp= onseHandler.java 2007-03-20 15:23:56 UTC (rev 6776) @@ -24,6 +24,7 @@ = import org.jboss.portal.core.controller.classic.AbstractResponseHandler; import org.jboss.portal.core.controller.classic.CommandForward; +import org.jboss.portal.core.controller.classic.HandlerResponse; import org.jboss.portal.core.controller.ControllerCommand; import org.jboss.portal.core.controller.ControllerContext; import org.jboss.portal.core.model.portal.command.response.UpdateViewRespo= nse; @@ -41,7 +42,7 @@ public class PortalObjectResponseHandler extends AbstractResponseHandler { = - public CommandForward handleResponse(ControllerContext ctx, ControllerC= ommand cmd, Object response) throws IOException, ServletException, ServerEx= ception + public HandlerResponse handleResponse(ControllerContext ctx, Controller= Command cmd, Object response) throws IOException, ServletException, ServerE= xception { if (response instanceof UpdateViewResponse) { --===============2575189727974310498==--