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 2014/07/01 20:52:24 UTC

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

Richard Eckart de Castilho created UIMA-3928:
------------------------------------------------

             Summary: 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


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
(v6.2#6252)