You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@aries.apache.org by "Vladimir Konkov (JIRA)" <ji...@apache.org> on 2016/09/21 14:42:21 UTC

[jira] [Commented] (ARIES-1618) Regression after ARIES-1342: Duplicate interface name in class file

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

Vladimir Konkov commented on ARIES-1618:
----------------------------------------

It seems that comparator do not do transitive comparison on which sort algorithm in TreeSet is relaying. Resulting interfaces for org.apache.aries.transaction.AriesTransactionManager :

{noformat}
0 = {Class@723} "interface javax.transaction.TransactionManager"
1 = {Class@722} "interface javax.transaction.UserTransaction"
2 = {Class@721} "interface javax.transaction.TransactionSynchronizationRegistry"
3 = {Class@770} "interface org.apache.geronimo.transaction.manager.XidImporter"
4 = {Class@4910} "interface java.util.EventListener"
5 = {Class@769} "interface org.apache.geronimo.transaction.manager.MonitorableTransactionManager"
6 = {Class@723} "interface javax.transaction.TransactionManager"
7 = {Class@768} "interface org.apache.geronimo.transaction.manager.RecoverableTransactionManager"
8 = {Class@720} "interface javax.resource.spi.XATerminator"
9 = {Class@767} "interface org.apache.geronimo.transaction.manager.XAWork"
10 = {Class@766} "interface org.apache.aries.transaction.AriesTransactionManager"
{noformat}

TransactionManager interface is direct parent of RecoverableTransactionManager and AriesTransactionManager itself.

> Regression after ARIES-1342: Duplicate interface name in class file
> -------------------------------------------------------------------
>
>                 Key: ARIES-1618
>                 URL: https://issues.apache.org/jira/browse/ARIES-1618
>             Project: Aries
>          Issue Type: Bug
>          Components: Proxy
>    Affects Versions: proxy-impl-1.0.5
>         Environment: Karaf 4.0.6, JDK 1.8.0_u77
>            Reporter: Vladimir Konkov
>
> I have regression on Karaf 4.0.6 (Proxy Service 1.0.5) with such blueprint config:
> {code:xml}
> <?xml version="1.0" encoding="UTF-8"?>
> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
>    <reference id="transactionManager" interface="org.apache.aries.transaction.AriesTransactionManager"/>
> <!-- other bean defenitions -->
> </blueprint>
> {code}
> Because of hierarchy ordering fix in ARIES-1342 resulting interfaces set contains duplicates (!) - two javax.transaction.TransactionManager entries. As result Exception thrown on proxy class generation:
> {noformat}
> Caused by: org.apache.aries.proxy.UnableToProxyException: java.lang.ClassFormatError: Duplicate interface name in class file Proxy3636dfb0_3a9f_46d5_8eb4_32506b8a33ae
> 	at org.apache.aries.proxy.impl.interfaces.ProxyClassLoader.createProxyClass(ProxyClassLoader.java:165)[20:org.apache.aries.proxy.impl:1.0.5]
> 	at org.apache.aries.proxy.impl.interfaces.InterfaceProxyGenerator.getProxyInstance(InterfaceProxyGenerator.java:97)[20:org.apache.aries.proxy.impl:1.0.5]
> 	at org.apache.aries.proxy.impl.AsmProxyManager.createNewProxy(AsmProxyManager.java:80)[20:org.apache.aries.proxy.impl:1.0.5]
> 	at org.apache.aries.proxy.impl.AbstractProxyManager.createDelegatingInterceptingProxy(AbstractProxyManager.java:75)[20:org.apache.aries.proxy.impl:1.0.5]
> 	at org.apache.aries.proxy.impl.AbstractProxyManager.createDelegatingProxy(AbstractProxyManager.java:40)[20:org.apache.aries.proxy.impl:1.0.5]
> 	at org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe.createProxy(AbstractServiceReferenceRecipe.java:332)[12:org.apache.aries.blueprint.core:1.6.2]
> 	at org.apache.aries.blueprint.container.ReferenceRecipe.internalCreate(ReferenceRecipe.java:107)[12:org.apache.aries.blueprint.core:1.6.2]
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)