Re: ServletOutputStream gives null pointer in v5.1.0.5 but not in v5.0.18

2009-08-31 Thread Marinus Maris
Solved it. I should have checked the Tapestry Wiki first before posting, 
sorry about that.

http://wiki.apache.org/tapestry/Tapestry5HowToStreamAnExistingBinaryFile

Still I don't know what changed in between versions, but I can live with 
that.


Marinus


Marinus Maris schreef:

I post this mail again, now with the stack trace added below the code:

To get a file from disk I wrote this code below. It works perfectly in 
version 5.0.18 but it generates a null pointer in v5.1.0.5. I checked 
the release notes to no avail. What's going on here? Apparently a gzip 
service is needed now?


  Object onActionFromGetParticipantsFile() {
  String method = "get";
  try {
  FileInputStream fInput = new FileInputStream(fileName);
  byte[] bytes = new byte[fInput.available()];
  fInput.read(bytes, 0, fInput.available());
  if (bytes != null) {
  ServletOutputStream stream = 
response.getHTTPServletResponse().getOutputStream();
  
response.getHTTPServletResponse().setContentType("text/plain");
  
response.getHTTPServletResponse().setContentLength(bytes.length);
  
response.getHTTPServletResponse().setHeader("Content-Disposition", 
method + ";filename=" +fileName;


  stream.write(bytes);

line 446 in the code:  Here it comes up with the null pointer, 
although the stream object exists as I checked that.


  stream.flush();
  stream.close();
  return response;
  }
  } catch (Exception e) {
   e.printStackTrace();
  }
  return new TextStreamResponse("text/plain", String.format("file 
" + fileName+ " not found"));


java.lang.NullPointerException
   at 
org.apache.tapestry5.internal.services.ResponseCompressionAnalyzerImpl.isCompressable(ResponseCompressionAnalyzerImpl.java:65) 

   at 
$ResponseCompressionAnalyzer_1236c9345b8.isCompressable($ResponseCompressionAnalyzer_1236c9345b8.java) 

   at 
org.apache.tapestry5.internal.gzip.BufferedGZipOutputStream.openResponseOutputStream(BufferedGZipOutputStream.java:77) 

   at 
org.apache.tapestry5.internal.gzip.BufferedGZipOutputStream.checkForCutover(BufferedGZipOutputStream.java:70) 

   at 
org.apache.tapestry5.internal.gzip.BufferedGZipOutputStream.write(BufferedGZipOutputStream.java:108) 

   at 
mobiquete.pages.SurveyDeploy.onActionFromGetParticipantsFile(SurveyDeploy.java:446) 

   at 
mobiquete.pages.SurveyDeploy.dispatchComponentEvent(SurveyDeploy.java)
   at 
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:902) 

   at 
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1081) 

   at 
org.apache.tapestry5.internal.services.ComponentEventRequestHandlerImpl.handle(ComponentEventRequestHandlerImpl.java:75) 

   at 
org.apache.tapestry5.internal.services.ImmediateActionRenderResponseFilter.handle(ImmediateActionRenderResponseFilter.java:42) 

   at 
$ComponentEventRequestHandler_1236c934654.handle($ComponentEventRequestHandler_1236c934654.java) 

   at 
org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42) 

   at 
$ComponentEventRequestHandler_1236c934654.handle($ComponentEventRequestHandler_1236c934654.java) 

   at 
org.apache.tapestry5.upload.internal.services.UploadExceptionFilter.handle(UploadExceptionFilter.java:75) 

   at 
$ComponentEventRequestHandler_1236c934654.handle($ComponentEventRequestHandler_1236c934654.java) 

   at 
org.apache.tapestry5.services.TapestryModule$36.handle(TapestryModule.java:2164) 

   at 
$ComponentEventRequestHandler_1236c934654.handle($ComponentEventRequestHandler_1236c934654.java) 

   at 
$ComponentEventRequestHandler_1236c9345d9.handle($ComponentEventRequestHandler_1236c9345d9.java) 

   at 
org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handleComponentEvent(ComponentRequestHandlerTerminator.java:43) 

   at 
$ComponentRequestHandler_1236c9345cd.handleComponentEvent($ComponentRequestHandler_1236c9345cd.java) 

   at 
org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:46) 


   at $Dispatcher_1236c9345cf.dispatch($Dispatcher_1236c9345cf.java)
   at $Dispatcher_1236c9345c5.dispatch($Dispatcher_1236c9345c5.java)
   at 
