RE: upload data corruption report

2001-05-21 Thread GOMEZ Henri

Hi DAK,

I tested the server/client with 'b' and without and didn't have
any problems with Tomcat 3.3-m3 (with ajp13)

Could try this distro also ?

-
Henri Gomez ___[_]
EMAIL : [EMAIL PROTECTED](. .) 
PGP KEY : 697ECEDD...oOOo..(_)..oOOo...
PGP Fingerprint : 9DF8 1EA8 ED53 2F39 DC9B 904A 364F 80E6 



>-Original Message-
>From: DAK [mailto:[EMAIL PROTECTED]]
>Sent: Sunday, May 20, 2001 6:24 AM
>To: [EMAIL PROTECTED]
>Subject: upload data corruption report
>
>
>I've been asked to provide more information, so here is combination of 
>the two messages I posted with some more commentary and attachments.
>
>It pertains to Tomcat-3.2.1 and looks to be  the same in 3.2.2.b4. I'm 
>running Apache 1.3.17 on Win 2K Professional. I'm also using mod_jk
>
>I have some client code that sends a jar file to the servlet. The jar 
>file was getting corrupted. After much digging, I found a CVS 
>commit to 
>Ajp13ConnectorRequest.java that mentioned a problem like this with the 
>doRead() method. It turns out the the same applies to the 
>doRead(byte[], 
>int, int) method. The same problem exists in the 
>Ajp12ConnectionHandler 
>for that byte array read. Single byte reads for both protocols 
>work just 
>fine. I'm including the diffs for these classes to show what 
>I'm talking 
>about.
>
>
>I finally got out from under some work and was able to make some test 
>code. I'm attaching the client and servlet code.
>The code transfers a couple parameters, then a binary file (I 
>was using 
>a .jar). If you call the client with
>"BinTestClient localhost something.jar b", it uses 
>byte-by-byte read on 
>the server to spool the file to a temp file. If you call the client 
>without the 'b', it uses the byte-array read that I was complaining 
>about.  Transfer a file, then try "jar tvf test.jar" to see if it 
>works. I uses a jar that contains .jpg images and when using the byte 
>array read method, it creats a corrupt jar file. If I apply my fix to 
>the Ajp13ConnectorRequest class, it works fine.
>(I tried a jar that contained class files and it worked anyway...)
>I'd like for someone else to try this out to make sure I didn't screw 
>something up. The code seems pretty simple.
>I discovered this when using JarIn/OutputStream to transfer data from  
>client to servlet.I've seen this type of thing in Java before when 
>writing code that talks to hardware (such as touchscreen driver and 
>scanner drivers).
>
>   David
>



Re: upload data corruption report

2001-05-20 Thread DAK

Marc,
I'll run some more tests here. Some jar files worked, but some failed. 
I'll pass specific byte values and see if I can come up with a 
definitive test case.
Thanks,
   David

Marc Saegesser wrote:

