Java Mailing List Archive

http://www.junlu.com/

Google
Google
Mailing List
Home
Forum Home
JBoss - Java Application Server
Struts - A MVC web framework
Tomcat - JSP/Servlet container
iText - An open source PDF Java Library
JDOM - JDOM XML Parser
J2EE - A mailing list for Java(tm) 2 Platform, Enterprise Edition
J2EE Pattern - An interest list for Sun Java Center J2EE Pattern Catalog
Servlet - A mailing list for discussion about Sun Microsystem's Java Servlet API Technology
JSP - A mailing list about Java Server Pages specification and reference
Struts & Hibernate
Subjects
JSP editor plugin for eclipse ?
org apache jasper JasperException: Unable to compile class for JSP
Tomcat: Connection reset by peer: socket write error
Cannot retrieve definition for form bean null
Struts Tiles Tutorial (free Struts training)
Where do I download Tomcat 4 0 6?
Data Access Object (DAO) pattern, example DAO 's
Where to download Tomcat v 4 1 24 from?
Tomcat 5 0 16 Requested resource not available
Oracle Connection Pooling in 3 2 2
Servlet : Session invalidate
Servlet action is currently unavailable
Tomcat/Struts Unicode Encoding/Decoding problems
Tomcat and webapplication specific java library path
Running a Simple JMS Example
Mapping in workers2 properties
org apache jasper JasperException
Cannot find message resources under key org apache struts action
   MESSAGE
problem with html:text bean throwing exception
Cannot find message resources under key org apache struts action MESSAGE
invalid direct reference problem with solution
Tool for jsp debug Try Sysdeo Eclipse Plugin
Tomcat 5 Cannot load JDBC driver class 'null ' SQL state: null
weblogic ejbc
java properties file
Jboss 3 2 3 Coyote Can 't re
Tomcat 5, Apache2 and mod jk2 integration problem
JBoss example problem new to J2EE
url string for connecting jboss to oracle
Value attribute of <html:checkbox
javax servlet ServletException: BeanUtils populate
HTTP Status 404 The requested resource is not available
5 0 18: Windows XP Pro vs Windows 2000
 
Getting short reads

Getting short reads

2004-01-14       - By Shapira, Yoav

 Back
Reply:     1     2     3     4     5     6  


Howdy,
Don't use HttpUtils#parsePostData, don't use HttpUtils at all.  Use request
.getParameterMap for the closest equivalent.

Yoav Shapira
Millennium ChemInformatics

-- --Original Message-- --
From: Verma, Nitin (GECP, OTHER, 529706) [mailto:NITIN.VERMA@(protected)]
Sent: Wednesday, January 14, 2004 10:30 AM
To: Tomcat Users List
Subject: Getting short reads
Importance: High

