[ 
https://issues.apache.org/jira/browse/ARIES-1906?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Christian Schneider resolved ARIES-1906.
----------------------------------------
       Resolution: Fixed
         Assignee: Christian Schneider
    Fix Version/s: rsa-1.14.0

> 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
>            Assignee: Christian Schneider
>            Priority: Major
>             Fix For: rsa-1.14.0
>
>          Time Spent: 20m
>  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)

Reply via email to