You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Ruksen Inanir <ru...@ericsson.com> on 2010/08/10 11:10:56 UTC

Stream redirection problem when using JFreeChart with Tapestry

Hi,
  I want to display a line-chart for my application. I tested chenille-kit chart component it worked quite good, but it does not support Dates on the x-axis. I want to to draw time-series on the chart. So I decided to use JFreeChart. The link http://wiki.apache.org/tapestry/Tapestry5HowToCreateGenericGraphComponent describes the usage of JFreeChart with Tapestry. I used to code as it is, I put the Chart.java under components package, Prepared the LineChartPage.java and LineChartPage.tml. The page rendered, displayed but the chart is not displayed. When I look at the Jboss console I saw the "neither a stream response nor a redirect response was generated for this action request." exception;

[org.apache.tapestry5.services.TapestryModule.RequestExceptionHandler] Processing of request failed with uncaught exception: Sanity check - neither a stream response nor a redirect response was generated for this action request.
java.lang.IllegalStateException: Sanity check - neither a stream response nor a redirect response was generated for this action request.
	at org.apache.tapestry5.internal.services.ImmediateActionRenderResponseFilter.handle(ImmediateActionRenderResponseFilter.java:63)
	at $ComponentEventRequestHandler_12a5b36106e.handle($ComponentEventRequestHandler_12a5b36106e.java)
	at org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
	at $ComponentEventRequestHandler_12a5b36106e.handle($ComponentEventRequestHandler_12a5b36106e.java)
	at org.apache.tapestry5.upload.internal.services.UploadExceptionFilter.handle(UploadExceptionFilter.java:75)
	at $ComponentEventRequestHandler_12a5b36106e.handle($ComponentEventRequestHandler_12a5b36106e.java)
	at org.apache.tapestry5.services.TapestryModule$36.handle(TapestryModule.java:2164)
	at $ComponentEventRequestHandler_12a5b36106e.handle($ComponentEventRequestHandler_12a5b36106e.java)
	at $ComponentEventRequestHandler_12a5b361006.handle($ComponentEventRequestHandler_12a5b361006.java)
	at org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handleComponentEvent(ComponentRequestHandlerTerminator.java:43)
	at $ComponentRequestHandler_12a5b360ff8.handleComponentEvent($ComponentRequestHandler_12a5b360ff8.java)
	at org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:46)

Did anyone encountered this exception? Or do you have any idea of the cause? Or a better solution to display time-series charts, which contain time information on x-axis.

Regars,
Ruksen
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Stream redirection problem when using JFreeChart with Tapestry

Posted by Chuck Kring <cj...@pacbell.net>.
  You should try to separate JFreeChart from Tapestry.   As a test, have 
the onChart getStream return a FileInputStream from a known-good jpeg 
file.  This will allow you to determine if the problem is in the 
Tapestry event handling or the chart.

Chuck

