[
https://issues.apache.org/jira/browse/TAP5-1813?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14747342#comment-14747342
]
Hudson commented on TAP5-1813:
------------------------------
ABORTED: Integrated in tapestry-trunk-freestyle #1499 (See
[https://builds.apache.org/job/tapestry-trunk-freestyle/1499/])
TAP5-1813: the methods returned by java.lang.Class.getMethods() are not
guaranteed to be returned in a particular order (jochen.kemnade: rev
b83b38c9ad5018a402c5de91795b329197a892cb)
*
tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/StrategyBuilderImpl.java
* tapestry-ioc/src/test/groovy/ioc/specs/StrategyBuilderImplSpec.groovy
> Using StrategyBuilder service on an interface with a non-conforming method
> (one that does not include the selector as the initial parameter) throws an
> inscrutable ArrayIndexOutOfBounds exception
> --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: TAP5-1813
> URL: https://issues.apache.org/jira/browse/TAP5-1813
> Project: Tapestry 5
> Issue Type: Bug
> Components: tapestry-ioc
> Affects Versions: 5.3, 5.4
> Reporter: Howard M. Lewis Ship
> Priority: Minor
> Fix For: 5.4
>
>
> Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
> at
> org.apache.tapestry5.internal.plastic.InstructionBuilderImpl.loadArgument(InstructionBuilderImpl.java:171)
> ~[plastic-5.3.1.jar:na]
> at
> org.apache.tapestry5.ioc.internal.services.StrategyBuilderImpl$1$1.doBuild(StrategyBuilderImpl.java:76)
> ~[tapestry-ioc-5.3.1.jar:na]
> at
> org.apache.tapestry5.internal.plastic.InstructionBuilderImpl.doCallback(InstructionBuilderImpl.java:832)
> ~[plastic-5.3.1.jar:na]
> at
> org.apache.tapestry5.internal.plastic.PlasticMethodImpl.changeImplementation(PlasticMethodImpl.java:130)
> ~[plastic-5.3.1.jar:na]
> at
> org.apache.tapestry5.internal.plastic.PlasticClassImpl.introduceMethod(PlasticClassImpl.java:647)
> ~[plastic-5.3.1.jar:na]
> at
> org.apache.tapestry5.ioc.internal.services.StrategyBuilderImpl$1.transform(StrategyBuilderImpl.java:65)
> ~[tapestry-ioc-5.3.1.jar:na]
> at
> org.apache.tapestry5.plastic.PlasticManager.createProxy(PlasticManager.java:235)
> ~[plastic-5.3.1.jar:na]
> at
> org.apache.tapestry5.ioc.internal.services.PlasticProxyFactoryImpl.createProxy(PlasticProxyFactoryImpl.java:60)
> ~[tapestry-ioc-5.3.1.jar:na]
> at
> org.apache.tapestry5.ioc.internal.services.StrategyBuilderImpl.createProxy(StrategyBuilderImpl.java:56)
> ~[tapestry-ioc-5.3.1.jar:na]
> at
> org.apache.tapestry5.ioc.internal.services.StrategyBuilderImpl.build(StrategyBuilderImpl.java:44)
> ~[tapestry-ioc-5.3.1.jar:na]
> at
> org.apache.tapestry5.ioc.internal.services.StrategyBuilderImpl.build(StrategyBuilderImpl.java:51)
> ~[tapestry-ioc-5.3.1.jar:na]
> at $StrategyBuilder_1265847ad7894079.build(Unknown Source) ~[na:na]
> This traces into code that attempts to load the first argument (argument 0,
> as Plastic numbers them) which fails because the method contains no
> parameters. A better case would be to check that each method takes at least
> one parameter, and preferably, find a way to ensure that the first parameter
> is the correct selector type.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)