[
https://issues.apache.org/jira/browse/ARIES-1906?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16823981#comment-16823981
]
Amichai Rothman commented on ARIES-1906:
----------------------------------------
Is the PR ok? Any chance this will get merged and released soon? It's a pretty
serious regression, breaking a lot of existing code...
> Regression - export of superclass interface fails
> -------------------------------------------------
>
> Key: ARIES-1906
> URL: https://issues.apache.org/jira/browse/ARIES-1906
> Project: Aries
> Issue Type: Bug
> Components: Remote Service Admin
> Affects Versions: rsa-1.12.0, rsa-1.13.0, rsa-1.14.0
> Reporter: Amichai Rothman
> Priority: Major
> Time Spent: 10m
> Remaining Estimate: 0h
>
> When exporting a service using an interface that is declared in the service
> superclass rather than directly by the class, the export fails with the
> exception stack trace below.
> From a quick look it seems like this got broken in the commit for ARIES-1776.
> The getInterfaces method implementation changed, I'm not sure if it's related
> to the stated fix but the new implementation changes the behavior - it checks
> the service getClass().getInterfaces() but does not traverse the superclasses
> as well. Also, it silently ignores interfaces that are not found rather than
> throwing the declared ClassNotFoundException. Also it only checks the service
> interfaces whereas the previous implementation loaded the interface classes
> regardless (this may be an improvement, dunno). Also the order of returned
> interfaces changed, which is significant as the line where the exception
> below is thrown shows. There may be other differences I didn't think of...
> unfortunately there are no tests to catch any of these.
>
> java.lang.ArrayIndexOutOfBoundsException: 0
> at
> org.apache.cxf.dosgi.dsw.handlers.ws.WsProvider.exportService(WsProvider.java:164)
> ~[?:?]
> at
> org.apache.aries.rsa.core.RemoteServiceAdminCore$3.run(RemoteServiceAdminCore.java:236)
> ~[?:?]
> at
> org.apache.aries.rsa.core.RemoteServiceAdminCore$3.run(RemoteServiceAdminCore.java:234)
> ~[?:?]
> at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
> at
> org.apache.aries.rsa.core.RemoteServiceAdminCore.exportService(RemoteServiceAdminCore.java:234)
> ~[?:?]
> at
> org.apache.aries.rsa.core.RemoteServiceAdminCore.exportService(RemoteServiceAdminCore.java:135)
> ~[?:?]
> at
> org.apache.aries.rsa.core.RemoteServiceAdminInstance.exportService(RemoteServiceAdminInstance.java:55)
> ~[?:?]
> at
> org.apache.aries.rsa.core.RemoteServiceAdminInstance.exportService(RemoteServiceAdminInstance.java:39)
> ~[?:?]
> at
> org.apache.aries.rsa.topologymanager.exporter.TopologyManagerExport.exportService(TopologyManagerExport.java:186)
> [145:org.apache.aries.rsa.topology-manager:1.14.0.SNAPSHOT]
> at
> org.apache.aries.rsa.topologymanager.exporter.TopologyManagerExport.doExport(TopologyManagerExport.java:169)
> [145:org.apache.aries.rsa.topology-manager:1.14.0.SNAPSHOT]
> at
> org.apache.aries.rsa.topologymanager.exporter.TopologyManagerExport.access$000(TopologyManagerExport.java:58)
> [145:org.apache.aries.rsa.topology-manager:1.14.0.SNAPSHOT]
> at
> org.apache.aries.rsa.topologymanager.exporter.TopologyManagerExport$1.run(TopologyManagerExport.java:152)
> [145:org.apache.aries.rsa.topology-manager:1.14.0.SNAPSHOT]
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> [?:?]
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> [?:?]
> at java.lang.Thread.run(Thread.java:748) [?:?]
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)