Hi, in reply to the migration guide, thanks a lot for the information.
I have a jetspeed-1 based turbine webapp and tried to do an update. I am already using turbine 2.3.3. With this release I experience with the handling of the velocity templates a similar problem as discussed in http://wiki.apache.org/turbine/Turbine2/VelocityOnlyLayout getting the error java.lang.IllegalStateException: getOutputStream() has already been called for this response. My Settings in TurbineResource.properties are: services.VelocityService.default.screen=VelocityDirectScreen services.VelocityService.default.layout = VelocityDirectLayout As these classes use TurbineVelocity.handleRequest(context, template, rundata.getResponse().getOutputStream()) and the caching seems to be deprecated I changed in my controllers/processors from TurbineVelocity.handleRequest(context, template, rundata.getOut()); TurbineVelocity.handleRequest(context, template, rundata.getResponse ().getOutputStream()); The error disappears, but the sequence of the loaded templates is reversed (more exactly the templates loaded from the screen Home.vm, the navigations templates seem to be in the right order), if the jetspeed-1 loading mechanism tries to load the templates. This may be logical, as the getResponse().getOutputStream() is only flushed after the last template is called and velocity push/pops the templates from a stack. I have overwritten the TurbineVelocityService class setting the OutputStreamWriter writer to a class variable and using this variable in the method org.apache.jetspeed.services.velocity.DCTurbineVelocityService.handleRequest (Context, String, OutputStream), checking for null: public void handleRequest(Context context, String filename, OutputStream output) throws TurbineException { String charset = getCharSet(context); try { if (writer == null) writer = new OutputStreamWriter(output, charset); writer.flush(); executeRequest(context, filename, writer); } catch (Exception e) { renderingError(filename, e); } finally { try { if (writer != null) { writer.flush(); writer = null; } } catch (Exception ignored) { // do nothing. } } } Doing this the problem seems to be resolved. I get another error, if I have in the default turbine-classic-pipeline.xml <org.apache.turbine.pipeline.DetermineRedirectRequestedValve/>: 2011-08-29 14:24:44,889 [http-8093-6] DEBUG DetermineRedirectRequestedValve - Output stream closed? java.lang.Exception: Nothing to output at org.apache.turbine.pipeline.DetermineRedirectRequestedValve.redirectRequested (DetermineRedirectRequestedValve.java:102) at org.apache.turbine.pipeline.DetermineRedirectRequestedValve.invoke (DetermineRedirectRequestedValve.java:59) The reason are, that two deprecated variables have their default value ?? Thanks for any discussion. Best regards, Georg Von: Thomas Vandahl <t...@apache.org> An: Turbine Developers List <dev@turbine.apache.org>, Turbine Users List <u...@turbine.apache.org> Datum: 28.08.2011 12:35 Betreff: Turbine 4.0 Migration Guide Hi folks, I started to fill up the Migration Guide for upgrading a Turbine 2.3.3 application to Turbine 4.0M1. See the Turbine Wiki at http://wiki.apache.org/turbine/Turbine4/Turbine4.0M1/Migrate233 I would like to invite everyone to add your own experiences to the page. Feedback to the topics already covered is also very welcome. Bye, Thomas. --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@turbine.apache.org For additional commands, e-mail: dev-h...@turbine.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@turbine.apache.org For additional commands, e-mail: dev-h...@turbine.apache.org