You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@uima.apache.org by "Richard Eckart de Castilho (JIRA)" <de...@uima.apache.org> on 2018/05/29 20:54:00 UTC

[jira] [Resolved] (UIMA-3928) createExternalResourceDescription() signatures shadowing each other

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

Richard Eckart de Castilho resolved UIMA-3928.
----------------------------------------------
    Resolution: Fixed

Changed signatures, changed method names to avoid signature clashes, also shortened method names. Quite a bit incompatible change ;)

> createExternalResourceDescription() signatures shadowing each other
> -------------------------------------------------------------------
>
>                 Key: UIMA-3928
>                 URL: https://issues.apache.org/jira/browse/UIMA-3928
>             Project: UIMA
>          Issue Type: Bug
>          Components: uimaFIT
>    Affects Versions: 2.0.0uimaFIT
>            Reporter: Richard Eckart de Castilho
>            Assignee: Richard Eckart de Castilho
>            Priority: Major
>             Fix For: 3.0.0uimaFIT
>
>
> The method 
> {noformat}
> ExternalResourceDescription createExternalResourceDescription(
>   Class<? extends SharedResourceObject> aInterface, 
>   String aUrl, 
>   Object... aParams)
> {noformat}
> can be invoked if the user actually wanted to call the method
> {noformat}
> ExternalResourceDescription createExternalResourceDescription(
>   Class<? extends Resource> aInterface, 
>   Object... aParams)
> {noformat}
> E.g.
> {noformat}
> createExternalResourceDescription(
>         MyResource,
>         MyResource.PARAM_VALUE, 
>         "myvalue"))
> {noformat}
> Java seems to be smart enough to invoke the correct method, but when calling this from Groovy, it fails:
> {noformat}
> Caught: java.lang.IllegalArgumentException: Parameter arguments have to come in key/value pairs, but found odd number of arguments [3]
> java.lang.IllegalArgumentException: Parameter arguments have to come in key/value pairs, but found odd number of arguments [3]
> 	at org.apache.uima.fit.factory.ConfigurationParameterFactory.ensureParametersComeInPairs(ConfigurationParameterFactory.java:531)
> 	at org.apache.uima.fit.factory.ConfigurationParameterFactory.createConfigurationData(ConfigurationParameterFactory.java:374)
> 	at org.apache.uima.fit.factory.ExternalResourceFactory.createExternalResourceDescription(ExternalResourceFactory.java:277)
> 	at org.apache.uima.fit.factory.ExternalResourceFactory.createExternalResourceDescription(ExternalResourceFactory.java:213)
> {noformat}
> A workaround is currently to cast the first parameter name to Object:
> {noformat}
> createExternalResourceDescription(
>         MyResource,
>         (Object) MyResource.PARAM_VALUE, 
>         "myvalue"))
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)