persistence@glassfish.java.net

Re: Re1: fixing issue 634?

From: Marina Vatkina <Marina.Vatkina_at_Sun.COM>
Date: Wed, 27 Sep 2006 16:53:29 -0700

Tom,

I added all that I could to the comments:

diff -r1.3 EnumTypeConverter.java
107a108,136
>
> /**
> * INTERNAL:
> * Convert Enum object to the data value.
> *
> * Because of the following ORB issue, the Enum object returned from a
> * client via unmarshalling, does not compare equals() to the instance
> * created in this VM. This results in a corresponding value not being
> * found, and in unexpected exception "No conversion value provided for
> * the attribute [XXXXX]".
> * The solution is to return the corresponding value from the Enum instance
> * directly.
> * Note, that this problem doesn't affect data to object conversion.
> *
> * The ORB issue: JDK 5 support for enum also required a small addition to
> * the Java serialization spec to accommodate enums. This requires a
> * corresponding change in the RMI-IIOP specification, which has a different
> * serialization format than Java serialization and standard RMI over JRMP
> * (not RMI-IIOP).
> */
> public Object convertObjectValueToDataValue(Object attributeValue, Session
session) {
> if (attributeValue == null) {
> return super.convertObjectValueToDataValue(null, session);
> }
>
> Enum theEnum = Enum.class.cast(attributeValue);
> return (m_usesOrdinalValues)? theEnum.ordinal() : theEnum.name();
> }
>

Is it enough?

thanks,
-marina

Ken Cavanaugh wrote On 09/27/06 14:01,:
> On Wed, 2006-09-27 at 13:05 -0700, Marina Vatkina wrote:
>
>>Hi Tom,
>>
>>Unfortunately, the ORB bug can't be fixed as per OMG spec it's the correct
>>behavior. This is what Ken Cavanaugh wrote in the 193 notes: "Can't fix
>>this for AS 9. May need a spec change at the OMG level."
>>
>>We had several user that needed ugly work arounds because of that problem.
>>
>>Ken, can you please comment on that? (Don't worry if you are not on the
>>alias - I'll accept your email).
>>
> The problem is that JDK 5 support for enum also required a small
> addition to the Java serialization
> spec to accommodate enums. This requires a corresponding change in the
> RMI-IIOP specification,
> which has a different serialization format than Java serialization and
> standard RMI over JRMP
> (not RMI-IIOP). There is now an issue at the OMG (issue 10336: see
> http://www.omg.org/issues/java2idl-rtf.open.html#Issue10336 ), but the
> Java to IDL RTF has not
> yet voted on this.
>
> I think a reasonable approach for us might be to implement the
> resolution to the issue as soon as
> it is finalized and voted in. I think this will have to wait until the
> JavaIDL RTF is re-chartered in
> Anaheim this week. Harold used to be the Sun rep on the RTF, but since
> he's moved on to
> WSIT, I'll be taking his place on the RTF.
>
> I've just sent an email to the RTF alias to see when we can get started
> on the issue. I'll also need to investigate
> the impact of this fix on interoperability with other ORBs (especially
> ours) that do not have the
> fix.
>
> Ken.