---
i/wicket-core/src/main/java/org/apache/wicket/serialize/java/JavaSerializer.java
+++
w/wicket-core/src/main/java/org/apache/wicket/serialize/java/JavaSerializer.java
@@ -263,9 +263,14 @@ public class JavaSerializer implements ISerializer
                        {
                                if
(CheckingObjectOutputStream.isAvailable())
                                {
-                                       // trigger serialization again, but
this time gather
-                                       // some more info
-                                       new
SerializableChecker(outputStream, nsx).writeObject(obj);
+                                       try
+                                       {
+                                               // trigger serialization
again, but this time gather some more info
+                                               new
SerializableChecker(outputStream, nsx).writeObject(obj);
+                                       } catch (Exception x) {
+                                               x.initCause(nsx);
+                                               throw new
WicketRuntimeException("A problem occurred while trying to collect debug
information about not serializable object", x);
+                                       }
                                        // if we get here, we didn't fail,
while we
                                        // should;
                                        throw nsx;

does this look better ?


Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov


On Wed, Aug 6, 2014 at 4:43 PM, Daniel Stoch <[email protected]> wrote:

> Hi,
>
> I have a not serializable object X stored in a page. It leads to an
> NotSerializableException during page storing. The problem is that this
> page contains also a DetachableArrayList (from WicketStuff minis)
> which raises an exception when is stored as attached.
>
> 1. JavaSerializer tries to serialize page and calls:
> SerializationCheckerObjectOutputStream.writeObjectOverride(...)
> 2. NotSerializableException is catched for object X and
> SerializableChecker is called:
> new SerializableChecker(outputStream, nsx).writeObject(obj);
> 3. During that call exception is raised from
> AbstractDetachableCollection.writeObject and this new exception is
> logged.
>
> The original NotSerializableException from step 2 is lost and we don't
> know what really causes problem.
>
>
> Wicket 6.15
>
> --
> Daniel
>

Reply via email to