From mboxrd@z Thu Jan 1 00:00:00 1970 From: bryce@albatross.co.nz To: gcc-gnats@gcc.gnu.org Subject: libgcj/1971: ObjectOutputStream generates incorrect serialVersionUID's for array classes Date: Sun, 01 Apr 2001 00:00:00 -0000 Message-id: <20010214035217.20523.qmail@sourceware.cygnus.com> X-SW-Source: 2001-q1/msg01235.html List-Id: >Number: 1971 >Category: libgcj >Synopsis: ObjectOutputStream generates incorrect serialVersionUID's for array classes >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Tue Feb 13 19:56:01 PST 2001 >Closed-Date: >Last-Modified: >Originator: Bryce McKinlay >Release: gcc version 2.97 20010207 (experimental) >Organization: >Environment: >Description: Run the attached test case. GCJ can deserialize JDK's objects ok, but JDK can't deserialize objects generated from GCJ: $ java SerTest S 5 4 3 2 1 $ ./st D 5 4 3 2 1 $ ./st S 5 4 3 2 1 $ java SerTest D $ java SerTest D IOException java.io.InvalidClassException: [I; Local class not compatible: stream classdesc serialVersionUID=-222323706161665130 local class serialVersionUID=5600894804908749477 Exception in thread "main" java.lang.ClassCastException: java.lang.Object at SerTest.main(SerTest.java:39) >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/octet-stream; name="SerTest.java" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="SerTest.java" aW1wb3J0IGphdmEudXRpbC4qOyAKaW1wb3J0IGphdmEuaW8uKjsgCgpwdWJsaWMgY2xhc3MgU2Vy VGVzdCBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZSAKeyAKICBpbnRbXSBkYXJyYXkgPSBuZXcgaW50 WzVdOyAKCiAgcHVibGljIFNlclRlc3QoKSAKICB7IAogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBk YXJyYXkubGVuZ3RoOyBpKyspCiAgICB7CiAgICAgIGRhcnJheVtpXSA9IGRhcnJheS5sZW5ndGgg LSBpOwogICAgfQogIH0KCiAgcHVibGljIFN0cmluZyB0b1N0cmluZygpCiAgewogICAgU3RyaW5n IHMgPSAiIjsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGFycmF5Lmxlbmd0aDsgaSsrKQogICAg ICB7CiAgICAgICAgcyArPSBkYXJyYXlbaV0gKyAiICI7CQogICAgICB9CiAgICByZXR1cm4gczsK ICB9CgogIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3YpIAogIHsgCiAgICBT eXN0ZW0uc2V0UHJvcGVydHkoImdjai5kdW1wb2JqZWN0cyIsICJ0cnVlIik7CiAgICBTZXJUZXN0 IHN0ID0gbmV3IFNlclRlc3QoKTsgCgogICAgICBpZiAoIGFyZ3YubGVuZ3RoID09IDEgKSB7IAog ICAgICAgICAgaWYgKCBhcmd2WzBdLmVxdWFscygiUyIpICkgeyAKICAgICAgICAgICAgICBzdCA9 IG5ldyBTZXJUZXN0KCk7IAogICAgICAgICAgICAgIHNlcmlhbGl6ZU9iamVjdChzdCwidGVzdC5z ZXIiKTsgCiAgICAgICAgICB9IAogICAgICAgICAgZWxzZSBpZiAoIGFyZ3ZbMF0uZXF1YWxzKCJE IikgKSB7IAogICAgICAgICAgICAgIHN0ID0gKFNlclRlc3QpCgkJZGVzZXJpYWxpemVPYmplY3Qo InRlc3Quc2VyIik7IAogICAgICAgICAgfSAKICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihz dCk7IAogICAgICB9IAogIH0gCgogIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBzZXJpYWxpemVPYmpl Y3QoT2JqZWN0IG9iaiwgU3RyaW5nIGZpbGVuYW1lKSB7IAogICAgICAgICAgIC8vIElmIHRoZSBm aWxlIGFscmVhZHkgZXhpc3RzLCBkZWxldGUgaXQuIAogICAgICBGaWxlIGYgPSBuZXcgRmlsZShm aWxlbmFtZSk7IAogICAgICBpZiAoIGYuZXhpc3RzKCkgKSAKICAgICAgICAgIGYuZGVsZXRlKCk7 IAogICAgICB0cnkgeyAKICAgICAgICAgICBGaWxlT3V0cHV0U3RyZWFtIGZvcyA9IG5ldyBGaWxl T3V0cHV0U3RyZWFtKGZpbGVuYW1lKTsgCiAgICAgICAgICAgT2JqZWN0T3V0cHV0U3RyZWFtIG9v cyA9IG5ldyBPYmplY3RPdXRwdXRTdHJlYW0oZm9zKTsgCiAgICAgICAgICAgb29zLndyaXRlT2Jq ZWN0KG9iaik7IAogICAgICAgICAgIG9vcy5mbHVzaCgpOyAKICAgICAgICAgICBmb3MuY2xvc2Uo KTsgCiAgICAgICB9IAogICAgICAgY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsgCiAgICAgICAgICAg U3lzdGVtLmVyci5wcmludGxuKCJJT0V4Y2VwdGlvbiAiICsgZSApOyAKICAgICAgICAgICByZXR1 cm4oZmFsc2UpOyAKICAgICAgIH0gCiAgICAgICByZXR1cm4odHJ1ZSk7IAogIH0gCgoKICBwdWJs aWMgc3RhdGljIE9iamVjdCBkZXNlcmlhbGl6ZU9iamVjdChTdHJpbmcgZmlsZW5hbWUpIHsgCiAg ICAgIHRyeSB7IAogICAgICAgICAgRmlsZUlucHV0U3RyZWFtIGZpcyA9IG5ldyBGaWxlSW5wdXRT dHJlYW0oZmlsZW5hbWUpOyAKICAgICAgICAgIE9iamVjdElucHV0U3RyZWFtIG9pcyA9IG5ldyBP YmplY3RJbnB1dFN0cmVhbShmaXMpOyAKICAgICAgICAgIE9iamVjdCBvYmogPSBvaXMucmVhZE9i amVjdCgpOyAKICAgICAgICAgIG9pcy5jbG9zZSgpOyAKICAgICAgICAgIHJldHVybihvYmopOyAK ICAgICAgIH0gCiAgICAgICBjYXRjaCAoRmlsZU5vdEZvdW5kRXhjZXB0aW9uIGUpIHsgCiAgICAg ICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJGaWxlTm90Rm91bmRFeGNlcHRpb24gIiArIGUgKTsg CiAgICAgICB9IAogICAgICAgY2F0Y2ggKElPRXhjZXB0aW9uIGV4KSB7IAogICAgICAgICAgIFN5 c3RlbS5lcnIucHJpbnRsbigiSU9FeGNlcHRpb24gIiArIGV4ICk7IAogICAgICAgfSAKICAgICAg IGNhdGNoIChDbGFzc05vdEZvdW5kRXhjZXB0aW9uIGVjKSB7IAogICAgICAgICAgIFN5c3RlbS5l cnIucHJpbnRsbigiQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiAiICsgZWMgKTsgCiAgICAgICB9IAog ICAgICAgcmV0dXJuKG5ldyBPYmplY3QoKSk7IAogIH0gCn0gCg==