From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13759 invoked by alias); 7 Sep 2002 17:01:05 -0000 Mailing-List: contact rhug-rhats-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Post: List-Help: , Sender: rhug-rhats-owner@sources.redhat.com Received: (qmail 13748 invoked from network); 7 Sep 2002 17:01:03 -0000 Received: from unknown (HELO smarthost2.mail.easynet.fr) (212.180.1.69) by sources.redhat.com with SMTP; 7 Sep 2002 17:01:03 -0000 Received: from [212.11.38.52] (helo=there) by smarthost2.mail.easynet.fr with smtp (Exim 3.35 #1 (Debian)) id 17nix8-0008AX-00 for ; Sat, 07 Sep 2002 19:00:58 +0200 From: Christophe Roux To: rhug-rhats@sources.redhat.com Subject: transmission of serialized objects over a POST http request with rhug - patch solution Date: Sat, 07 Sep 2002 10:01:00 -0000 MIME-Version: 1.0 Content-Type: Multipart/Mixed; boundary="------------Boundary-00=_AGV2VE3KYHPIXWAV9PO7" Message-Id: X-SW-Source: 2002-09/txt/msg00004.txt.bz2 --------------Boundary-00=_AGV2VE3KYHPIXWAV9PO7 Content-Type: text/plain; charset="iso-8859-15" Content-Transfer-Encoding: 8bit Content-length: 1438 I have 2 servlets communicating via a POST http request and trnasmitting a serialized object. It used to work fine with jdk and tomcat3.2.3. I am on the road to gcj and rhug. I found problems with the serialisation so that I build a small example with two servlets which exchange a simple serialized object. This object contains a Vector. I had to change the code in gnu.gcj.protocol.http.Connection in order to have a correct POST http request. I send a gnats bug report with my solution to gcc but after one week, the bug is still unasigned. So I decided to give my correction to rhug users, allowing to patch gcj. The Connection class is given in the tar joined to this mail. After that, I found in rhug how to deserialise an object with the rhug class loader, so that the MielMail object can be found by the receiving servlet (M1.java). So I wrote a small class (MielObjectInputStream.java) for deserialization class loading. After that, there was a problem with deserialization of null objects in the Vector of MielMail. I had to correct java.lang.ObjectInputStream.java because there was a NullPointerException in a dump instruction. In the joined tar file, I give all source files for these correction plus exmaples classes. I hope it can be usefull to rhug users and I also hope rhug gourous can point out gcc developpers in order these bugs will be soon corrected in the gcc release. Yours sincerely, Christophe Roux --------------Boundary-00=_AGV2VE3KYHPIXWAV9PO7 Content-Type: application/x-gzip; name="postobje.tgz" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="postobje.tgz" Content-length: 18732 H4sIAFI6ej0AA+xc63fbtpLvV+uvQPWhoRpFtvzKbRx3V7HlRHtty0eS22a7 OTkUBUmsKVLlw47Sm/995wGQ4EOyc9skt6fVOYktYjAYDAa/eQD0VRDF/fEv 0om3v/pUn52d/Z2nBwfwc6f99GDH/Kk/XwHB3uH+3v7hIfze3m0DuTj4ZBIZ nySK7VCIr5x56EYb6O5r/5N+rrL1t51AJuEnMIOK9d9p7+8X13/38GBv7yk+ b4Md7P6HrX8SyfAvsf53crxwpfcH2sED15/3/9M9WP+Ddnvn7/X/HJ/16z+1 b+DrH2EHxvrzWud/5tb/6c4hrP/h7s7nxv8wCOJNdPe1/0k/96//BXxhip6/ TOJhHEp70frFvrUfOsZOe2fnMNvvxZ+A9k9p/Q/2Dw/au7tf7ezu7R4cfiV2 PuXE9ecvvv5L27mxZ1Lw4rfU4rfU4h/Vau5iGYSxwPVuJbHrtb49yj1zA+NJ gQuazoXtIptlMvZcRzieHUWi0qSEfBdLfxKJUkvtt9rWMnRv7VgKWK0Y+GjO +D2MT87FsfDlXfrYqu/VG0elXic4+nlgT2QIkmCfxAPhtoCQxasUzBKmlG4k GiKeh8FdJHr97jtHLmM38GtbIORWlCxlaLkRjr3lToVFw/A4ogHPtmhYJXRr JmMSyWqkv7J0FjAQ6vOhhvMIYhBKTngKIpRR4N1K7swCs3jcfItDlWVscu/L ID4LEn9SkH24imK5aAVJ3AK1+bHnW/WLfm+o1uxY1B/fopiX9kJaDZohjzZF Zpkyt+JwBf8jyy3d5HgtDybG8ha5fIB/jh07c1DXJfC4CmB0GabiCUmqyzEk RbdyarhNmYUyTkKf5YJnH2ofal96m/3Hftbjv95LHwX1lR8D/yvjvwPE/Fz8 /3R/73Pj/180/qtVO4AC8DPIl0GcIBgIPbmQfhyJoQxd23Pf22NPEmpzB8Am 15/BpiVDy6Ai3wz+Zl2TOym1sNGKpR0CKBcbFd7Hoe1HLkim+fROS6Spy2gw DNJQvVPEDVEmUnxsvzcx6fE79/izQY2x/y/av3+rV37u2f/7sO11/H8AXzH/ 32sf/L3/P8dnbShHT3wZFx8VYsC1EZ/R510LdHfrlXhlz+dxvCSEKUBMOw0K XwHFkKkBWDAuUpS3AexA13djSzWfBP7UnQmHfjTSMEqFQ4ooi32w7beUiuMK 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 AxY2DAAD7TQzfR+n00W0ienF09oMxkAQqLOcSG/g3rzlgu309YQHUe6mEEWa 8cyPNG9y6ke3DWSoJjSOsQAkpv87jj0XmDHq4ciOHZ7TFU92Vxnql1uOQJ6v 77PetKFwGk7PT9wrn5Ltdyq2WRrP2sTbaTkqHpfTbKE6m95sLM7oC2+l6aRU XE7TPd3YjI1XyqkEb4UBRnu4HBZILdisHLCKv1tpP+sIl9N8p+6atfGs27uV pqMa8CYanmi50GrN2nSjxbuVtpPCb0mNl0qrWVtv1XW30nxW6S2p/Z6CbDID zCtQZZ6CZ5FcCp3ubtlMcQe933Lj6kf+B3DetMQpcDliFt70mmEjigL0FywD T189f/7s+BRsoHUDttr37m/XJccmk9WIF6kbziOxUxGdh9iP0pQXYKKqhHat Lmmgn5uUNFb3SS+kJNp3MgFaGsuvbMpqE3jfWLCLfOzC4tkhIZU3jqFhUvyc VRcjPHVFTg8yGY9lDzku/u4hzk0AmYvJC7SxqURBtN5UkshiSib6Z45iv1P+ pBQM1spo3L/c1qM8XB48g3+e/P3q3E1wOEPqU0a3OB8PyRuXXL+++ALzNpXi WcRum+V4BBh6g1EDitnm09GEakHZfZ2Ka6rtDUTFsB7qtcTotd7l+aXKPLVl r6gAtsGE9HHMXKNZmQxtZx0AK7WHtigwutaAbBmiEEhIKv1cLdhj6eh5U3Ju RtEQeT0GfaB5jQG/HTGhtlB/FpTECNHCzsbsGq6iJNXvs0uwxUx9a5ZEgnTh s3R+BTlbklbou89Wz//IozcYXli/1lN+oP+H+Q4KzZuro73Vbn97//5n7XZ7 67sHbfi/vUV/46utew8+a3/34Jtv739z/8F3Wzr9gy2dTLVvjoT6Z6yX66FS n51dDItqYrp8OOn7f+ij1+ig3/WSsO+Hy9SL9M+j0eWr4xcuKd7AXOi3eEFR npW9ll7wv9SFXV4Ni/MLULY11db333+/qe7pXlbq+RCiEpbd0QeI7IdG0i5i L94qdMFmVf+vlz7cGXrF2/Ozf+ly8WtlsiIeBdcC8K3l8J1OepYPYK/BYFgk q+bDfmXi5r7AotQLStZS6kjvzRU5zUMUTQoACE7UL/af/rT3y+mL/b1nv548 W0cH/k4+yope1UKv+bXL7Oxddp6r88G4BfRZBgA79L6i9yg4U+ClwCAftb7c 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 AQA= --------------Boundary-00=_AGV2VE3KYHPIXWAV9PO7--