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

Amichai Rothman updated ARIES-1906:
-----------------------------------
    Description: 
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). 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) [?:?]

 

  was:
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 [[ARIES-1776] 
>Fixes for tck tests with 
>SecurityManager|https://github.com/apache/aries-rsa/commit/75448368d0efecbef48464bbf10791986e20c4b0#diff-e09b247ba00188e9d2efc964f8271da6].
> 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). 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) [?:?]

 


> 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.14.0
>            Reporter: Amichai Rothman
>            Priority: Major
>
> 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). 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