activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Timothy Bish (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (AMQ-3537) ClassLoadingAwareObjectInputStream cannot handle deserializing proxies with mixed JDK & non-JDK interfaces
Date Tue, 11 Oct 2011 19:53:12 GMT

    [ https://issues.apache.org/jira/browse/AMQ-3537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13125330#comment-13125330
] 

Timothy Bish commented on AMQ-3537:
-----------------------------------

Any chance you can port your unit test to Java, then it could be included in the test suite
to validate any future changes.  Also in order to include patches or tests in the source you
need to ensure that you tick the license grant to apache when you upload your files.
                
> ClassLoadingAwareObjectInputStream cannot handle deserializing proxies with mixed JDK
& non-JDK interfaces
> ----------------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-3537
>                 URL: https://issues.apache.org/jira/browse/AMQ-3537
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: JMS client
>    Affects Versions: 5.5.0
>         Environment: JDK 1.6.0, RHEL 6.0, ActiveMQ 5.5.0, Tomcat 7, Hibernate 3.6.7.Final,
Spring 3.0.3.RELEASE
>            Reporter: Jason Yankus
>         Attachments: AMQ3537Test.groovy
>
>
> When the ActiveMQ client attempts to unpack an ObjectMessage that contains a proxy with
a mix of JDK and non-JDK interfaces the ClassLoadingAwareObjectInputStream chooses ONLY the
ClassLoader from  the first interface in the array of interfaces represented by the proxy.
 This means that if a proxy's first interface is a JDK class (java.util.List, java.sql.Blob)
the core ClassLoader is used.  In the event that a non-JDK interface is present in the list
of proxied interfaces the same core ClassLoader is used.  The Proxy.getProxyClass subsequently
throws an IllegalArgumentException because the non-JDK interface class cannot be loaded by
the core ClassLoader.
> This problem is extant during deserialization of an ObjectMessage payload that contains
a proxy that implements [java.sql.Blob, org.hibernate.engine.jdbc.WrappedBlob, java.io.Serializable]
(a blob proxy created by [hibernate SerializableBlobProxy|https://github.com/hibernate/hibernate-core/blob/3.6.7.Final/hibernate-core/src/main/java/org/hibernate/engine/jdbc/SerializableBlobProxy.java]).
  The impact of this bug is that users of Hibernate cannot use ActiveMQ as a messaging framework
if they need to package ValueObjects that have mapped lobs.  

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message