This is a show stopper issue because it means that any objects assigned to
Tapestry properties that happen to be squeezed as serializable objects cause
the application to crash during a form rewind.

Richard

-----Original Message-----
From: Hensley, Richard [mailto:[EMAIL PROTECTED] 
Sent: Friday, August 12, 2005 12:20 PM
To: Tapestry users
Subject: RE: Tap4-beta 4: Error using DataSqueezer SerializableAdaptor

Actually this was tapestry-552, so I added my comments to that. 

-----Original Message-----
From: Hensley, Richard [mailto:[EMAIL PROTECTED] 
Sent: Friday, August 12, 2005 12:16 PM
To: Tapestry users
Subject: Tap4-beta 4: Error using DataSqueezer SerializableAdaptor

I think there is a bug in the hivemind declaration of the
SerializableAdaptor. When my application tries to unsqueeze a  serializable
object, I get the following stack dump.

#
org.apache.tapestry.util.io.ResolvingObjectInputStream.resolveClass(Resolvin
gObjectInputStream.java:50)
# java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1513)
# java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1435)
# java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1626)
# java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
# java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
#
org.apache.tapestry.util.io.SerializableAdaptor.unsqueeze(SerializableAdapto
r.java:125)
# $SqueezeAdaptor_105ac0ee43f.unsqueeze($SqueezeAdaptor_105ac0ee43f.java)
#
org.apache.tapestry.util.io.DataSqueezerImpl.unsqueeze(DataSqueezerImpl.java
:181)
# $DataSqueezer_105ac0ee32b.unsqueeze($DataSqueezer_105ac0ee32b.java)

The relevant information is that the resolving object input stream has a
null _resolver member. This is because the SerializableAdaptor has a null
_resolver member. I think this is because either the hivemind declaration is
wrong, or auto-wiring is not working in this case. The hivemind declaration
is in tapestry.data.xml:

  <service-point id="SerializableAdaptor" interface="SqueezeAdaptor">
    
    Converts an object down to a compressed byte stream, and then to a
MIME-like string representation.
    
    <invoke-factory>
      <construct class="SerializableAdaptor"/>
    </invoke-factory>
  </service-point>

According to the Hivemind documentation a ClassResolver is auto-wired to a
property named classResolver, SerialziableAdaptor has a property named
Resolver, and therefore will not auto-wire.

Any comments on this problem? 

I'm going to add a JIRA issue for this with this email in it.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to