[
https://issues.apache.org/jira/browse/ARIES-1906?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Amichai Rothman updated ARIES-1906:
-----------------------------------
Affects Version/s: rsa-1.12.0
rsa-1.13.0
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). 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) [?:?]
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 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) [?:?]
> 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
>
> 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)