Howdy,
Your design is flawed.  The writer (whatever it's type is -- certainly
don't use a tomcat-specific type) is invalid after the response is done.
Don't store it, don't try to reuse it.  What happens in practice is that
the server closes the underlying writer when the response is sent to the
browser and that's why you're getting the NPE.

What are you trying to do by saving the writer?

Yoav Shapira
Millennium ChemInformatics


>-----Original Message-----
>From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
>Sent: Tuesday, December 16, 2003 10:12 AM
>To: [EMAIL PROTECTED]
>Subject: Having problems with stored PrintWriter.
>
>Im having a problem with PrintWriter in a servlet.
>
>I am trying to store users PrintWriter and use them again at a later
date
>to output javascript commands to the browsers at a later date. it store
as
>a coyotewriter - [EMAIL PROTECTED]
>
>To do this they are dumped in a hashtable. But they dont seem to work
when
>i try to write output with them? Is there any way around this??
>
>this is the error I get but only when i include the flush() line.
>
>If anybody can help it would be most appreciated
>
>To write out to users browser - retrieves from hashtable
>--------------------------------------------
>System.out.println("Is this even working: Receivedevent!!!!!!!
>"+useroutputstream);
>PrintWriter usersout = (PrintWriter)useroutputstream.get("derrick");
>usersout.println("Testing received event status"+receivedevent);
>usersout.print("<script type=\"text/javascript\">");
>usersout.print("receivedEvent('your dinner is ready');");
>usersout.print("</script>");
>//extraline
>usersout.flush(); -----> Exception:
>lbp.LBPServlet.doGet(LBPServlet.java:98)
>
>I dont know if this is also part of the problem but if i use the
.flush(),
>it seems to start throwing exceptions.
>
>java.lang.NullPointerException
>org.apache.coyote.http11.InternalOutputBuffer.commit(InternalOutputBuff
er.j
>ava:547)
>org.apache.coyote.http11.Http11Processor.action(Http11Processor.java:73
5)
>org.apache.coyote.Response.action(Response.java:223)
>org.apache.coyote.http11.InternalOutputBuffer.doWrite(InternalOutputBuf
fer.
>java:518)
>org.apache.coyote.Response.doWrite(Response.java:532)
>org.apache.coyote.tomcat5.OutputBuffer.realWriteBytes(OutputBuffer.java
:392
>)
>org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:439)
>org.apache.coyote.tomcat5.OutputBuffer.flush(OutputBuffer.java:350)
>org.apache.coyote.tomcat5.CoyoteWriter.flush(CoyoteWriter.java:119)
>lbp.LBPServlet.doGet(LBPServlet.java:98)
>javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
>javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
>org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet
.jav
>a:466)
>org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:1
80)
>javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
>javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
>filters.ExampleFilter.doFilter(ExampleFilter.java:149)
>filters.ExampleFilter.doFilter(ExampleFilter.java:149)



This e-mail, including any attachments, is a confidential business communication, and 
may contain information that is confidential, proprietary and/or privileged.  This 
e-mail is intended only for the individual(s) to whom it is addressed, and may not be 
saved, copied, printed, disclosed or used by anyone else.  If you are not the(an) 
intended recipient, please immediately delete this e-mail from your computer system 
and notify the sender.  Thank you.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to