On 8/13/2010 3:56 AM, Ruksen Inanir wrote:
>
>
>
> Yes it seems to be valid. I wrote some lines of code which saves the image to a file before returning the stream just to see if the stream returned belongs to image. And image file is created correctly.
> Somehow I cannot redirect to stream to page, although it actually is created..
>
>
>
> -----Original Message-----
> From: Chuck Kring [mailto:cjkring@pacbell.net]
> Sent: Friday, August 13, 2010 2:08 AM
> To: users@tapestry.apache.org
> Subject: Re: Stream redirection problem when using JFreeChart with Tapestry
>
>
>    Did you verify that the _context in onChart() is valid?
>
> On 8/12/2010 1:45 PM, Ruksen Inanir wrote:
>> Thanks for the response. I had not post the Chart component to keep
>> the mail shorter. But here it is;
>>
>> public class Chart {
>>       @Inject
>>       private ComponentResources _resources;
>>       @Inject
>>       private TypeCoercer _coercer;
>>       /**list(array) of paired values(label&   value): [String,Number,String,Number,...]*/
>>       @Parameter(required=true)
>>       private JFreeChart _chart;
>>       @Persist
>>       private JFreeChart _context;
>>       @Parameter(required=true)
>>       private int _width;
>>       @Parameter(required=true)
>>       private int _height;
>>
>>       void beginRender(MarkupWriter writer)
>>       {
>>           _context=_chart;
>>           Object[] params = { new Integer(_width),
>>                               new Integer(_height) };
>>
>>           //generate action link
>>           Link link = _resources.createEventLink("chart", params);
>>           Element img = writer.element("img", "src", link);
>>           _resources.renderInformalParameters(writer);
>>       }
>>
>>       void afterRender(MarkupWriter writer)
>>       {
>>           writer.end();
>>       }
>>
>>       public StreamResponse onChart(final int width, final int height/*, Object ...rest*/){
>>           return new StreamResponse(){
>>               public String getContentType(){
>>                   return "image/jpeg";
>>               }
>>               public InputStream getStream() throws IOException {
>>                   BufferedImage image  = _context.createBufferedImage(width, height);
>>                   ByteArrayOutputStream byteArray = new ByteArrayOutputStream() ;
>>                   ChartUtilities.writeBufferedImageAsJPEG(byteArray, image) ;
>>                   return new ByteArrayInputStream(byteArray.toByteArray());
>>               }
>>               public void prepareResponse(Response response){}
>>           };
>>       }
>> }
>>
>>
>> -----Original Message-----
>> From: Chuck Kring [mailto:cjkring@pacbell.net]
>> Sent: Thursday, August 12, 2010 11:32 PM
>> Cc: Tapestry users
>> Subject: Re: Stream redirection problem when using JFreeChart with
>> Tapestry
>>
>>
>>     A few things:
>>
>> 1) You didn't include the chart component.  It's the thing that is generating the exception.
>>
>> 2) I would verify that  _context in getStream() is a valid JFreeChart
>> and that ChartUtils.writeBufferedImageAsJpeg works correctly.   I
>> suspect that a problem with the chart is causing getStream() to fail, which then causes the Chart onChart() event to not return a StreamResponse.
>>
>> I generate charts in a slightly different manner than this example:
>>
>> a) I use Chart as a base object and extend Chart for my individual
>> chart types.  For example, I don't call<t:chart  t:chart=lineChart>
>> but use MyLineChart extends Chart and call<t:myLinerChart
>> nodeId="...">
>>
>> b) The code to create the chart is in the derived class rather than the page class.  I don't pass the serialized chart object to the client as a context.  Rather, the context contains the identity of the object to be charted - in my case a nodeId - and the chart is generated by the
>> component rather than the page.   One benefit of this approach is it
>> allows me to use the same chart on different pages.
>>
>> c) I personally like PNG as an output format rather than JPEG.
>>
>> Once again, make sure that the actual chart is working correctly.
>>
>> Chuck
>>
>> public class MyParticularChart extends Chart{
>>
>>        private static final Logger logger =
>> Logger.getLogger("gateway.components.MyParticularChart ");
>>
>>        public StreamResponse onChart(short id, long timestamp)
>>        {
>>            BSU bsu = (BSU)Node.getByNodeId(id);
>>            ArrayList<Motecomm>   list =
>> MotecommCache.getInstance().getList(bsu, getTimeService(),
>> getSession());
>>
>>            synchronized(ChartMutex.getMutex()){
>>
>>                TimeSeriesCollection dataset = new TimeSeriesCollection();
>>                addBSUTimeSeries(bsu.getIdleVariance(), list, dataset);
>>
>>
>>                final JFreeChart chart = ChartFactory.createTimeSeriesChart(
>>                        null, // title
>>                        null,             // x-axis label
>>                        null,   // y-axis label
>>                        null,            // data
>>                        true,               // create legend?
>>                        false,               // generate tooltips?
>>                        false               // generate URLs?
>>                );
>>
>>                XYItemRenderer r = chart.getXYPlot().getRenderer();
>>                r.setSeriesPaint(0, Color.darkGray);
>>                r.setSeriesPaint(1, Color.RED);
>>                r.setSeriesPaint(2, Color.GREEN);
>>                r.setSeriesPaint(3, Color.GRAY);
>>
>>                XYPlot plot = chart.getXYPlot();
>>                plot.setRangeAxisLocation(1, AxisLocation.BOTTOM_OR_RIGHT);
>>                NumberAxis axis = new NumberAxis("");
>>                axis.setRange(new Range(0,4 * bsu.getIdleVariance()), true, false );
>>                plot.setRangeAxis(0, axis);
>>                plot.setDataset(1,dataset);
>>
>>                return new StreamResponse(){
>>                    public String getContentType(){
>>                        return "image/png";
>>                    }
>>                    public InputStream getStream() throws IOException {
>>                        BufferedImage image  = chart.createBufferedImage(500, 175);
>>                        ByteArrayOutputStream byteArray = new
>> ByteArrayOutputStream() ;
>>
>> ChartUtilities.writeBufferedImageAsPNG(byteArray,
>> image) ;
>>                        return new
>> ByteArrayInputStream(byteArray.toByteArray());
>>                    }
>>                    public void prepareResponse(Response response){}
>>                };
>>            }
>>        }
>>
>> On 8/12/2010 11:53 AM, Ruksen Inanir wrote:
>>> Hi,
>>>       I placed the the exact same Chart.java from http://wiki.apache.org/tapestry/Tapestry5HowToCreateGenericGraphComponent under the package 'com.mycompany.myproject.webapp.components'. My tapestry version is 5.1.0.5. And I use jfreechart 1.0.12.
>>>
>>> here is my \src\main\webapp\reports\LineChartPage.tml;
>>>
>>> <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
>>>        <body>
>>>            <h1>Line Chart</h1>
>>>            <t:chart width="200" height="150" chart="lineChart"/>
>>>        </body>
>>> </html>
>>>
>>> And below is the LineChartPage.java under package
>>> com.mycompany.myproject.webapp.pages.reports;
>>>
>>> public class LineChartPage {
>>>        public JFreeChart getLineChart() {
>>>            XYSeries series = new XYSeries("Average Size");
>>>            series.add(20.0, 10.0);
>>>            series.add(40.0, 20.0);
>>>            series.add(70.0, 50.0);
>>>            XYDataset xyDataset = new XYSeriesCollection(series);
>>>            final JFreeChart chart = ChartFactory.createXYLineChart
>>>                    ("Sample XY Chart",  // Title
>>>                            "Height",           // X-Axis label
>>>                            "Weight",           // Y-Axis label
>>>                            xyDataset,          // Dataset
>>>                            PlotOrientation.HORIZONTAL,
>>>                            true,                // Show legend
>>>                            true,                            // Tooltips
>>>                            true                             // Urls
>>>                    );
>>>
>>>            return chart;
>>>        }
>>> }
>>>
>>> Everything seems to be right but I get the exception; 20:39:44,240
>>> ERROR [RequestExceptionHandler] Processing of request failed with uncaught exception: Sanity check - neither a stream response nor a redirect response was generated for this action request.
>>> java.lang.IllegalStateException: Sanity check - neither a stream response nor a redirect response was generated for this action request.
>>>            at org.apache.tapestry5.internal.services.ImmediateActionRenderResponseFilter.handle(ImmediateActionRenderResponseFilter.java:63)
>>>            at $ComponentEventRequestHandler_12a675b8084.handle($ComponentEventRequestHandler_12a675b8084.java)
>>>            at org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
>>>            at $ComponentEventRequestHandler_12a675b8084.handle($ComponentEventRequestHandler_12a675b8084.java)
>>>            at org.apache.tapestry5.upload.internal.services.UploadExceptionFilter.handle(UploadExceptionFilter.java:75)
>>>            at $ComponentEventRequestHandler_12a675b8084.handle($ComponentEventRequestHandler_12a675b8084.java)
>>>            at org.apache.tapestry5.services.TapestryModule$36.handle(TapestryModule.java:2164)
>>>            at $ComponentEventRequestHandler_12a675b8084.handle($ComponentEventRequestHandler_12a675b8084.java)
>>>            at $ComponentEventRequestHandler_12a675b7fca.handle($ComponentEventRequestHandler_12a675b7fca.java)
>>>            at
>>> org.apache.tapestry5.internal.services.ComponentRequestHandlerTermina
>>> t
>>> or.handleComponentEvent(ComponentRequestHandlerTerminator.java:43)
>>>
>>>
>>>
>>> -----Original Message-----
>>> From: Chuck Kring [mailto:cjkring@pacbell.net]
>>> Sent: Tuesday, August 10, 2010 8:28 PM
>>> To: users@tapestry.apache.org
>>> Subject: Re: Stream redirection problem when using JFreeChart with
>>> Tapestry
>>>
>>>
>>>      Hi.
>>>
>>> I use JfreeChart extensively with T 5.0.1.5 and I'm very happy with
>>> it.   Most likely your exception is caused by a bug in your .tml or the
>>> underlying class.     If you could reduce the template and the class to
>>> the minimum size that still shows the bug and post both to a follow up email, somebody on the list will probably be able to help you.
>>>
>>> Chuck
>>>
>>> On 8/10/2010 2:10 AM, Ruksen Inanir wrote:
>>>> Hi,
>>>>       I want to display a line-chart for my application. I tested
>>>> chenille-kit chart component it worked quite good, but it does not
>>>> support Dates on the x-axis. I want to to draw time-series on the
>>>> chart. So I decided to use JFreeChart. The link
>>>> http://wiki.apache.org/tapestry/Tapestry5HowToCreateGenericGraphComp
>>>> o n ent describes the usage of JFreeChart with Tapestry. I used to
>>>> code as it is, I put the Chart.java under components package,
>>>> Prepared the LineChartPage.java and LineChartPage.tml. The page
>>>> rendered, displayed but the chart is not displayed. When I look at
>>>> the Jboss console I saw the "neither a stream response nor a
>>>> redirect response was generated for this action request." exception;
>>>>
>>>> [org.apache.tapestry5.services.TapestryModule.RequestExceptionHandler] Processing of request failed with uncaught exception: Sanity check - neither a stream response nor a redirect response was generated for this action request.
>>>> java.lang.IllegalStateException: Sanity check - neither a stream response nor a redirect response was generated for this action request.
>>>> 	at org.apache.tapestry5.internal.services.ImmediateActionRenderResponseFilter.handle(ImmediateActionRenderResponseFilter.java:63)
>>>> 	at $ComponentEventRequestHandler_12a5b36106e.handle($ComponentEventRequestHandler_12a5b36106e.java)
>>>> 	at org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
>>>> 	at $ComponentEventRequestHandler_12a5b36106e.handle($ComponentEventRequestHandler_12a5b36106e.java)
>>>> 	at org.apache.tapestry5.upload.internal.services.UploadExceptionFilter.handle(UploadExceptionFilter.java:75)
>>>> 	at $ComponentEventRequestHandler_12a5b36106e.handle($ComponentEventRequestHandler_12a5b36106e.java)
>>>> 	at org.apache.tapestry5.services.TapestryModule$36.handle(TapestryModule.java:2164)
>>>> 	at $ComponentEventRequestHandler_12a5b36106e.handle($ComponentEventRequestHandler_12a5b36106e.java)
>>>> 	at $ComponentEventRequestHandler_12a5b361006.handle($ComponentEventRequestHandler_12a5b361006.java)
>>>> 	at org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handleComponentEvent(ComponentRequestHandlerTerminator.java:43)
>>>> 	at $ComponentRequestHandler_12a5b360ff8.handleComponentEvent($ComponentRequestHandler_12a5b360ff8.java)
>>>> 	at
>>>> org.apache.tapestry5.internal.services.ComponentEventDispatcher.disp
>>>> a
>>>> t
>>>> ch(ComponentEventDispatcher.java:46)
>>>>
>>>> Did anyone encountered this exception? Or do you have any idea of the cause? Or a better solution to display time-series charts, which contain time information on x-axis.
>>>>
>>>> Regars,
>>>> Ruksen
>>>> --------------------------------------------------------------------
>>>> - To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>
>>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>
>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


RE: Stream redirection problem when using JFreeChart with Tapestry

Posted by Ruksen Inanir <ru...@ericsson.com>.
 


Yes it seems to be valid. I wrote some lines of code which saves the image to a file before returning the stream just to see if the stream returned belongs to image. And image file is created correctly.
Somehow I cannot redirect to stream to page, although it actually is created..



-----Original Message-----
From: Chuck Kring [mailto:cjkring@pacbell.net] 
Sent: Friday, August 13, 2010 2:08 AM
To: users@tapestry.apache.org
Subject: Re: Stream redirection problem when using JFreeChart with Tapestry


  Did you verify that the _context in onChart() is valid?

On 8/12/2010 1:45 PM, Ruksen Inanir wrote:
> Thanks for the response. I had not post the Chart component to keep 
> the mail shorter. But here it is;
>
> public class Chart {
>      @Inject
>      private ComponentResources _resources;
>      @Inject
>      private TypeCoercer _coercer;
>      /**list(array) of paired values(label&  value): [String,Number,String,Number,...]*/
>      @Parameter(required=true)
>      private JFreeChart _chart;
>      @Persist
>      private JFreeChart _context;
>      @Parameter(required=true)
>      private int _width;
>      @Parameter(required=true)
>      private int _height;
>
>      void beginRender(MarkupWriter writer)
>      {
>          _context=_chart;
>          Object[] params = { new Integer(_width),
>                              new Integer(_height) };
>
>          //generate action link
>          Link link = _resources.createEventLink("chart", params);
>          Element img = writer.element("img", "src", link);
>          _resources.renderInformalParameters(writer);
>      }
>
>      void afterRender(MarkupWriter writer)
>      {
>          writer.end();
>      }
>
>      public StreamResponse onChart(final int width, final int height/*, Object ...rest*/){
>          return new StreamResponse(){
>              public String getContentType(){
>                  return "image/jpeg";
>              }
>              public InputStream getStream() throws IOException {
>                  BufferedImage image  = _context.createBufferedImage(width, height);
>                  ByteArrayOutputStream byteArray = new ByteArrayOutputStream() ;
>                  ChartUtilities.writeBufferedImageAsJPEG(byteArray, image) ;
>                  return new ByteArrayInputStream(byteArray.toByteArray());
>              }
>              public void prepareResponse(Response response){}
>          };
>      }
> }
>
>
> -----Original Message-----
> From: Chuck Kring [mailto:cjkring@pacbell.net]
> Sent: Thursday, August 12, 2010 11:32 PM
> Cc: Tapestry users
> Subject: Re: Stream redirection problem when using JFreeChart with 
> Tapestry
>
>
>    A few things:
>
> 1) You didn't include the chart component.  It's the thing that is generating the exception.
>
> 2) I would verify that  _context in getStream() is a valid JFreeChart
> and that ChartUtils.writeBufferedImageAsJpeg works correctly.   I
> suspect that a problem with the chart is causing getStream() to fail, which then causes the Chart onChart() event to not return a StreamResponse.
>
> I generate charts in a slightly different manner than this example:
>
> a) I use Chart as a base object and extend Chart for my individual 
> chart types.  For example, I don't call<t:chart  t:chart=lineChart>  
> but use MyLineChart extends Chart and call<t:myLinerChart 
> nodeId="...">
>
> b) The code to create the chart is in the derived class rather than the page class.  I don't pass the serialized chart object to the client as a context.  Rather, the context contains the identity of the object to be charted - in my case a nodeId - and the chart is generated by the
> component rather than the page.   One benefit of this approach is it
> allows me to use the same chart on different pages.
>
> c) I personally like PNG as an output format rather than JPEG.
>
> Once again, make sure that the actual chart is working correctly.
>
> Chuck
>
> public class MyParticularChart extends Chart{
>
>       private static final Logger logger = 
> Logger.getLogger("gateway.components.MyParticularChart ");
>
>       public StreamResponse onChart(short id, long timestamp)
>       {
>           BSU bsu = (BSU)Node.getByNodeId(id);
>           ArrayList<Motecomm>  list =
> MotecommCache.getInstance().getList(bsu, getTimeService(), 
> getSession());
>
>           synchronized(ChartMutex.getMutex()){
>
>               TimeSeriesCollection dataset = new TimeSeriesCollection();
>               addBSUTimeSeries(bsu.getIdleVariance(), list, dataset);
>
>
>               final JFreeChart chart = ChartFactory.createTimeSeriesChart(
>                       null, // title
>                       null,             // x-axis label
>                       null,   // y-axis label
>                       null,            // data
>                       true,               // create legend?
>                       false,               // generate tooltips?
>                       false               // generate URLs?
>               );
>
>               XYItemRenderer r = chart.getXYPlot().getRenderer();
>               r.setSeriesPaint(0, Color.darkGray);
>               r.setSeriesPaint(1, Color.RED);
>               r.setSeriesPaint(2, Color.GREEN);
>               r.setSeriesPaint(3, Color.GRAY);
>
>               XYPlot plot = chart.getXYPlot();
>               plot.setRangeAxisLocation(1, AxisLocation.BOTTOM_OR_RIGHT);
>               NumberAxis axis = new NumberAxis("");
>               axis.setRange(new Range(0,4 * bsu.getIdleVariance()), true, false );
>               plot.setRangeAxis(0, axis);
>               plot.setDataset(1,dataset);
>
>               return new StreamResponse(){
>                   public String getContentType(){
>                       return "image/png";
>                   }
>                   public InputStream getStream() throws IOException {
>                       BufferedImage image  = chart.createBufferedImage(500, 175);
>                       ByteArrayOutputStream byteArray = new
> ByteArrayOutputStream() ;
>                       
> ChartUtilities.writeBufferedImageAsPNG(byteArray,
> image) ;
>                       return new
> ByteArrayInputStream(byteArray.toByteArray());
>                   }
>                   public void prepareResponse(Response response){}
>               };
>           }
>       }
>
> On 8/12/2010 11:53 AM, Ruksen Inanir wrote:
>> Hi,
>>      I placed the the exact same Chart.java from http://wiki.apache.org/tapestry/Tapestry5HowToCreateGenericGraphComponent under the package 'com.mycompany.myproject.webapp.components'. My tapestry version is 5.1.0.5. And I use jfreechart 1.0.12.
>>
>> here is my \src\main\webapp\reports\LineChartPage.tml;
>>
>> <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
>>       <body>
>>           <h1>Line Chart</h1>
>>           <t:chart width="200" height="150" chart="lineChart"/>
>>       </body>
>> </html>
>>
>> And below is the LineChartPage.java under package 
>> com.mycompany.myproject.webapp.pages.reports;
>>
>> public class LineChartPage {
>>       public JFreeChart getLineChart() {
>>           XYSeries series = new XYSeries("Average Size");
>>           series.add(20.0, 10.0);
>>           series.add(40.0, 20.0);
>>           series.add(70.0, 50.0);
>>           XYDataset xyDataset = new XYSeriesCollection(series);
>>           final JFreeChart chart = ChartFactory.createXYLineChart
>>                   ("Sample XY Chart",  // Title
>>                           "Height",           // X-Axis label
>>                           "Weight",           // Y-Axis label
>>                           xyDataset,          // Dataset
>>                           PlotOrientation.HORIZONTAL,
>>                           true,                // Show legend
>>                           true,                            // Tooltips
>>                           true                             // Urls
>>                   );
>>
>>           return chart;
>>       }
>> }
>>
>> Everything seems to be right but I get the exception; 20:39:44,240 
>> ERROR [RequestExceptionHandler] Processing of request failed with uncaught exception: Sanity check - neither a stream response nor a redirect response was generated for this action request.
>> java.lang.IllegalStateException: Sanity check - neither a stream response nor a redirect response was generated for this action request.
>>           at org.apache.tapestry5.internal.services.ImmediateActionRenderResponseFilter.handle(ImmediateActionRenderResponseFilter.java:63)
>>           at $ComponentEventRequestHandler_12a675b8084.handle($ComponentEventRequestHandler_12a675b8084.java)
>>           at org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
>>           at $ComponentEventRequestHandler_12a675b8084.handle($ComponentEventRequestHandler_12a675b8084.java)
>>           at org.apache.tapestry5.upload.internal.services.UploadExceptionFilter.handle(UploadExceptionFilter.java:75)
>>           at $ComponentEventRequestHandler_12a675b8084.handle($ComponentEventRequestHandler_12a675b8084.java)
>>           at org.apache.tapestry5.services.TapestryModule$36.handle(TapestryModule.java:2164)
>>           at $ComponentEventRequestHandler_12a675b8084.handle($ComponentEventRequestHandler_12a675b8084.java)
>>           at $ComponentEventRequestHandler_12a675b7fca.handle($ComponentEventRequestHandler_12a675b7fca.java)
>>           at
>> org.apache.tapestry5.internal.services.ComponentRequestHandlerTermina
>> t
>> or.handleComponentEvent(ComponentRequestHandlerTerminator.java:43)
>>
>>
>>
>> -----Original Message-----
>> From: Chuck Kring [mailto:cjkring@pacbell.net]
>> Sent: Tuesday, August 10, 2010 8:28 PM
>> To: users@tapestry.apache.org
>> Subject: Re: Stream redirection problem when using JFreeChart with 
>> Tapestry
>>
>>
>>     Hi.
>>
>> I use JfreeChart extensively with T 5.0.1.5 and I'm very happy with
>> it.   Most likely your exception is caused by a bug in your .tml or the
>> underlying class.     If you could reduce the template and the class to
>> the minimum size that still shows the bug and post both to a follow up email, somebody on the list will probably be able to help you.
>>
>> Chuck
>>
>> On 8/10/2010 2:10 AM, Ruksen Inanir wrote:
>>> Hi,
>>>      I want to display a line-chart for my application. I tested 
>>> chenille-kit chart component it worked quite good, but it does not 
>>> support Dates on the x-axis. I want to to draw time-series on the 
>>> chart. So I decided to use JFreeChart. The link 
>>> http://wiki.apache.org/tapestry/Tapestry5HowToCreateGenericGraphComp
>>> o n ent describes the usage of JFreeChart with Tapestry. I used to 
>>> code as it is, I put the Chart.java under components package, 
>>> Prepared the LineChartPage.java and LineChartPage.tml. The page 
>>> rendered, displayed but the chart is not displayed. When I look at 
>>> the Jboss console I saw the "neither a stream response nor a 
>>> redirect response was generated for this action request." exception;
>>>
>>> [org.apache.tapestry5.services.TapestryModule.RequestExceptionHandler] Processing of request failed with uncaught exception: Sanity check - neither a stream response nor a redirect response was generated for this action request.
>>> java.lang.IllegalStateException: Sanity check - neither a stream response nor a redirect response was generated for this action request.
>>> 	at org.apache.tapestry5.internal.services.ImmediateActionRenderResponseFilter.handle(ImmediateActionRenderResponseFilter.java:63)
>>> 	at $ComponentEventRequestHandler_12a5b36106e.handle($ComponentEventRequestHandler_12a5b36106e.java)
>>> 	at org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
>>> 	at $ComponentEventRequestHandler_12a5b36106e.handle($ComponentEventRequestHandler_12a5b36106e.java)
>>> 	at org.apache.tapestry5.upload.internal.services.UploadExceptionFilter.handle(UploadExceptionFilter.java:75)
>>> 	at $ComponentEventRequestHandler_12a5b36106e.handle($ComponentEventRequestHandler_12a5b36106e.java)
>>> 	at org.apache.tapestry5.services.TapestryModule$36.handle(TapestryModule.java:2164)
>>> 	at $ComponentEventRequestHandler_12a5b36106e.handle($ComponentEventRequestHandler_12a5b36106e.java)
>>> 	at $ComponentEventRequestHandler_12a5b361006.handle($ComponentEventRequestHandler_12a5b361006.java)
>>> 	at org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handleComponentEvent(ComponentRequestHandlerTerminator.java:43)
>>> 	at $ComponentRequestHandler_12a5b360ff8.handleComponentEvent($ComponentRequestHandler_12a5b360ff8.java)
>>> 	at
>>> org.apache.tapestry5.internal.services.ComponentEventDispatcher.disp
>>> a
>>> t
>>> ch(ComponentEventDispatcher.java:46)
>>>
>>> Did anyone encountered this exception? Or do you have any idea of the cause? Or a better solution to display time-series charts, which contain time information on x-axis.
>>>
>>> Regars,
>>> Ruksen
>>> --------------------------------------------------------------------
>>> - To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>
>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Stream redirection problem when using JFreeChart with Tapestry

Posted by Chuck Kring <cj...@pacbell.net>.
  Did you verify that the _context in onChart() is valid?

On 8/12/2010 1:45 PM, Ruksen Inanir wrote:
> Thanks for the response. I had not post the Chart component to keep the mail shorter. But here it is;
>
> public class Chart {
>      @Inject
>      private ComponentResources _resources;
>      @Inject
>      private TypeCoercer _coercer;
>      /**list(array) of paired values(label&  value): [String,Number,String,Number,...]*/
>      @Parameter(required=true)
>      private JFreeChart _chart;
>      @Persist
>      private JFreeChart _context;
>      @Parameter(required=true)
>      private int _width;
>      @Parameter(required=true)
>      private int _height;
>
>      void beginRender(MarkupWriter writer)
>      {
>          _context=_chart;
>          Object[] params = { new Integer(_width),
>                              new Integer(_height) };
>
>          //generate action link
>          Link link = _resources.createEventLink("chart", params);
>          Element img = writer.element("img", "src", link);
>          _resources.renderInformalParameters(writer);
>      }
>
>      void afterRender(MarkupWriter writer)
>      {
>          writer.end();
>      }
>
>      public StreamResponse onChart(final int width, final int height/*, Object ...rest*/){
>          return new StreamResponse(){
>              public String getContentType(){
>                  return "image/jpeg";
>              }
>              public InputStream getStream() throws IOException {
>                  BufferedImage image  = _context.createBufferedImage(width, height);
>                  ByteArrayOutputStream byteArray = new ByteArrayOutputStream() ;
>                  ChartUtilities.writeBufferedImageAsJPEG(byteArray, image) ;
>                  return new ByteArrayInputStream(byteArray.toByteArray());
>              }
>              public void prepareResponse(Response response){}
>          };
>      }
> }
>
>
> -----Original Message-----
> From: Chuck Kring [mailto:cjkring@pacbell.net]
> Sent: Thursday, August 12, 2010 11:32 PM
> Cc: Tapestry users
> Subject: Re: Stream redirection problem when using JFreeChart with Tapestry
>
>
>    A few things:
>
> 1) You didn't include the chart component.  It's the thing that is generating the exception.
>
> 2) I would verify that  _context in getStream() is a valid JFreeChart
> and that ChartUtils.writeBufferedImageAsJpeg works correctly.   I
> suspect that a problem with the chart is causing getStream() to fail, which then causes the Chart onChart() event to not return a StreamResponse.
>
> I generate charts in a slightly different manner than this example:
>
> a) I use Chart as a base object and extend Chart for my individual chart types.  For example, I don't call<t:chart  t:chart=lineChart>  but use MyLineChart extends Chart and call<t:myLinerChart nodeId="...">
>
> b) The code to create the chart is in the derived class rather than the page class.  I don't pass the serialized chart object to the client as a context.  Rather, the context contains the identity of the object to be charted - in my case a nodeId - and the chart is generated by the
> component rather than the page.   One benefit of this approach is it
> allows me to use the same chart on different pages.
>
> c) I personally like PNG as an output format rather than JPEG.
>
> Once again, make sure that the actual chart is working correctly.
>
> Chuck
>
> public class MyParticularChart extends Chart{
>
>       private static final Logger logger = Logger.getLogger("gateway.components.MyParticularChart ");
>
>       public StreamResponse onChart(short id, long timestamp)
>       {
>           BSU bsu = (BSU)Node.getByNodeId(id);
>           ArrayList<Motecomm>  list =
> MotecommCache.getInstance().getList(bsu, getTimeService(), getSession());
>
>           synchronized(ChartMutex.getMutex()){
>
>               TimeSeriesCollection dataset = new TimeSeriesCollection();
>               addBSUTimeSeries(bsu.getIdleVariance(), list, dataset);
>
>
>               final JFreeChart chart = ChartFactory.createTimeSeriesChart(
>                       null, // title
>                       null,             // x-axis label
>                       null,   // y-axis label
>                       null,            // data
>                       true,               // create legend?
>                       false,               // generate tooltips?
>                       false               // generate URLs?
>               );
>
>               XYItemRenderer r = chart.getXYPlot().getRenderer();
>               r.setSeriesPaint(0, Color.darkGray);
>               r.setSeriesPaint(1, Color.RED);
>               r.setSeriesPaint(2, Color.GREEN);
>               r.setSeriesPaint(3, Color.GRAY);
>
>               XYPlot plot = chart.getXYPlot();
>               plot.setRangeAxisLocation(1, AxisLocation.BOTTOM_OR_RIGHT);
>               NumberAxis axis = new NumberAxis("");
>               axis.setRange(new Range(0,4 * bsu.getIdleVariance()), true, false );
>               plot.setRangeAxis(0, axis);
>               plot.setDataset(1,dataset);
>
>               return new StreamResponse(){
>                   public String getContentType(){
>                       return "image/png";
>                   }
>                   public InputStream getStream() throws IOException {
>                       BufferedImage image  = chart.createBufferedImage(500, 175);
>                       ByteArrayOutputStream byteArray = new
> ByteArrayOutputStream() ;
>                       ChartUtilities.writeBufferedImageAsPNG(byteArray,
> image) ;
>                       return new
> ByteArrayInputStream(byteArray.toByteArray());
>                   }
>                   public void prepareResponse(Response response){}
>               };
>           }
>       }
>
> On 8/12/2010 11:53 AM, Ruksen Inanir wrote:
>> Hi,
>>      I placed the the exact same Chart.java from http://wiki.apache.org/tapestry/Tapestry5HowToCreateGenericGraphComponent under the package 'com.mycompany.myproject.webapp.components'. My tapestry version is 5.1.0.5. And I use jfreechart 1.0.12.
>>
>> here is my \src\main\webapp\reports\LineChartPage.tml;
>>
>> <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
>>       <body>
>>           <h1>Line Chart</h1>
>>           <t:chart width="200" height="150" chart="lineChart"/>
>>       </body>
>> </html>
>>
>> And below is the LineChartPage.java under package
>> com.mycompany.myproject.webapp.pages.reports;
>>
>> public class LineChartPage {
>>       public JFreeChart getLineChart() {
>>           XYSeries series = new XYSeries("Average Size");
>>           series.add(20.0, 10.0);
>>           series.add(40.0, 20.0);
>>           series.add(70.0, 50.0);
>>           XYDataset xyDataset = new XYSeriesCollection(series);
>>           final JFreeChart chart = ChartFactory.createXYLineChart
>>                   ("Sample XY Chart",  // Title
>>                           "Height",           // X-Axis label
>>                           "Weight",           // Y-Axis label
>>                           xyDataset,          // Dataset
>>                           PlotOrientation.HORIZONTAL,
>>                           true,                // Show legend
>>                           true,                            // Tooltips
>>                           true                             // Urls
>>                   );
>>
>>           return chart;
>>       }
>> }
>>
>> Everything seems to be right but I get the exception; 20:39:44,240
>> ERROR [RequestExceptionHandler] Processing of request failed with uncaught exception: Sanity check - neither a stream response nor a redirect response was generated for this action request.
>> java.lang.IllegalStateException: Sanity check - neither a stream response nor a redirect response was generated for this action request.
>>           at org.apache.tapestry5.internal.services.ImmediateActionRenderResponseFilter.handle(ImmediateActionRenderResponseFilter.java:63)
>>           at $ComponentEventRequestHandler_12a675b8084.handle($ComponentEventRequestHandler_12a675b8084.java)
>>           at org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
>>           at $ComponentEventRequestHandler_12a675b8084.handle($ComponentEventRequestHandler_12a675b8084.java)
>>           at org.apache.tapestry5.upload.internal.services.UploadExceptionFilter.handle(UploadExceptionFilter.java:75)
>>           at $ComponentEventRequestHandler_12a675b8084.handle($ComponentEventRequestHandler_12a675b8084.java)
>>           at org.apache.tapestry5.services.TapestryModule$36.handle(TapestryModule.java:2164)
>>           at $ComponentEventRequestHandler_12a675b8084.handle($ComponentEventRequestHandler_12a675b8084.java)
>>           at $ComponentEventRequestHandler_12a675b7fca.handle($ComponentEventRequestHandler_12a675b7fca.java)
>>           at
>> org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminat
>> or.handleComponentEvent(ComponentRequestHandlerTerminator.java:43)
>>
>>
>>
>> -----Original Message-----
>> From: Chuck Kring [mailto:cjkring@pacbell.net]
>> Sent: Tuesday, August 10, 2010 8:28 PM
>> To: users@tapestry.apache.org
>> Subject: Re: Stream redirection problem when using JFreeChart with
>> Tapestry
>>
>>
>>     Hi.
>>
>> I use JfreeChart extensively with T 5.0.1.5 and I'm very happy with
>> it.   Most likely your exception is caused by a bug in your .tml or the
>> underlying class.     If you could reduce the template and the class to
>> the minimum size that still shows the bug and post both to a follow up email, somebody on the list will probably be able to help you.
>>
>> Chuck
>>
>> On 8/10/2010 2:10 AM, Ruksen Inanir wrote:
>>> Hi,
>>>      I want to display a line-chart for my application. I tested
>>> chenille-kit chart component it worked quite good, but it does not
>>> support Dates on the x-axis. I want to to draw time-series on the
>>> chart. So I decided to use JFreeChart. The link
>>> http://wiki.apache.org/tapestry/Tapestry5HowToCreateGenericGraphCompo
>>> n ent describes the usage of JFreeChart with Tapestry. I used to code
>>> as it is, I put the Chart.java under components package, Prepared the
>>> LineChartPage.java and LineChartPage.tml. The page rendered,
>>> displayed but the chart is not displayed. When I look at the Jboss
>>> console I saw the "neither a stream response nor a redirect response
>>> was generated for this action request." exception;
>>>
>>> [org.apache.tapestry5.services.TapestryModule.RequestExceptionHandler] Processing of request failed with uncaught exception: Sanity check - neither a stream response nor a redirect response was generated for this action request.
>>> java.lang.IllegalStateException: Sanity check - neither a stream response nor a redirect response was generated for this action request.
>>> 	at org.apache.tapestry5.internal.services.ImmediateActionRenderResponseFilter.handle(ImmediateActionRenderResponseFilter.java:63)
>>> 	at $ComponentEventRequestHandler_12a5b36106e.handle($ComponentEventRequestHandler_12a5b36106e.java)
>>> 	at org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
>>> 	at $ComponentEventRequestHandler_12a5b36106e.handle($ComponentEventRequestHandler_12a5b36106e.java)
>>> 	at org.apache.tapestry5.upload.internal.services.UploadExceptionFilter.handle(UploadExceptionFilter.java:75)
>>> 	at $ComponentEventRequestHandler_12a5b36106e.handle($ComponentEventRequestHandler_12a5b36106e.java)
>>> 	at org.apache.tapestry5.services.TapestryModule$36.handle(TapestryModule.java:2164)
>>> 	at $ComponentEventRequestHandler_12a5b36106e.handle($ComponentEventRequestHandler_12a5b36106e.java)
>>> 	at $ComponentEventRequestHandler_12a5b361006.handle($ComponentEventRequestHandler_12a5b361006.java)
>>> 	at org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handleComponentEvent(ComponentRequestHandlerTerminator.java:43)
>>> 	at $ComponentRequestHandler_12a5b360ff8.handleComponentEvent($ComponentRequestHandler_12a5b360ff8.java)
>>> 	at
>>> org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispa
>>> t
>>> ch(ComponentEventDispatcher.java:46)
>>>
>>> Did anyone encountered this exception? Or do you have any idea of the cause? Or a better solution to display time-series charts, which contain time information on x-axis.
>>>
>>> Regars,
>>> Ruksen
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>
>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


RE: Stream redirection problem when using JFreeChart with Tapestry

Posted by Ruksen Inanir <ru...@ericsson.com>.
Thanks for the response. I had not post the Chart component to keep the mail shorter. But here it is;

public class Chart {
    @Inject
    private ComponentResources _resources;
    @Inject
    private TypeCoercer _coercer;
    /**list(array) of paired values(label & value): [String,Number,String,Number,...]*/
    @Parameter(required=true)
    private JFreeChart _chart;
    @Persist
    private JFreeChart _context;
    @Parameter(required=true)
    private int _width;
    @Parameter(required=true)
    private int _height;

    void beginRender(MarkupWriter writer)
    {
        _context=_chart;
        Object[] params = { new Integer(_width),
                            new Integer(_height) };
        
        //generate action link
        Link link = _resources.createEventLink("chart", params);
        Element img = writer.element("img", "src", link);
        _resources.renderInformalParameters(writer);
    }

    void afterRender(MarkupWriter writer)
    {
        writer.end();
    }

    public StreamResponse onChart(final int width, final int height/*, Object ...rest*/){
        return new StreamResponse(){
            public String getContentType(){
                return "image/jpeg";
            }
            public InputStream getStream() throws IOException {
                BufferedImage image  = _context.createBufferedImage(width, height);
                ByteArrayOutputStream byteArray = new ByteArrayOutputStream() ;
                ChartUtilities.writeBufferedImageAsJPEG(byteArray, image) ;
                return new ByteArrayInputStream(byteArray.toByteArray());
            }
            public void prepareResponse(Response response){}
        };
    }
}
 

-----Original Message-----
From: Chuck Kring [mailto:cjkring@pacbell.net] 
Sent: Thursday, August 12, 2010 11:32 PM
Cc: Tapestry users
Subject: Re: Stream redirection problem when using JFreeChart with Tapestry


  A few things:

1) You didn't include the chart component.  It's the thing that is generating the exception.

