[ 
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)

Reply via email to