Hi All,
Firstly let me explain my setup:
WebServer (apache httpd using jk2 plugin)
Application server tomcat (jakarta-tomcat-4 (See http://cat-4.ora-code.com).1.24)
server.xml entry for AJP:
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector Source code of org.apache.coyote.tomcat4.CoyoteConnector" acceptCount=
"50" bufferSize="2048" connectionTimeout="10000" debug="0" enableLookups="false"
maxProcessors="75" minProcessors="20" address="3.130.232.169" port="13763"
protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler Source code of org.apache.jk.server.JkCoyoteHandler" proxyPort="0"
redirectPort="8443" scheme="ajp13" secure="false" tcpNoDelay="true"
useURIValidationHack="false">
<Factory className="org.apache.catalina.net.DefaultServerSocketFactory"/>
</Connector>
And we are using this application for simple services using HTTP-POST.
Few of the times I get ContentLength in Header > the real size Content in the
Stream. As we are using "javax.servlet.http.HttpUtils Source code of javax.servlet.http.HttpUtils(...)"
to parse out the POST data we get "java.lang.IllegalArgumentException Source code of java.lang.IllegalArgumentException: Short
Read"
-- ---- ---- ---HttpUtils's parsePostData Method-- ---- ---- ---- ------
//Take a look at line number 236.
public static Hashtable parsePostData(int len, ServletInputStream in){
/* 218*/������� if(len <= 0)
/* 219*/����������� return new Hashtable();
/* 221*/������� if(in == null)
/* 222*/����������� throw new IllegalArgumentException();
/* 228*/������� byte postedBytes[] = new byte[len];
/* 230*/������� try
��������������� {
/* 230*/����������� int offset = 0;
/* 233*/����������� do
������������������� {
/* 233*/��������������� int inputLen = in.read(postedBytes, offset, len -
offset);
/* 234*/��������������� if(inputLen <= 0)
����������������������� {
/* 235*/������������������� String msg = lStrings.getString("err.io.short_read"
);
/* 236*/������������������� throw new IllegalArgumentException(msg);
����������������������� }
/* 238*/��������������� offset += inputLen;
������������������� } while(len - offset > 0);
��������������� }
/* 242*/������� catch(IOException e)
��������������� {
/* 242*/����������� throw new IllegalArgumentException(e.getMessage());
��������������� }
/* 251*/������� try
��������������� {
/* 251*/����������� String postedBody = new String(postedBytes, 0, len, "8859_1
");
/* 252*/����������� return parseQueryString(postedBody);
��������������� }
/* 256*/������� catch(UnsupportedEncodingException e)
��������������� {
/* 256*/����������� throw new IllegalArgumentException(e.getMessage());
��������������� }
����������� }
-- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ------
----Usage Code Snip-- -----
private void setClientType( HttpServletRequest p_Request) {
������� ...�������
������� Hashtable hash = HttpUtils.parsePostData(p_Request.getContentLength(),
p_Request.getInputStream());
������� ...
}
-- ---- ---- ---- ---- ---
----Error on high load-- ---- ---- --
2004-01-13 15:10:43,339|ERROR|java.lang.IllegalArgumentException|java.lang
.IllegalArgumentException: Short Read
at javax.servlet.http.HttpUtils Source code of javax.servlet.http.HttpUtils(HttpUtils.java:236)
at com.ge.appl.tsf.shells.common.TSFParams.setClientType(Unknown Source)
at com.ge.appl.tsf.shells.common.TSFParams.<init>(Unknown Source)
at com.ge.appl.tsf.shells.web.TSFDispatcher.getParams(Unknown Source)
at com.ge.appl.tsf.shells.web.TSFDispatcher.service(Unknown Source)
at javax.servlet.http.HttpServlet Source code of javax.servlet.http.HttpServlet(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain Source code of org.apache.catalina.core.ApplicationFilterChain
(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain Source code of org.apache.catalina.core.ApplicationFilterChain
(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve Source code of org.apache.catalina.core.StandardWrapperValve(StandardWrapperValve
.java:256)
at org.apache.catalina.core.StandardPipeline Source code of org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext
.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline Source code of org.apache.catalina.core.StandardPipeline(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase Source code of org.apache.catalina.core.ContainerBase(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve Source code of org.apache.catalina.core.StandardContextValve(StandardContextValve
.java:191)
at org.apache.catalina.core.StandardPipeline Source code of org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext
.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline Source code of org.apache.catalina.core.StandardPipeline(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase Source code of org.apache.catalina.core.ContainerBase(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext Source code of org.apache.catalina.core.StandardContext(StandardContext.java:2415)
at org.apache.catalina.core.StandardHostValve Source code of org.apache.catalina.core.StandardHostValve(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline Source code of org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext
.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve
.java:171)
at org.apache.catalina.core.StandardPipeline Source code of org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext
.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve Source code of org.apache.catalina.valves.ErrorReportValve(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline Source code of org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext
.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline Source code of org.apache.catalina.core.StandardPipeline(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase Source code of org.apache.catalina.core.ContainerBase(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve Source code of org.apache.catalina.core.StandardEngineValve(StandardEngineValve.java
:174)
at org.apache.catalina.core.StandardPipeline Source code of org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext
.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline Source code of org.apache.catalina.core.StandardPipeline(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase Source code of org.apache.catalina.core.ContainerBase(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter Source code of org.apache.coyote.tomcat4.CoyoteAdapter(CoyoteAdapter.java:223)
at org.apache.jk.server.JkCoyoteHandler Source code of org.apache.jk.server.JkCoyoteHandler(JkCoyoteHandler.java:261)
at org.apache.jk.common.HandlerRequest Source code of org.apache.jk.common.HandlerRequest(HandlerRequest.java:360)
at org.apache.jk.common.ChannelSocket Source code of org.apache.jk.common.ChannelSocket(ChannelSocket.java:604)
at org.apache.jk.common.ChannelSocket Source code of org.apache.jk.common.ChannelSocket(ChannelSocket.java:562)
at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:679)
at org.apache.tomcat.util.threads.ThreadPool Source code of org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:619)
at java.lang.Thread Source code of java.lang.Thread(Thread.java:536)

-- ---- ---- ---- ---- ---- --
Any pointers or guidance is welcome! I just need to isolate the problem first.

Regards,
Nitin



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: tomcat-user-unsubscribe@(protected)
For additional commands, e-mail: tomcat-user-help@(protected)




©2008 junlu.com - Jax Systems, LLC, U.S.A.