org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:245) 


   at mobiquete.services.AppModule$1.service(AppModule.java:96)
   at 
$RequestFilter_1236c9345c4.service($RequestFilter_1236c9345c4.java)
   at 
$RequestHandler_1236c9345c6.service($RequestHandler_1236c9345c6.java)
   at 
org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26) 

   at 
$RequestHandler_1236c9345c6.service($RequestHandler_1236c9345c6.java)
   at 
org.apach

Re: ServletOutputStream gives null pointer in v5.1.0.5 but not in v5.0.18

2009-08-30 Thread Marinus Maris

I post this mail again, now with the stack trace added below the code:

To get a file from disk I wrote this code below. It works perfectly in 
version 5.0.18 but it generates a null pointer in v5.1.0.5. I checked 
the release notes to no avail. What's going on here? Apparently a gzip 
service is needed now?


  Object onActionFromGetParticipantsFile() {
  String method = "get";
  try {
  FileInputStream fInput = new FileInputStream(fileName);
  byte[] bytes = new byte[fInput.available()];
  fInput.read(bytes, 0, fInput.available());
  if (bytes != null) {
  ServletOutputStream stream = 
response.getHTTPServletResponse().getOutputStream();
  
response.getHTTPServletResponse().setContentType("text/plain");
  
response.getHTTPServletResponse().setContentLength(bytes.length);
  
response.getHTTPServletResponse().setHeader("Content-Disposition", 
method + ";filename=" +fileName;


  stream.write(bytes);

line 446 in the code:  Here it comes up with the null pointer, although 
the stream object exists as I checked that.


  stream.flush();
  stream.close();
  return response;
  }
  } catch (Exception e) {
   e.printStackTrace();
  }
  return new TextStreamResponse("text/plain", String.format("file " 
+ fileName+ " not found"));


java.lang.NullPointerException
   at 
org.apache.tapestry5.internal.services.ResponseCompressionAnalyzerImpl.isCompressable(ResponseCompressionAnalyzerImpl.java:65)
   at 
$ResponseCompressionAnalyzer_1236c9345b8.isCompressable($ResponseCompressionAnalyzer_1236c9345b8.java)
   at 
org.apache.tapestry5.internal.gzip.BufferedGZipOutputStream.openResponseOutputStream(BufferedGZipOutputStream.java:77)
   at 
org.apache.tapestry5.internal.gzip.BufferedGZipOutputStream.checkForCutover(BufferedGZipOutputStream.java:70)
   at 
org.apache.tapestry5.internal.gzip.BufferedGZipOutputStream.write(BufferedGZipOutputStream.java:108)
   at 
mobiquete.pages.SurveyDeploy.onActionFromGetParticipantsFile(SurveyDeploy.java:446)
   at 
mobiquete.pages.SurveyDeploy.dispatchComponentEvent(SurveyDeploy.java)
   at 
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:902)
   at 
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1081)
   at 
org.apache.tapestry5.internal.services.ComponentEventRequestHandlerImpl.handle(ComponentEventRequestHandlerImpl.java:75)
   at 
org.apache.tapestry5.internal.services.ImmediateActionRenderResponseFilter.handle(ImmediateActionRenderResponseFilter.java:42)
   at 
$ComponentEventRequestHandler_1236c934654.handle($ComponentEventRequestHandler_1236c934654.java)
   at 
org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
   at 
