javaee / metro-jax-ws

https://javaee.github.io/metro-jax-ws/
Other
132 stars 68 forks source link

SOAPFaultException is Serializable, but field fault is not #1216

Open LanceAndersen opened 6 years ago

LanceAndersen commented 6 years ago

This issue is referenced from https://bugs.openjdk.java.net/browse/JDK-8136994

FULL PRODUCT VERSION : java version "1.8.0_51" Java(TM) SE Runtime Environment (build 1.8.0_51-b16) Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)

ADDITIONAL OS VERSION INFORMATION : Microsoft Windows [Version 6.1.7601] Linux 2.6.32.12-0.7-default #1 SMP 2010-05-20 11:14:20 +0200 x86_64 x86_64 x86_64 GNU/Linux

A DESCRIPTION OF THE PROBLEM : javax.xml.ws.soap.SOAPFaultException is Serializable (as all Throwable(s)), but the private field "fault" (class javax.xml.soap.SOAPFault) is not. This violates the serialization protocol and produces a java.io.NotSerializableException if a SOAPFaultException must be serialized (e.g. because of a remote service call).

ADDITIONAL REGRESSION INFORMATION: java version "1.8.0_51" Java(TM) SE Runtime Environment (build 1.8.0_51-b16) Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM : Serialize a SOAPFaultException.

EXPECTED VERSUS ACTUAL BEHAVIOR : EXPECTED - serialization should work, without throwing exception. ACTUAL - java.io.NotSerializableException: com.sun.xml.internal.messaging.saaj.soap.ver1_1.SOAPPart1_1Impl at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184)

REPRODUCIBILITY : This bug can be reproduced always.

---------- BEGIN SOURCE ---------- import java.io.; import javax.xml.soap.; import javax.xml.ws.soap.*;

public class SOAPFaultExceptionSerializationTest {

public static void main(String args[]) throws java.lang.Exception { 
    SOAPFaultException exception = new SOAPFaultException(SOAPFactory.newInstance().createFault()); 
    new ObjectOutputStream(new ByteArrayOutputStream()).writeObject(exception); 
} 

} ---------- END SOURCE ----------