2) I would verify that  _context in getStream() is a valid JFreeChart 
and that ChartUtils.writeBufferedImageAsJpeg works correctly.   I 
suspect that a problem with the chart is causing getStream() to fail, which then causes the Chart onChart() event to not return a StreamResponse.

I generate charts in a slightly different manner than this example:

a) I use Chart as a base object and extend Chart for my individual chart types.  For example, I don't call <t:chart  t:chart=lineChart > but use MyLineChart extends Chart and call <t:myLinerChart nodeId="...">

b) The code to create the chart is in the derived class rather than the page class.  I don't pass the serialized chart object to the client as a context.  Rather, the context contains the identity of the object to be charted - in my case a nodeId - and the chart is generated by the 
component rather than the page.   One benefit of this approach is it 
allows me to use the same chart on different pages.

c) I personally like PNG as an output format rather than JPEG.

Once again, make sure that the actual chart is working correctly.

Chuck

public class MyParticularChart extends Chart{

     private static final Logger logger = Logger.getLogger("gateway.components.MyParticularChart ");

     public StreamResponse onChart(short id, long timestamp)
     {
         BSU bsu = (BSU)Node.getByNodeId(id);
         ArrayList<Motecomm> list =
MotecommCache.getInstance().getList(bsu, getTimeService(), getSession());

         synchronized(ChartMutex.getMutex()){

             TimeSeriesCollection dataset = new TimeSeriesCollection();
             addBSUTimeSeries(bsu.getIdleVariance(), list, dataset);


             final JFreeChart chart = ChartFactory.createTimeSeriesChart(
                     null, // title
                     null,             // x-axis label
                     null,   // y-axis label
                     null,            // data
                     true,               // create legend?
                     false,               // generate tooltips?
                     false               // generate URLs?
             );

             XYItemRenderer r = chart.getXYPlot().getRenderer();
             r.setSeriesPaint(0, Color.darkGray);
             r.setSeriesPaint(1, Color.RED);
             r.setSeriesPaint(2, Color.GREEN);
             r.setSeriesPaint(3, Color.GRAY);

             XYPlot plot = chart.getXYPlot();
             plot.setRangeAxisLocation(1, AxisLocation.BOTTOM_OR_RIGHT);
             NumberAxis axis = new NumberAxis("");
             axis.setRange(new Range(0,4 * bsu.getIdleVariance()), true, false );
             plot.setRangeAxis(0, axis);
             plot.setDataset(1,dataset);

             return new StreamResponse(){
                 public String getContentType(){
                     return "image/png";
                 }
                 public InputStream getStream() throws IOException {
                     BufferedImage image  = chart.createBufferedImage(500, 175);
                     ByteArrayOutputStream byteArray = new
ByteArrayOutputStream() ;
                     ChartUtilities.writeBufferedImageAsPNG(byteArray,
image) ;
                     return new
ByteArrayInputStream(byteArray.toByteArray());
                 }
                 public void prepareResponse(Response response){}
             };
         }
     }

On 8/12/2010 11:53 AM, Ruksen Inanir wrote:
>
> Hi,
>     I placed the the exact same Chart.java from http://wiki.apache.org/tapestry/Tapestry5HowToCreateGenericGraphComponent under the package 'com.mycompany.myproject.webapp.components'. My tapestry version is 5.1.0.5. And I use jfreechart 1.0.12.
>
> here is my \src\main\webapp\reports\LineChartPage.tml;
>
> <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
>      <body>
>          <h1>Line Chart</h1>
>          <t:chart width="200" height="150" chart="lineChart"/>
>      </body>
> </html>
>
> And below is the LineChartPage.java under package  
> com.mycompany.myproject.webapp.pages.reports;
>
> public class LineChartPage {
>      public JFreeChart getLineChart() {
>          XYSeries series = new XYSeries("Average Size");
>          series.add(20.0, 10.0);
>          series.add(40.0, 20.0);
>          series.add(70.0, 50.0);
>          XYDataset xyDataset = new XYSeriesCollection(series);
>          final JFreeChart chart = ChartFactory.createXYLineChart
>                  ("Sample XY Chart",  // Title
>                          "Height",           // X-Axis label
>                          "Weight",           // Y-Axis label
>                          xyDataset,          // Dataset
>                          PlotOrientation.HORIZONTAL,
>                          true,                // Show legend
>                          true,                            // Tooltips
>                          true                             // Urls
>                  );
>
>          return chart;
>      }
> }
>
> Everything seems to be right but I get the exception; 20:39:44,240 
> ERROR [RequestExceptionHandler] Processing of request failed with uncaught exception: Sanity check - neither a stream response nor a redirect response was generated for this action request.
> java.lang.IllegalStateException: Sanity check - neither a stream response nor a redirect response was generated for this action request.
>          at org.apache.tapestry5.internal.services.ImmediateActionRenderResponseFilter.handle(ImmediateActionRenderResponseFilter.java:63)
>          at $ComponentEventRequestHandler_12a675b8084.handle($ComponentEventRequestHandler_12a675b8084.java)
>          at org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
>          at $ComponentEventRequestHandler_12a675b8084.handle($ComponentEventRequestHandler_12a675b8084.java)
>          at org.apache.tapestry5.upload.internal.services.UploadExceptionFilter.handle(UploadExceptionFilter.java:75)
>          at $ComponentEventRequestHandler_12a675b8084.handle($ComponentEventRequestHandler_12a675b8084.java)
>          at org.apache.tapestry5.services.TapestryModule$36.handle(TapestryModule.java:2164)
>          at $ComponentEventRequestHandler_12a675b8084.handle($ComponentEventRequestHandler_12a675b8084.java)
>          at $ComponentEventRequestHandler_12a675b7fca.handle($ComponentEventRequestHandler_12a675b7fca.java)
>          at 
> org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminat
> or.handleComponentEvent(ComponentRequestHandlerTerminator.java:43)
>
>
>
> -----Original Message-----
> From: Chuck Kring [mailto:cjkring@pacbell.net]
> Sent: Tuesday, August 10, 2010 8:28 PM
> To: users@tapestry.apache.org
> Subject: Re: Stream redirection problem when using JFreeChart with 
> Tapestry
>
>
>    Hi.
>
> I use JfreeChart extensively with T 5.0.1.5 and I'm very happy with
> it.   Most likely your exception is caused by a bug in your .tml or the
> underlying class.     If you could reduce the template and the class to
> the minimum size that still shows the bug and post both to a follow up email, somebody on the list will probably be able to help you.
>
> Chuck
>
> On 8/10/2010 2:10 AM, Ruksen Inanir wrote:
>> Hi,
>>     I want to display a line-chart for my application. I tested 
>> chenille-kit chart component it worked quite good, but it does not 
>> support Dates on the x-axis. I want to to draw time-series on the 
>> chart. So I decided to use JFreeChart. The link 
>> http://wiki.apache.org/tapestry/Tapestry5HowToCreateGenericGraphCompo
>> n ent describes the usage of JFreeChart with Tapestry. I used to code 
>> as it is, I put the Chart.java under components package, Prepared the 
>> LineChartPage.java and LineChartPage.tml. The page rendered, 
>> displayed but the chart is not displayed. When I look at the Jboss 
>> console I saw the "neither a stream response nor a redirect response 
>> was generated for this action request." exception;
>>
>> [org.apache.tapestry5.services.TapestryModule.RequestExceptionHandler] Processing of request failed with uncaught exception: Sanity check - neither a stream response nor a redirect response was generated for this action request.
>> java.lang.IllegalStateException: Sanity check - neither a stream response nor a redirect response was generated for this action request.
>> 	at org.apache.tapestry5.internal.services.ImmediateActionRenderResponseFilter.handle(ImmediateActionRenderResponseFilter.java:63)
>> 	at $ComponentEventRequestHandler_12a5b36106e.handle($ComponentEventRequestHandler_12a5b36106e.java)
>> 	at org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
>> 	at $ComponentEventRequestHandler_12a5b36106e.handle($ComponentEventRequestHandler_12a5b36106e.java)
>> 	at org.apache.tapestry5.upload.internal.services.UploadExceptionFilter.handle(UploadExceptionFilter.java:75)
>> 	at $ComponentEventRequestHandler_12a5b36106e.handle($ComponentEventRequestHandler_12a5b36106e.java)
>> 	at org.apache.tapestry5.services.TapestryModule$36.handle(TapestryModule.java:2164)
>> 	at $ComponentEventRequestHandler_12a5b36106e.handle($ComponentEventRequestHandler_12a5b36106e.java)
>> 	at $ComponentEventRequestHandler_12a5b361006.handle($ComponentEventRequestHandler_12a5b361006.java)
>> 	at org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handleComponentEvent(ComponentRequestHandlerTerminator.java:43)
>> 	at $ComponentRequestHandler_12a5b360ff8.handleComponentEvent($ComponentRequestHandler_12a5b360ff8.java)
>> 	at
>> org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispa
>> t
>> ch(ComponentEventDispatcher.java:46)
>>
>> Did anyone encountered this exception? Or do you have any idea of the cause? Or a better solution to display time-series charts, which contain time information on x-axis.
>>
>> Regars,
>> Ruksen
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Stream redirection problem when using JFreeChart with Tapestry

Posted by Chuck Kring <cj...@pacbell.net>.
  A few things:

1) You didn't include the chart component.  It's the thing that is 
generating the exception.

