Ok, I've sent a patch to Turbine. The solution I selected was to have the Action class just do a:
RunData.setRedirectURI() When it wants to call for a redirect. Make sure not to set any headers or body in the response directly before (or after) this. If the Action class does this, and turbine is patched (you can apply the patch to our version of turbine or the tip, I'll attach it fyi), things work well again. That is, once you patch Jetspeed's redirect calls, which are all done directly to the response object, not to the run data. I've made these changes and included the patch. Warning: I'm not sure that the redirects in the VelocityPortletAction classes doCancel() etc. will work. I have to check this out - it may be that by the time these are called (not as a turbine action, but as part of processing the portlets) it's far too late to call for a redirect. I made the changes to the code to do it the new way, and I'll report back soon to see if we need further changes in the way these actions are handled to support redirects. - Glenn -------------------------------------------- Glenn R. Golden, Systems Research Programmer University of Michigan School of Information [EMAIL PROTECTED] 734-615-1419 http://www-personal.si.umich.edu/~ggolden/ -------------------------------------------- > -----Original Message----- > From: David Sean Taylor [mailto:[EMAIL PROTECTED]] > Sent: Monday, March 25, 2002 11:21 PM > To: 'Jetspeed Developers List' > Subject: RE: Turbine - Jetspeed interaction problems > > > > Next Step: If we like this, how do we get this into Turbine? > > Just join the Turbine-dev or Turbine-user list and post your > argument there. Your argument is sound. Im on the turbine > lists, I'll try to help if they don't want to fix it. > > You can also send them a patch. > > > > > -- > To unsubscribe, e-mail: > <mailto:jetspeed-dev-> [EMAIL PROTECTED]> > For > additional commands, > e-mail: <mailto:[EMAIL PROTECTED]> >
Index: src/java/org/apache/turbine/Turbine.java =================================================================== RCS file: /home/cvspublic/jakarta-turbine-2/src/java/org/apache/turbine/Turbine.java,v retrieving revision 1.11 diff -u -r1.11 Turbine.java --- src/java/org/apache/turbine/Turbine.java 13 Mar 2002 19:44:19 -0000 1.11 +++ src/java/org/apache/turbine/Turbine.java 26 Mar 2002 18:46:22 -0000 @@ -376,6 +376,9 @@ throws IOException, ServletException { + // set to true if the request is to be redirected by the page + boolean requestRedirected = false; + // Placeholder for the RunData object. RunData data = null; try @@ -584,46 +587,64 @@ AccessControlList.SESSION_KEY); } - try + // handle a redirect request + requestRedirected = ((data.getRedirectURI() != null) && +(data.getRedirectURI().length() > 0)); + if (requestRedirected) { - if ( data.isPageSet() == false && - data.isOutSet() == false ) - throw new Exception ( "Nothing to output" ); - - // We are all done! if isPageSet() output that way - // otherwise, data.getOut() has already been written - // to the data.getOut().close() happens below in the - // finally. - if ( data.isPageSet() && data.isOutSet() == false ) + if (data.getResponse().isCommitted()) + { + requestRedirected = false; + log ("redirect requested, response already committed: " + +data.getRedirectURI()); + } + else { - // Modules can override these. - data.getResponse() - .setLocale( data.getLocale() ); - data.getResponse() - .setContentType( data.getContentType() ); - - // Handle the case where a module may want to send - // a redirect. - if ( ( data.getStatusCode() == 301 || - data.getStatusCode() == 302 ) && - data.getRedirectURI() != null ) + data.getResponse().sendRedirect(data.getRedirectURI()); + } + } + + if (!requestRedirected) + { + try + { + if ( data.isPageSet() == false && + data.isOutSet() == false ) + throw new Exception ( "Nothing to output" ); + + // We are all done! if isPageSet() output that way + // otherwise, data.getOut() has already been written + // to the data.getOut().close() happens below in the + // finally. + if ( data.isPageSet() && data.isOutSet() == false ) { + // Modules can override these. data.getResponse() - .sendRedirect ( data.getRedirectURI() ); - } + .setLocale( data.getLocale() ); + data.getResponse() + .setContentType( data.getContentType() ); - // Set the status code. - data.getResponse().setStatus ( data.getStatusCode() ); - // Output the Page. - data.getPage().output (data.getOut()); + // Handle the case where a module may want to send + // a redirect. + if ( ( data.getStatusCode() == 301 || + data.getStatusCode() == 302 ) && + data.getRedirectURI() != null ) + { + data.getResponse() + .sendRedirect ( data.getRedirectURI() ); + } + + // Set the status code. + data.getResponse().setStatus ( data.getStatusCode() ); + // Output the Page. + data.getPage().output (data.getOut()); + } + } + catch ( Exception e ) + { + // The output stream was probably closed by the client + // end of things ie: the client clicked the Stop + // button on the browser, so ignore any errors that + // result. } - } - catch ( Exception e ) - { - // The output stream was probably closed by the client - // end of things ie: the client clicked the Stop - // button on the browser, so ignore any errors that - // result. } } catch ( Exception e ) @@ -637,13 +658,17 @@ finally { // Make sure to close the outputstream when we are done. - try + // Note: not for redirects, when we must not get a printwriter on the +response output stream. + if (!requestRedirected) { - data.getOut().close(); - } - catch (Exception e) - { - // Ignore. + try + { + data.getOut().close(); + } + catch (Exception e) + { + // Ignore. + } } // Return the used RunData to the factory for recycling. Index: src/java/org/apache/turbine/modules/pages/DefaultPage.java =================================================================== RCS file: /home/cvspublic/jakarta-turbine-2/src/java/org/apache/turbine/modules/pages/DefaultPage.java,v retrieving revision 1.1.1.1 diff -u -r1.1.1.1 DefaultPage.java --- src/java/org/apache/turbine/modules/pages/DefaultPage.java 16 Aug 2001 05:08:36 -0000 1.1.1.1 +++ src/java/org/apache/turbine/modules/pages/DefaultPage.java 26 Mar 2002 18:46:23 +-0000 @@ -143,6 +143,9 @@ ActionLoader.getInstance().exec ( data, data.getAction() ); } + // if a redirect was setup in data, don't do anything else + if ((data.getRedirectURI() != null) && (data.getRedirectURI().length() > 0)) +return; + // Set the default doctype from the value given in // TurbineResources.properties. setDefaultDoctype(data);
Index: src/java/org/apache/jetspeed/modules/actions/CreateNewUserAndConfirm.java =================================================================== RCS file: /home/cvspublic/jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/CreateNewUserAndConfirm.java,v retrieving revision 1.30 diff -u -r1.30 CreateNewUserAndConfirm.java --- src/java/org/apache/jetspeed/modules/actions/CreateNewUserAndConfirm.java 25 Mar 2002 21:35:23 -0000 1.30 +++ src/java/org/apache/jetspeed/modules/actions/CreateNewUserAndConfirm.java 26 Mar +2002 19:13:10 -0000 @@ -291,12 +291,12 @@ data.setACL(acl); data.save(); - // bring logged on user to homepage with internal redirect + // bring logged on user to homepage via redirect //data.setScreenTemplate(TurbineTemplate.getDefaultScreen()); //data.setScreenTemplate("Home"); DynamicURI duri = new DynamicURI (data); duri.addPathInfo(JetspeedResources.PATH_TEMPLATE_KEY, "Home"); - data.getResponse().sendRedirect(duri.toString()); + data.setRedirectURI(duri.toString()); } catch ( Exception e ) Index: src/java/org/apache/jetspeed/modules/actions/controllers/MultiColumnControllerAction.java =================================================================== RCS file: /home/cvspublic/jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/controllers/MultiColumnControllerAction.java,v retrieving revision 1.8 diff -u -r1.8 MultiColumnControllerAction.java --- src/java/org/apache/jetspeed/modules/actions/controllers/MultiColumnControllerAction.java 25 Mar 2002 21:35:23 -0000 1.8 +++ +src/java/org/apache/jetspeed/modules/actions/controllers/MultiColumnControllerAction.java + 26 Mar 2002 19:13:10 -0000 @@ -349,19 +349,8 @@ { ((JetspeedRunData)data).setMode("default"); - try - { - // bring logged on user to homepage with internal redirect - DynamicURI duri = new DynamicURI(data); - data.getResponse().sendRedirect(duri.toString()); - } - catch ( Exception e ) - { - Log.error(e); - data.setMessage(e.toString()); - data.setStackTrace(StringUtils.stackTrace(e), e); - data.setScreenTemplate(JetspeedResources.getString("template.error","Error")); - } + // bring logged on user to homepage via HTTP redirect + data.setRedirectURI(new DynamicURI(data).toString()); } } Index: src/java/org/apache/jetspeed/modules/actions/controllers/RowColumnControllerAction.java =================================================================== RCS file: /home/cvspublic/jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/controllers/RowColumnControllerAction.java,v retrieving revision 1.9 diff -u -r1.9 RowColumnControllerAction.java --- src/java/org/apache/jetspeed/modules/actions/controllers/RowColumnControllerAction.java 25 Mar 2002 21:35:23 -0000 1.9 +++ +src/java/org/apache/jetspeed/modules/actions/controllers/RowColumnControllerAction.java + 26 Mar 2002 19:13:11 -0000 @@ -292,19 +292,8 @@ { ((JetspeedRunData)data).setMode("default"); - try - { - // bring logged on user to homepage with internal redirect - DynamicURI duri = new DynamicURI(data); - data.getResponse().sendRedirect(duri.toString()); - } - catch ( Exception e ) - { - Log.error(e); - data.setMessage(e.toString()); - data.setStackTrace(StringUtils.stackTrace(e), e); - data.setScreenTemplate(JetspeedResources.getString("template.error","Error")); - } + // bring logged on user to homepage via HTTP redirect + data.setRedirectURI(new DynamicURI(data).toString()); } } Index: src/java/org/apache/jetspeed/modules/actions/portlets/security/GroupUpdateAction.java =================================================================== RCS file: /home/cvspublic/jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/security/GroupUpdateAction.java,v retrieving revision 1.4 diff -u -r1.4 GroupUpdateAction.java --- src/java/org/apache/jetspeed/modules/actions/portlets/security/GroupUpdateAction.java 25 Mar 2002 21:35:23 -0000 1.4 +++ +src/java/org/apache/jetspeed/modules/actions/portlets/security/GroupUpdateAction.java + 26 Mar 2002 19:13:12 -0000 @@ -199,7 +199,7 @@ DynamicURI duri = new DynamicURI (rundata); duri.addPathInfo(SecurityConstants.PANE_NAME, SecurityConstants.PANEID_GROUP_UPDATE); duri.addPathInfo(SecurityConstants.PARAM_MSGID, SecurityConstants.MID_INVALID_ENTITY_NAME); - rundata.getResponse().sendRedirect(duri.toString()); + rundata.setRedirectURI(duri.toString()); rundata.getUser().setTemp(TEMP_GROUP, null); return; } @@ -226,7 +226,7 @@ DynamicURI duri = new DynamicURI (rundata); duri.addPathInfo(SecurityConstants.PANE_NAME, SecurityConstants.PANEID_GROUP_UPDATE); duri.addPathInfo(SecurityConstants.PARAM_MSGID, SecurityConstants.MID_ENTITY_ALREADY_EXISTS); - rundata.getResponse().sendRedirect(duri.toString()); + rundata.setRedirectURI(duri.toString()); // save values that user just entered so they don't have to re-enter if (group != null) @@ -272,7 +272,7 @@ if (group != null) duri.addPathInfo(SecurityConstants.PARAM_ENTITY_ID, group.getName()); duri.addQueryData(SecurityConstants.PARAM_MODE, SecurityConstants.PARAM_MODE_UPDATE); - rundata.getResponse().sendRedirect(duri.toString()); + rundata.setRedirectURI(duri.toString()); // save values that user just entered so they don't have to re-enter if (group != null) @@ -320,7 +320,7 @@ if (group != null) duri.addPathInfo(SecurityConstants.PARAM_ENTITY_ID, group.getName()); duri.addQueryData(SecurityConstants.PARAM_MODE, SecurityConstants.PARAM_MODE_DELETE); - rundata.getResponse().sendRedirect(duri.toString()); + rundata.setRedirectURI(duri.toString()); // save values that user just entered so they don't have to re-enter if (group != null) Index: src/java/org/apache/jetspeed/modules/actions/portlets/security/PermissionUpdateAction.java =================================================================== RCS file: /home/cvspublic/jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/security/PermissionUpdateAction.java,v retrieving revision 1.3 diff -u -r1.3 PermissionUpdateAction.java --- src/java/org/apache/jetspeed/modules/actions/portlets/security/PermissionUpdateAction.java 25 Mar 2002 21:35:23 -0000 1.3 +++ +src/java/org/apache/jetspeed/modules/actions/portlets/security/PermissionUpdateAction.java + 26 Mar 2002 19:13:12 -0000 @@ -199,7 +199,7 @@ DynamicURI duri = new DynamicURI (rundata); duri.addPathInfo(SecurityConstants.PANE_NAME, SecurityConstants.PANEID_PERMISSION_UPDATE); duri.addPathInfo(SecurityConstants.PARAM_MSGID, SecurityConstants.MID_INVALID_ENTITY_NAME); - rundata.getResponse().sendRedirect(duri.toString()); + rundata.setRedirectURI(duri.toString()); rundata.getUser().setTemp(TEMP_PERMISSION, null); return; } @@ -226,7 +226,7 @@ DynamicURI duri = new DynamicURI (rundata); duri.addPathInfo(SecurityConstants.PANE_NAME, SecurityConstants.PANEID_PERMISSION_UPDATE); duri.addPathInfo(SecurityConstants.PARAM_MSGID, SecurityConstants.MID_ENTITY_ALREADY_EXISTS); - rundata.getResponse().sendRedirect(duri.toString()); + rundata.setRedirectURI(duri.toString()); // save values that user just entered so they don't have to re-enter if (permission != null) @@ -272,7 +272,7 @@ if (permission != null) duri.addPathInfo(SecurityConstants.PARAM_ENTITY_ID, permission.getName()); duri.addQueryData(SecurityConstants.PARAM_MODE, SecurityConstants.PARAM_MODE_UPDATE); - rundata.getResponse().sendRedirect(duri.toString()); + rundata.setRedirectURI(duri.toString()); // save values that user just entered so they don't have to re-enter if (permission != null) @@ -319,7 +319,7 @@ if (permission != null) duri.addPathInfo(SecurityConstants.PARAM_ENTITY_ID, permission.getName()); duri.addQueryData(SecurityConstants.PARAM_MODE, SecurityConstants.PARAM_MODE_DELETE); - rundata.getResponse().sendRedirect(duri.toString()); + rundata.setRedirectURI(duri.toString()); // save values that user just entered so they don't have to re-enter if (permission != null) Index: src/java/org/apache/jetspeed/modules/actions/portlets/security/RolePermissionUpdateAction.java =================================================================== RCS file: /home/cvspublic/jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/security/RolePermissionUpdateAction.java,v retrieving revision 1.3 diff -u -r1.3 RolePermissionUpdateAction.java --- src/java/org/apache/jetspeed/modules/actions/portlets/security/RolePermissionUpdateAction.java 25 Mar 2002 21:35:23 -0000 1.3 +++ +src/java/org/apache/jetspeed/modules/actions/portlets/security/RolePermissionUpdateAction.java + 26 Mar 2002 19:13:13 -0000 @@ -202,7 +202,7 @@ DynamicURI duri = new DynamicURI (rundata); duri.addPathInfo(SecurityConstants.PANE_NAME, SecurityConstants.PANEID_ROLEPERMISSION_UPDATE); duri.addPathInfo(SecurityConstants.PARAM_MSGID, SecurityConstants.MID_MISSING_PARAMETER); - rundata.getResponse().sendRedirect(duri.toString()); + rundata.setRedirectURI(duri.toString()); return; } Role role = JetspeedSecurity.getRole(entityid); @@ -212,7 +212,7 @@ DynamicURI duri = new DynamicURI (rundata); duri.addPathInfo(SecurityConstants.PANE_NAME, SecurityConstants.PANEID_ROLEPERMISSION_UPDATE); duri.addPathInfo(SecurityConstants.PARAM_MSGID, SecurityConstants.MID_MISSING_PARAMETER); - rundata.getResponse().sendRedirect(duri.toString()); + rundata.setRedirectURI(duri.toString()); return; } @@ -228,7 +228,7 @@ DynamicURI duri = new DynamicURI (rundata); duri.addPathInfo(SecurityConstants.PANE_NAME, SecurityConstants.PANEID_ROLEPERMISSION_UPDATE); duri.addPathInfo(SecurityConstants.PARAM_MSGID, SecurityConstants.MID_MISSING_PARAMETER); - rundata.getResponse().sendRedirect(duri.toString()); + rundata.setRedirectURI(duri.toString()); return; } @@ -274,7 +274,7 @@ duri.addPathInfo(SecurityConstants.PARAM_MSGID, SecurityConstants.MID_UPDATE_FAILED); if (role != null) duri.addPathInfo(SecurityConstants.PARAM_ENTITY_ID, role.getName()); - rundata.getResponse().sendRedirect(duri.toString()); + rundata.setRedirectURI(duri.toString()); } } Index: src/java/org/apache/jetspeed/modules/actions/portlets/security/RoleUpdateAction.java =================================================================== RCS file: /home/cvspublic/jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/security/RoleUpdateAction.java,v retrieving revision 1.6 diff -u -r1.6 RoleUpdateAction.java --- src/java/org/apache/jetspeed/modules/actions/portlets/security/RoleUpdateAction.java 25 Mar 2002 21:35:23 -0000 1.6 +++ +src/java/org/apache/jetspeed/modules/actions/portlets/security/RoleUpdateAction.java + 26 Mar 2002 19:13:13 -0000 @@ -198,7 +198,7 @@ DynamicURI duri = new DynamicURI (rundata); duri.addPathInfo(SecurityConstants.PANE_NAME, SecurityConstants.PANEID_ROLE_UPDATE); duri.addPathInfo(SecurityConstants.PARAM_MSGID, SecurityConstants.MID_INVALID_ENTITY_NAME); - rundata.getResponse().sendRedirect(duri.toString()); + rundata.setRedirectURI(duri.toString()); rundata.getUser().setTemp(TEMP_ROLE, null); return; } @@ -225,7 +225,7 @@ DynamicURI duri = new DynamicURI (rundata); duri.addPathInfo(SecurityConstants.PANE_NAME, SecurityConstants.PANEID_ROLE_UPDATE); duri.addPathInfo(SecurityConstants.PARAM_MSGID, SecurityConstants.MID_ENTITY_ALREADY_EXISTS); - rundata.getResponse().sendRedirect(duri.toString()); + rundata.setRedirectURI(duri.toString()); // save values that user just entered so they don't have to re-enter if (role != null) @@ -271,7 +271,7 @@ if (role != null) duri.addPathInfo(SecurityConstants.PARAM_ENTITY_ID, role.getName()); duri.addQueryData(SecurityConstants.PARAM_MODE, SecurityConstants.PARAM_MODE_UPDATE); - rundata.getResponse().sendRedirect(duri.toString()); + rundata.setRedirectURI(duri.toString()); // save values that user just entered so they don't have to re-enter if (role != null) @@ -319,7 +319,7 @@ if (role != null) duri.addPathInfo(SecurityConstants.PARAM_ENTITY_ID, role.getName()); duri.addQueryData(SecurityConstants.PARAM_MODE, SecurityConstants.PARAM_MODE_DELETE); - rundata.getResponse().sendRedirect(duri.toString()); + rundata.setRedirectURI(duri.toString()); // save values that user just entered so they don't have to re-enter if (role != null) Index: src/java/org/apache/jetspeed/modules/actions/portlets/security/UserRoleUpdateAction.java =================================================================== RCS file: /home/cvspublic/jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/security/UserRoleUpdateAction.java,v retrieving revision 1.3 diff -u -r1.3 UserRoleUpdateAction.java --- src/java/org/apache/jetspeed/modules/actions/portlets/security/UserRoleUpdateAction.java 25 Mar 2002 21:35:23 -0000 1.3 +++ +src/java/org/apache/jetspeed/modules/actions/portlets/security/UserRoleUpdateAction.java + 26 Mar 2002 19:13:13 -0000 @@ -198,7 +198,7 @@ DynamicURI duri = new DynamicURI (rundata); duri.addPathInfo(SecurityConstants.PANE_NAME, SecurityConstants.PANEID_USERROLE_UPDATE); duri.addPathInfo(SecurityConstants.PARAM_MSGID, SecurityConstants.MID_MISSING_PARAMETER); - rundata.getResponse().sendRedirect(duri.toString()); + rundata.setRedirectURI(duri.toString()); return; } @@ -209,7 +209,7 @@ DynamicURI duri = new DynamicURI (rundata); duri.addPathInfo(SecurityConstants.PANE_NAME, SecurityConstants.PANEID_USERROLE_UPDATE); duri.addPathInfo(SecurityConstants.PARAM_MSGID, SecurityConstants.MID_MISSING_PARAMETER); - rundata.getResponse().sendRedirect(duri.toString()); + rundata.setRedirectURI(duri.toString()); return; } @@ -224,7 +224,7 @@ DynamicURI duri = new DynamicURI (rundata); duri.addPathInfo(SecurityConstants.PANE_NAME, SecurityConstants.PANEID_USERROLE_UPDATE); duri.addPathInfo(SecurityConstants.PARAM_MSGID, SecurityConstants.MID_MISSING_PARAMETER); - rundata.getResponse().sendRedirect(duri.toString()); + rundata.setRedirectURI(duri.toString()); return; } @@ -273,7 +273,7 @@ duri.addPathInfo(SecurityConstants.PARAM_MSGID, SecurityConstants.MID_UPDATE_FAILED); if (user != null) duri.addPathInfo(SecurityConstants.PARAM_ENTITY_ID, user.getUserName()); - rundata.getResponse().sendRedirect(duri.toString()); + rundata.setRedirectURI(duri.toString()); } } Index: src/java/org/apache/jetspeed/modules/actions/portlets/security/UserUpdateAction.java =================================================================== RCS file: /home/cvspublic/jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/security/UserUpdateAction.java,v retrieving revision 1.10 diff -u -r1.10 UserUpdateAction.java --- src/java/org/apache/jetspeed/modules/actions/portlets/security/UserUpdateAction.java 25 Mar 2002 21:35:23 -0000 1.10 +++ +src/java/org/apache/jetspeed/modules/actions/portlets/security/UserUpdateAction.java + 26 Mar 2002 19:13:14 -0000 @@ -218,7 +218,7 @@ DynamicURI duri = new DynamicURI (rundata); duri.addPathInfo(SecurityConstants.PANE_NAME, SecurityConstants.PANEID_USER_UPDATE); duri.addPathInfo(SecurityConstants.PARAM_MSGID, SecurityConstants.MID_INVALID_ENTITY_NAME); - rundata.getResponse().sendRedirect(duri.toString()); + rundata.setRedirectURI(duri.toString()); // save values that user just entered so they don't have to re-enter if (user != null) rundata.getUser().setTemp(TEMP_USER, user); @@ -264,7 +264,7 @@ DynamicURI duri = new DynamicURI (rundata); duri.addPathInfo(SecurityConstants.PANE_NAME, SecurityConstants.PANEID_USER_UPDATE); duri.addPathInfo(SecurityConstants.PARAM_MSGID, SecurityConstants.MID_ENTITY_ALREADY_EXISTS); - rundata.getResponse().sendRedirect(duri.toString()); + rundata.setRedirectURI(duri.toString()); // save values that user just entered so they don't have to re-enter if (user != null) rundata.getUser().setTemp(TEMP_USER, user); @@ -347,7 +347,7 @@ if (user != null) duri.addPathInfo(SecurityConstants.PARAM_ENTITY_ID, user.getUserName()); duri.addQueryData(SecurityConstants.PARAM_MODE, SecurityConstants.PARAM_MODE_UPDATE); - rundata.getResponse().sendRedirect(duri.toString()); + rundata.setRedirectURI(duri.toString()); // save values that user just entered so they don't have to re-enter if (user != null) rundata.getUser().setTemp(TEMP_USER, user); @@ -429,7 +429,7 @@ if (user != null) duri.addPathInfo(SecurityConstants.PARAM_ENTITY_ID, user.getUserName()); duri.addQueryData(SecurityConstants.PARAM_MODE, SecurityConstants.PARAM_MODE_UPDATE); - rundata.getResponse().sendRedirect(duri.toString()); + rundata.setRedirectURI(duri.toString()); // save values that user just entered so they don't have to re-enter if (user != null) rundata.getUser().setTemp(TEMP_USER, user); @@ -463,7 +463,7 @@ if (user != null) duri.addPathInfo(SecurityConstants.PARAM_ENTITY_ID, user.getUserName()); duri.addQueryData(SecurityConstants.PARAM_MODE, SecurityConstants.PARAM_MODE_UPDATE); - rundata.getResponse().sendRedirect(duri.toString()); + rundata.setRedirectURI(duri.toString()); // save values that user just entered so they don't have to re-enter if (user != null) rundata.getUser().setTemp(TEMP_USER, user); @@ -518,7 +518,7 @@ if (user != null) duri.addPathInfo(SecurityConstants.PARAM_ENTITY_ID, user.getUserName()); duri.addQueryData(SecurityConstants.PARAM_MODE, SecurityConstants.PARAM_MODE_UPDATE); - rundata.getResponse().sendRedirect(duri.toString()); + rundata.setRedirectURI(duri.toString()); // save values that user just entered so they don't have to re-enter if (user != null) rundata.getUser().setTemp(TEMP_USER, user); @@ -552,7 +552,7 @@ if (user != null) duri.addPathInfo(SecurityConstants.PARAM_ENTITY_ID, user.getUserName()); duri.addQueryData(SecurityConstants.PARAM_MODE, SecurityConstants.PARAM_MODE_DELETE); - rundata.getResponse().sendRedirect(duri.toString()); + rundata.setRedirectURI(duri.toString()); // save values that user just entered so they don't have to re-enter if (user != null) rundata.getUser().setTemp(TEMP_USER, user); @@ -579,7 +579,7 @@ if (user != null) duri.addPathInfo(SecurityConstants.PARAM_ENTITY_ID, user.getUserName()); duri.addQueryData(SecurityConstants.PARAM_MODE, SecurityConstants.PARAM_MODE_DELETE); - rundata.getResponse().sendRedirect(duri.toString()); + rundata.setRedirectURI(duri.toString()); // save values that user just entered so they don't have to re-enter if (user != null)
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>