Pues la solución tenia muy buena pinta pero tampoco me funciona
Deje mi método así (creo que era lo que me decías)
public void prepareResponse(Response response) {
response.setHeader("Content-type","image/jpeg");
response.setHeader("Content-Disposition", "inline;filename=" + filename+ ((extension == null) ? "" : ("." +extension)));
}
Estoy también en el foro de Tapestry comentándolo a ver si sale....
En cuanto lo tenga pondré por aquí la solución