2) I would verify that  _context in getStream() is a valid JFreeChart 
and that ChartUtils.writeBufferedImageAsJpeg works correctly.   I 
suspect that a problem with the chart is causing getStream() to fail, 
which then causes the Chart onChart() event to not return a StreamResponse.

I generate charts in a slightly different manner than this example:

a) I use Chart as a base object and extend Chart for my individual chart 
types.  For example, I don't call <t:chart  t:chart=lineChart > but use 
MyLineChart extends Chart and call <t:myLinerChart nodeId="...">

b) The code to create the chart is in the derived class rather than the 
page class.  I don't pass the serialized chart object to the client as a 
context.  Rather, the context contains the identity of the object to be 
charted - in my case a nodeId - and the chart is generated by the 
component rather than the page.   One benefit of this approach is it 
allows me to use the same chart on different pages.

c) I personally like PNG as an output format rather than JPEG.

Once again, make sure that the actual chart is working correctly.

Chuck

public class MyParticularChart extends Chart{

     private static final Logger logger = 
Logger.getLogger("gateway.components.MyParticularChart ");

     public StreamResponse onChart(short id, long timestamp)
     {
         BSU bsu = (BSU)Node.getByNodeId(id);
         ArrayList<Motecomm> list = 
MotecommCache.getInstance().getList(bsu, getTimeService(), getSession());

         synchronized(ChartMutex.getMutex()){

             TimeSeriesCollection dataset = new TimeSeriesCollection();
             addBSUTimeSeries(bsu.getIdleVariance(), list, dataset);


             final JFreeChart chart = ChartFactory.createTimeSeriesChart(
                     null, // title
                     null,             // x-axis label
                     null,   // y-axis label
                     null,            // data
                     true,               // create legend?
                     false,               // generate tooltips?
                     false               // generate URLs?
             );

             XYItemRenderer r = chart.getXYPlot().getRenderer();
             r.setSeriesPaint(0, Color.darkGray);
             r.setSeriesPaint(1, Color.RED);
             r.setSeriesPaint(2, Color.GREEN);
             r.setSeriesPaint(3, Color.GRAY);

             XYPlot plot = chart.getXYPlot();
             plot.setRangeAxisLocation(1, AxisLocation.BOTTOM_OR_RIGHT);
             NumberAxis axis = new NumberAxis("");
             axis.setRange(new Range(0,4 * bsu.getIdleVariance()), true, 
false );
             plot.setRangeAxis(0, axis);
             plot.setDataset(1,dataset);

             return new StreamResponse(){
                 public String getContentType(){
                     return "image/png";
                 }
                 public InputStream getStream() throws IOException {
                     BufferedImage image  = 
chart.createBufferedImage(500, 175);
                     ByteArrayOutputStream byteArray = new 
ByteArrayOutputStream() ;
                     ChartUtilities.writeBufferedImageAsPNG(byteArray, 
image) ;
                     return new 
ByteArrayInputStream(byteArray.toByteArray());
                 }
                 public void prepareResponse(Response response){}
             };
         }
     }

On 8/12/2010 11:53 AM, Ruksen Inanir wrote:
>
> Hi,
>     I placed the the exact same Chart.java from http://wiki.apache.org/tapestry/Tapestry5HowToCreateGenericGraphComponent under the package 'com.mycompany.myproject.webapp.components'. My tapestry version is 5.1.0.5. And I use jfreechart 1.0.12.
>
> here is my \src\main\webapp\reports\LineChartPage.tml;
>
> <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
>      <body>
>          <h1>Line Chart</h1>
>          <t:chart width="200" height="150" chart="lineChart"/>
>      </body>
> </html>
>
> And below is the LineChartPage.java under package  com.mycompany.myproject.webapp.pages.reports;
>
> public class LineChartPage {
>      public JFreeChart getLineChart() {
>          XYSeries series = new XYSeries("Average Size");
>          series.add(20.0, 10.0);
>          series.add(40.0, 20.0);
>          series.add(70.0, 50.0);
>          XYDataset xyDataset = new XYSeriesCollection(series);
>          final JFreeChart chart = ChartFactory.createXYLineChart
>                  ("Sample XY Chart",  // Title
>                          "Height",           // X-Axis label
>                          "Weight",           // Y-Axis label
>                          xyDataset,          // Dataset
>                          PlotOrientation.HORIZONTAL,
>                          true,                // Show legend
>                          true,                            // Tooltips
>                          true                             // Urls
>                  );
>
>          return chart;
>      }
> }
>
> Everything seems to be right but I get the exception;
> 20:39:44,240 ERROR [RequestExceptionHandler] Processing of request failed with uncaught exception: Sanity check - neither a stream response nor a redirect response was generated for this action request.
> java.lang.IllegalStateException: Sanity check - neither a stream response nor a redirect response was generated for this action request.
>          at org.apache.tapestry5.internal.services.ImmediateActionRenderResponseFilter.handle(ImmediateActionRenderResponseFilter.java:63)
>          at $ComponentEventRequestHandler_12a675b8084.handle($ComponentEventRequestHandler_12a675b8084.java)
>          at org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
>          at $ComponentEventRequestHandler_12a675b8084.handle($ComponentEventRequestHandler_12a675b8084.java)
>          at org.apache.tapestry5.upload.internal.services.UploadExceptionFilter.handle(UploadExceptionFilter.java:75)
>          at $ComponentEventRequestHandler_12a675b8084.handle($ComponentEventRequestHandler_12a675b8084.java)
>          at org.apache.tapestry5.services.TapestryModule$36.handle(TapestryModule.java:2164)
>          at $ComponentEventRequestHandler_12a675b8084.handle($ComponentEventRequestHandler_12a675b8084.java)
>          at $ComponentEventRequestHandler_12a675b7fca.handle($ComponentEventRequestHandler_12a675b7fca.java)
>          at org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handleComponentEvent(ComponentRequestHandlerTerminator.java:43)
>
>
>
> -----Original Message-----
> From: Chuck Kring [mailto:cjkring@pacbell.net]
> Sent: Tuesday, August 10, 2010 8:28 PM
> To: users@tapestry.apache.org
> Subject: Re: Stream redirection problem when using JFreeChart with Tapestry
>
>
>    Hi.
>
> I use JfreeChart extensively with T 5.0.1.5 and I'm very happy with
> it.   Most likely your exception is caused by a bug in your .tml or the
> underlying class.     If you could reduce the template and the class to
> the minimum size that still shows the bug and post both to a follow up email, somebody on the list will probably be able to help you.
>
> Chuck
>
> On 8/10/2010 2:10 AM, Ruksen Inanir wrote:
>> Hi,
>>     I want to display a line-chart for my application. I tested
>> chenille-kit chart component it worked quite good, but it does not
>> support Dates on the x-axis. I want to to draw time-series on the
>> chart. So I decided to use JFreeChart. The link
>> http://wiki.apache.org/tapestry/Tapestry5HowToCreateGenericGraphCompon
>> ent describes the usage of JFreeChart with Tapestry. I used to code as
>> it is, I put the Chart.java under components package, Prepared the
>> LineChartPage.java and LineChartPage.tml. The page rendered, displayed
>> but the chart is not displayed. When I look at the Jboss console I saw
>> the "neither a stream response nor a redirect response was generated
>> for this action request." exception;
>>
>> [org.apache.tapestry5.services.TapestryModule.RequestExceptionHandler] Processing of request failed with uncaught exception: Sanity check - neither a stream response nor a redirect response was generated for this action request.
>> java.lang.IllegalStateException: Sanity check - neither a stream response nor a redirect response was generated for this action request.
>> 	at org.apache.tapestry5.internal.services.ImmediateActionRenderResponseFilter.handle(ImmediateActionRenderResponseFilter.java:63)
>> 	at $ComponentEventRequestHandler_12a5b36106e.handle($ComponentEventRequestHandler_12a5b36106e.java)
>> 	at org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
>> 	at $ComponentEventRequestHandler_12a5b36106e.handle($ComponentEventRequestHandler_12a5b36106e.java)
>> 	at org.apache.tapestry5.upload.internal.services.UploadExceptionFilter.handle(UploadExceptionFilter.java:75)
>> 	at $ComponentEventRequestHandler_12a5b36106e.handle($ComponentEventRequestHandler_12a5b36106e.java)
>> 	at org.apache.tapestry5.services.TapestryModule$36.handle(TapestryModule.java:2164)
>> 	at $ComponentEventRequestHandler_12a5b36106e.handle($ComponentEventRequestHandler_12a5b36106e.java)
>> 	at $ComponentEventRequestHandler_12a5b361006.handle($ComponentEventRequestHandler_12a5b361006.java)
>> 	at org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handleComponentEvent(ComponentRequestHandlerTerminator.java:43)
>> 	at $ComponentRequestHandler_12a5b360ff8.handleComponentEvent($ComponentRequestHandler_12a5b360ff8.java)
>> 	at
>> org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispat
>> ch(ComponentEventDispatcher.java:46)
>>
>> Did anyone encountered this exception? Or do you have any idea of the cause? Or a better solution to display time-series charts, which contain time information on x-axis.
>>
>> Regars,
>> Ruksen
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


RE: Stream redirection problem when using JFreeChart with Tapestry

Posted by Ruksen Inanir <ru...@ericsson.com>.
 
Hi,
   I placed the the exact same Chart.java from http://wiki.apache.org/tapestry/Tapestry5HowToCreateGenericGraphComponent under the package 'com.mycompany.myproject.webapp.components'. My tapestry version is 5.1.0.5. And I use jfreechart 1.0.12.

here is my \src\main\webapp\reports\LineChartPage.tml;

<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
    <body>
        <h1>Line Chart</h1>
        <t:chart width="200" height="150" chart="lineChart"/>
    </body>
</html>

And below is the LineChartPage.java under package  com.mycompany.myproject.webapp.pages.reports; 

public class LineChartPage {
    public JFreeChart getLineChart() {
        XYSeries series = new XYSeries("Average Size");
        series.add(20.0, 10.0);
        series.add(40.0, 20.0);
        series.add(70.0, 50.0);
        XYDataset xyDataset = new XYSeriesCollection(series);
        final JFreeChart chart = ChartFactory.createXYLineChart
                ("Sample XY Chart",  // Title
                        "Height",           // X-Axis label
                        "Weight",           // Y-Axis label
                        xyDataset,          // Dataset
                        PlotOrientation.HORIZONTAL,
                        true,                // Show legend
                        true,                            // Tooltips
                        true                             // Urls
                );

        return chart;
    }
}

Everything seems to be right but I get the exception; 
20:39:44,240 ERROR [RequestExceptionHandler] Processing of request failed with uncaught exception: Sanity check - neither a stream response nor a redirect response was generated for this action request.
java.lang.IllegalStateException: Sanity check - neither a stream response nor a redirect response was generated for this action request.
        at org.apache.tapestry5.internal.services.ImmediateActionRenderResponseFilter.handle(ImmediateActionRenderResponseFilter.java:63)
        at $ComponentEventRequestHandler_12a675b8084.handle($ComponentEventRequestHandler_12a675b8084.java)
        at org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
        at $ComponentEventRequestHandler_12a675b8084.handle($ComponentEventRequestHandler_12a675b8084.java)
        at org.apache.tapestry5.upload.internal.services.UploadExceptionFilter.handle(UploadExceptionFilter.java:75)
        at $ComponentEventRequestHandler_12a675b8084.handle($ComponentEventRequestHandler_12a675b8084.java)
        at org.apache.tapestry5.services.TapestryModule$36.handle(TapestryModule.java:2164)
        at $ComponentEventRequestHandler_12a675b8084.handle($ComponentEventRequestHandler_12a675b8084.java)
        at $ComponentEventRequestHandler_12a675b7fca.handle($ComponentEventRequestHandler_12a675b7fca.java)
        at org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handleComponentEvent(ComponentRequestHandlerTerminator.java:43)
 


-----Original Message-----
From: Chuck Kring [mailto:cjkring@pacbell.net] 
Sent: Tuesday, August 10, 2010 8:28 PM
To: users@tapestry.apache.org
Subject: Re: Stream redirection problem when using JFreeChart with Tapestry