> David,
> 
> Thanks for the example code.  I tried this on the following configurations
> and was not able to duplicate the problem.
> 
> Win2000
> Tomcat 3.2.2b5
> Apache 1.3.19
> mod_jk (both ajp12 and ajp13)
> 
> As the jar file to transfer I JARed up the entire examples web application
> directory tree.  That contains text files, GIF images, and .class files.  I
> tried using Tomcat stand-alone and through Apache/mod_jk using both AJP12
> and AJP13.  If you'd like to send me a JAR file that causes you problems I
> can try it out.
> 
> I still don't see how the proposed patches would have any impact on the
> outcome.  To test this I wrote a simple Java application simply ran through
> all possible byte values and did your char/mask/byte translation and then
> tested if the result was different than the original value.  It never was.
> 
> I'm not saying that you aren't seeing something go wrong, I just can't see
> what it is yet.
> 
>> -Original Message-
>> From: DAK [mailto:[EMAIL PROTECTED]]
>> Sent: Saturday, May 19, 2001 11:24 PM
>> To: [EMAIL PROTECTED]
>> Subject: upload data corruption report
>> 
>> 
>> I've been asked to provide more information, so here is combination of
>> the two messages I posted with some more commentary and attachments.
>> 
>> It pertains to Tomcat-3.2.1 and looks to be  the same in 3.2.2.b4. I'm
>> running Apache 1.3.17 on Win 2K Professional. I'm also using mod_jk
>> 
>> I have some client code that sends a jar file to the servlet. The jar
>> file was getting corrupted. After much digging, I found a CVS commit to
>> Ajp13ConnectorRequest.java that mentioned a problem like this with the
>> doRead() method. It turns out the the same applies to the doRead(byte[],
>> int, int) method. The same problem exists in the Ajp12ConnectionHandler
>> for that byte array read. Single byte reads for both protocols work just
>> fine. I'm including the diffs for these classes to show what I'm talking
>> about.
>> 
>> 
>> I finally got out from under some work and was able to make some test
>> code. I'm attaching the client and servlet code.
>> The code transfers a couple parameters, then a binary file (I was using
>> a .jar). If you call the client with
>> "BinTestClient localhost something.jar b", it uses byte-by-byte read on
>> the server to spool the file to a temp file. If you call the client
>> without the 'b', it uses the byte-array read that I was complaining
>> about.  Transfer a file, then try "jar tvf test.jar" to see if it
>> works. I uses a jar that contains .jpg images and when using the byte
>> array read method, it creats a corrupt jar file. If I apply my fix to
>> the Ajp13ConnectorRequest class, it works fine.
>> (I tried a jar that contained class files and it worked anyway...)
>> I'd like for someone else to try this out to make sure I didn't screw
>> something up. The code seems pretty simple.
>> I discovered this when using JarIn/OutputStream to transfer data from
>> client to servlet.I've seen this type of thing in Java before when
>> writing code that talks to hardware (such as touchscreen driver and
>> scanner drivers).
>> 
>>David
>> 
>> 




RE: upload data corruption report

2001-05-20 Thread Marc Saegesser

David,

Thanks for the example code.  I tried this on the following configurations
and was not able to duplicate the problem.

Win2000
Tomcat 3.2.2b5
Apache 1.3.19
mod_jk (both ajp12 and ajp13)

As the jar file to transfer I JARed up the entire examples web application
directory tree.  That contains text files, GIF images, and .class files.  I
tried using Tomcat stand-alone and through Apache/mod_jk using both AJP12
and AJP13.  If you'd like to send me a JAR file that causes you problems I
can try it out.

I still don't see how the proposed patches would have any impact on the
outcome.  To test this I wrote a simple Java application simply ran through
all possible byte values and did your char/mask/byte translation and then
tested if the result was different than the original value.  It never was.

I'm not saying that you aren't seeing something go wrong, I just can't see
what it is yet.

> -Original Message-
> From: DAK [mailto:[EMAIL PROTECTED]]
> Sent: Saturday, May 19, 2001 11:24 PM
> To: [EMAIL PROTECTED]
> Subject: upload data corruption report
>
>
> I've been asked to provide more information, so here is combination of
> the two messages I posted with some more commentary and attachments.
>
> It pertains to Tomcat-3.2.1 and looks to be  the same in 3.2.2.b4. I'm
> running Apache 1.3.17 on Win 2K Professional. I'm also using mod_jk
>
> I have some client code that sends a jar file to the servlet. The jar
> file was getting corrupted. After much digging, I found a CVS commit to
> Ajp13ConnectorRequest.java that mentioned a problem like this with the
> doRead() method. It turns out the the same applies to the doRead(byte[],
> int, int) method. The same problem exists in the Ajp12ConnectionHandler
> for that byte array read. Single byte reads for both protocols work just
> fine. I'm including the diffs for these classes to show what I'm talking
> about.
>
>
> I finally got out from under some work and was able to make some test
> code. I'm attaching the client and servlet code.
> The code transfers a couple parameters, then a binary file (I was using
> a .jar). If you call the client with
> "BinTestClient localhost something.jar b", it uses byte-by-byte read on
> the server to spool the file to a temp file. If you call the client
> without the 'b', it uses the byte-array read that I was complaining
> about.  Transfer a file, then try "jar tvf test.jar" to see if it
> works. I uses a jar that contains .jpg images and when using the byte
> array read method, it creats a corrupt jar file. If I apply my fix to
> the Ajp13ConnectorRequest class, it works fine.
> (I tried a jar that contained class files and it worked anyway...)
> I'd like for someone else to try this out to make sure I didn't screw
> something up. The code seems pretty simple.
> I discovered this when using JarIn/OutputStream to transfer data from
> client to servlet.I've seen this type of thing in Java before when
> writing code that talks to hardware (such as touchscreen driver and
> scanner drivers).
>
>David
>
>