$ComponentEventRequestHandler_1236c934654.handle($ComponentEventRequestHandler_1236c934654.java)
   at 
org.apache.tapestry5.upload.internal.services.UploadExceptionFilter.handle(UploadExceptionFilter.java:75)
   at 
$ComponentEventRequestHandler_1236c934654.handle($ComponentEventRequestHandler_1236c934654.java)
   at 
org.apache.tapestry5.services.TapestryModule$36.handle(TapestryModule.java:2164)
   at 
$ComponentEventRequestHandler_1236c934654.handle($ComponentEventRequestHandler_1236c934654.java)
   at 
$ComponentEventRequestHandler_1236c9345d9.handle($ComponentEventRequestHandler_1236c9345d9.java)
   at 
org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handleComponentEvent(ComponentRequestHandlerTerminator.java:43)
   at 
$ComponentRequestHandler_1236c9345cd.handleComponentEvent($ComponentRequestHandler_1236c9345cd.java)
   at 
org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:46)

   at $Dispatcher_1236c9345cf.dispatch($Dispatcher_1236c9345cf.java)
   at $Dispatcher_1236c9345c5.dispatch($Dispatcher_1236c9345c5.java)
   at 
org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:245)

   at mobiquete.services.AppModule$1.service(AppModule.java:96)
   at 
$RequestFilter_1236c9345c4.service($RequestFilter_1236c9345c4.java)
   at 
$RequestHandler_1236c9345c6.service($RequestHandler_1236c9345c6.java)
   at 
org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26)
   at 
$RequestHandler_1236c9345c6.service($RequestHandler_1236c9345c6.java)
   at 
org.apache.tapestry5.services.TapestryModule$4.service(TapestryModule.java:778)
   at 
$RequestHandler_1236c9345c6.service($RequestHandler_1236c9345c6.java)
   at 
org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:767)
   at 
$RequestHandler_1236c9345c6.service($RequestHandler_1236c9345c6.java)

Re: ServletOutputStream gives null pointer in v5.1.0.5 but not in v5.0.18

2009-08-29 Thread Thiago H. de Paula Figueiredo
Em Sat, 29 Aug 2009 07:26:50 -0300, Marinus Maris  
 escreveu:



Hi


Hi!

To get a file from disk I wrote this code below. It works perfectly in  
version 5.0.18 but it generates a null pointer in v5.1.0.5. I checked  
the release notes to no avail. What's going on here?


To begin with, where's the stack trace? In what line does the NPE happen?

--
Thiago H. de Paula Figueiredo
Independent Java consultant, developer, and instructor
http://www.arsmachina.com.br/thiago

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



ServletOutputStream gives null pointer in v5.1.0.5 but not in v5.0.18

2009-08-29 Thread Marinus Maris

Hi

To get a file from disk I wrote this code below. It works perfectly in 
version 5.0.18 but it generates a null pointer in v5.1.0.5. I checked 
the release notes to no avail. What's going on here?


   Object onActionFromGetParticipantsFile() {
   String method = "get";
   try {
   FileInputStream fInput = new FileInputStream(fileName);
   byte[] bytes = new byte[fInput.available()];
   fInput.read(bytes, 0, fInput.available());
   if (bytes != null) {
   ServletOutputStream stream = 
response.getHTTPServletResponse().getOutputStream();
   
response.getHTTPServletResponse().setContentType("text/plain");
   
response.getHTTPServletResponse().setContentLength(bytes.length);
   
response.getHTTPServletResponse().setHeader("Content-Disposition", 
method + ";filename=" +fileName;


   stream.write(bytes);
 Here it comes up with a null pointer, although the streanm object 
exists as I checked that !


   stream.flush();
   stream.close();
   return response;
   }
   } catch (Exception e) {
   System.out.println("onActionFromGetFile; " + e);
   }
   return new TextStreamResponse("text/plain", String.format("file 
" + fileName+ " not found"));


Marinus


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