  Hi.

I use JfreeChart extensively with T 5.0.1.5 and I'm very happy with 
it.   Most likely your exception is caused by a bug in your .tml or the 
underlying class.     If you could reduce the template and the class to 
the minimum size that still shows the bug and post both to a follow up email, somebody on the list will probably be able to help you.

Chuck

On 8/10/2010 2:10 AM, Ruksen Inanir wrote:
> Hi,
>    I want to display a line-chart for my application. I tested 
> chenille-kit chart component it worked quite good, but it does not 
> support Dates on the x-axis. I want to to draw time-series on the 
> chart. So I decided to use JFreeChart. The link 
> http://wiki.apache.org/tapestry/Tapestry5HowToCreateGenericGraphCompon
> ent describes the usage of JFreeChart with Tapestry. I used to code as 
> it is, I put the Chart.java under components package, Prepared the 
> LineChartPage.java and LineChartPage.tml. The page rendered, displayed 
> but the chart is not displayed. When I look at the Jboss console I saw 
> the "neither a stream response nor a redirect response was generated 
> for this action request." exception;
>
> [org.apache.tapestry5.services.TapestryModule.RequestExceptionHandler] Processing of request failed with uncaught exception: Sanity check - neither a stream response nor a redirect response was generated for this action request.
> java.lang.IllegalStateException: Sanity check - neither a stream response nor a redirect response was generated for this action request.
> 	at org.apache.tapestry5.internal.services.ImmediateActionRenderResponseFilter.handle(ImmediateActionRenderResponseFilter.java:63)
> 	at $ComponentEventRequestHandler_12a5b36106e.handle($ComponentEventRequestHandler_12a5b36106e.java)
> 	at org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
> 	at $ComponentEventRequestHandler_12a5b36106e.handle($ComponentEventRequestHandler_12a5b36106e.java)
> 	at org.apache.tapestry5.upload.internal.services.UploadExceptionFilter.handle(UploadExceptionFilter.java:75)
> 	at $ComponentEventRequestHandler_12a5b36106e.handle($ComponentEventRequestHandler_12a5b36106e.java)
> 	at org.apache.tapestry5.services.TapestryModule$36.handle(TapestryModule.java:2164)
> 	at $ComponentEventRequestHandler_12a5b36106e.handle($ComponentEventRequestHandler_12a5b36106e.java)
> 	at $ComponentEventRequestHandler_12a5b361006.handle($ComponentEventRequestHandler_12a5b361006.java)
> 	at org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handleComponentEvent(ComponentRequestHandlerTerminator.java:43)
> 	at $ComponentRequestHandler_12a5b360ff8.handleComponentEvent($ComponentRequestHandler_12a5b360ff8.java)
> 	at 
> org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispat
> ch(ComponentEventDispatcher.java:46)
>
> Did anyone encountered this exception? Or do you have any idea of the cause? Or a better solution to display time-series charts, which contain time information on x-axis.
>
> Regars,
> Ruksen
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Stream redirection problem when using JFreeChart with Tapestry

Posted by Chuck Kring <cj...@pacbell.net>.
  Hi.

I use JfreeChart extensively with T 5.0.1.5 and I'm very happy with 
it.   Most likely your exception is caused by a bug in your .tml or the 
underlying class.     If you could reduce the template and the class to 
the minimum size that still shows the bug and post both to a follow up 
email, somebody on the list will probably be able to help you.

Chuck

On 8/10/2010 2:10 AM, Ruksen Inanir wrote:
> Hi,
>    I want to display a line-chart for my application. I tested chenille-kit chart component it worked quite good, but it does not support Dates on the x-axis. I want to to draw time-series on the chart. So I decided to use JFreeChart. The link http://wiki.apache.org/tapestry/Tapestry5HowToCreateGenericGraphComponent describes the usage of JFreeChart with Tapestry. I used to code as it is, I put the Chart.java under components package, Prepared the LineChartPage.java and LineChartPage.tml. The page rendered, displayed but the chart is not displayed. When I look at the Jboss console I saw the "neither a stream response nor a redirect response was generated for this action request." exception;
>
> [org.apache.tapestry5.services.TapestryModule.RequestExceptionHandler] Processing of request failed with uncaught exception: Sanity check - neither a stream response nor a redirect response was generated for this action request.
> java.lang.IllegalStateException: Sanity check - neither a stream response nor a redirect response was generated for this action request.
> 	at org.apache.tapestry5.internal.services.ImmediateActionRenderResponseFilter.handle(ImmediateActionRenderResponseFilter.java:63)
> 	at $ComponentEventRequestHandler_12a5b36106e.handle($ComponentEventRequestHandler_12a5b36106e.java)
> 	at org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
> 	at $ComponentEventRequestHandler_12a5b36106e.handle($ComponentEventRequestHandler_12a5b36106e.java)
> 	at org.apache.tapestry5.upload.internal.services.UploadExceptionFilter.handle(UploadExceptionFilter.java:75)
> 	at $ComponentEventRequestHandler_12a5b36106e.handle($ComponentEventRequestHandler_12a5b36106e.java)
> 	at org.apache.tapestry5.services.TapestryModule$36.handle(TapestryModule.java:2164)
> 	at $ComponentEventRequestHandler_12a5b36106e.handle($ComponentEventRequestHandler_12a5b36106e.java)
> 	at $ComponentEventRequestHandler_12a5b361006.handle($ComponentEventRequestHandler_12a5b361006.java)
> 	at org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handleComponentEvent(ComponentRequestHandlerTerminator.java:43)
> 	at $ComponentRequestHandler_12a5b360ff8.handleComponentEvent($ComponentRequestHandler_12a5b360ff8.java)
> 	at org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:46)
>
> Did anyone encountered this exception? Or do you have any idea of the cause? Or a better solution to display time-series charts, which contain time information on x-axis.
>
> Regars,
> Ruksen
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org