Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 326478

Summary: [sharedobject] serialization errors should be reported and handled more gracefully
Product: [RT] ECF Reporter: Walter Hargassner <walter>
Component: ecf.coreAssignee: Scott Lewis <slewis>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: slewis
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Windows 7   
Whiteboard:

Description Walter Hargassner CLA 2010-09-29 01:04:37 EDT
Build Identifier: 

If a deserialization error (IOException) occurs in the method processAsynch of SOContainer (eg. no public constructor for an Externalizable object), the method handleAsyncIOException (line 865) disconnects the container without any notification.

Reproducible: Always

Steps to Reproduce:
1. Create a class derived from Externalizable with no public constructor (with serialize and deserialize methods)
2. Use the class in the interface of a remote service
3. Exception occurs while trying to deserialize in processAsynch
Comment 1 Scott Lewis CLA 2010-09-29 11:23:45 EDT
Hi Walter.  Thanks for the report.

One question:  I'm assuming that the exception is actually thrown inside of the Object deserialization code...i.e. somewhere inside deserializeContainerMessage.

1) Is that right?  If you could attach a stack trace that might be helpful.
2) What is type of the exception thrown on deserialization?  Is it some sub-type of IOException?  The reason I ask is that it probably should be caught inside of deserializeContainerMessage (this does catch other deserialization exception types, and should probably catch this case as well).

Thanks.
Comment 2 Scott Lewis CLA 2010-10-02 16:15:10 EDT
Fix applied to SOContainer class, tested, and released to HEAD.

Resolving as fixed.