You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Charles Moulliard (JIRA)" <ji...@apache.org> on 2014/12/26 11:24:13 UTC

[jira] [Updated] (CAMEL-8185) IllegalArgumentException: argument type mismatch

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

Charles Moulliard updated CAMEL-8185:
-------------------------------------
    Description: 
When camel-scr (2.15-SNAPSHOT) is deployed and used with Apache Karaf - 2.3.0.redhat-611412

The following errors are generated when SCR got the CamelComponent or lost the Component
{code}
2014-12-26 11:13:49,453 | ERROR | r-1.0.0-thread-2 | osgi-camel-scr                   | ?                                   ? | 255 - com.redhat.gpe.training.osgi-camel-scr - 1.0.0 | [com.redhat.gpe.training.osgi.camel.BootStrap(52)] The gotCamelComponent method has thrown an exception
java.lang.IllegalArgumentException: argument type mismatch
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.7.0_51]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_51]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_51]
	at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_51]
	at org.apache.felix.scr.impl.helper.BaseMethod.invokeMethod(BaseMethod.java:231)[82:org.apache.felix.scr:1.8.0.redhat-611412]
	at org.apache.felix.scr.impl.helper.BaseMethod.access$500(BaseMethod.java:39)[82:org.apache.felix.scr:1.8.0.redhat-611412]
{code}

{code}
2014-12-26 11:22:50,355 | ERROR | l Console Thread | osgi-camel-scr                   | ?                                   ? | 255 - com.redhat.gpe.training.osgi-camel-scr - 1.0.0 | [com.redhat.gpe.training.osgi.camel.BootStrap(52)] The lostCamelComponent method has thrown an exception
java.lang.IllegalArgumentException: argument type mismatch
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.7.0_51]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_51]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_51]
	at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_51]
	at org.apache.felix.scr.impl.helper.BaseMethod.invokeMethod(BaseMethod.java:231)[82:org.apache.felix.scr:1.8.0.redhat-611412]
	at org.apache.felix.scr.impl.helper.BaseMethod.access$500(BaseMethod.java:39)[82:org.apache.felix.scr:1.8.0.redhat-611412]
	at org.apache.felix.scr.impl.helper.BaseMethod$Resolved.invoke(BaseMethod.java:624)[82:org.apache.felix.scr:1.8.0.redhat-611412]
	at org.apache.felix.scr.impl.helper.BaseMethod.invoke(BaseMethod.java:508)[82:org.apache.felix.scr:1.8.0.redhat-611412]
	at org.apache.felix.scr.impl.helper.BindMethod.invoke(BindMethod.java:37)[82:org.apache.felix.scr:1.8.0.redhat-611412]
	at org.apache.felix.scr.impl.manager.DependencyManager.invokeUnbindMethod(DependencyManager.java:1711)[82:org.apache.felix.scr:1.8.0.redhat-611412]
{code}

Here is the code used as example :

{code}
import org.apache.camel.CamelContext;
import org.apache.camel.RoutesBuilder;
import org.apache.camel.scr.AbstractCamelRunner;
import org.apache.camel.spi.ComponentResolver;
import org.apache.felix.scr.annotations.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.ArrayList;
import java.util.List;

@Component(label = BootStrap.COMPONENT_LABEL, description = BootStrap.COMPONENT_DESCRIPTION)
@Properties({
        @Property(name = "camelContextId", value = "camel-scr-exercise"),
        @Property(name = "active", value = "true")
})
@References({
        @Reference(name = "camelComponent",referenceInterface = ComponentResolver.class,
                cardinality = ReferenceCardinality.MANDATORY_MULTIPLE, policy = ReferencePolicy.DYNAMIC,
                policyOption = ReferencePolicyOption.GREEDY, bind = "gotCamelComponent", unbind = "lostCamelComponent")
})
public class BootStrap extends AbstractCamelRunner {

    public static final String COMPONENT_LABEL = "bootstrap.CamelScrExercise";
    public static final String COMPONENT_DESCRIPTION = "This is the description for camel-scr-exercise.";

    public static final Logger LOGGER = LoggerFactory.getLogger(BootStrap.class);

    @Override
    protected List<RoutesBuilder> getRouteBuilders() {
        LOGGER.info("Load Camel Routes definition");
        List<RoutesBuilder> routesBuilders = new ArrayList<>();
        routesBuilders.add(new GreeterRoute());
        return routesBuilders;
    }
}

{code}

  was:
When camel-scr (2.15-SNAPSHOT) is deployed and used with Apache Karaf - 2.3.0.redhat-611412

The following errors are generated when SCR got the CamelComponent 
{code}
2014-12-26 11:13:49,453 | ERROR | r-1.0.0-thread-2 | osgi-camel-scr                   | ?                                   ? | 255 - com.redhat.gpe.training.osgi-camel-scr - 1.0.0 | [com.redhat.gpe.training.osgi.camel.BootStrap(52)] The gotCamelComponent method has thrown an exception
java.lang.IllegalArgumentException: argument type mismatch
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.7.0_51]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_51]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_51]
	at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_51]
	at org.apache.felix.scr.impl.helper.BaseMethod.invokeMethod(BaseMethod.java:231)[82:org.apache.felix.scr:1.8.0.redhat-611412]
	at org.apache.felix.scr.impl.helper.BaseMethod.access$500(BaseMethod.java:39)[82:org.apache.felix.scr:1.8.0.redhat-611412]
{code}

Here is the code used as example :

{code}
import org.apache.camel.CamelContext;
import org.apache.camel.RoutesBuilder;
import org.apache.camel.scr.AbstractCamelRunner;
import org.apache.camel.spi.ComponentResolver;
import org.apache.felix.scr.annotations.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.ArrayList;
import java.util.List;

@Component(label = BootStrap.COMPONENT_LABEL, description = BootStrap.COMPONENT_DESCRIPTION)
@Properties({
        @Property(name = "camelContextId", value = "camel-scr-exercise"),
        @Property(name = "active", value = "true")
})
@References({
        @Reference(name = "camelComponent",referenceInterface = ComponentResolver.class,
                cardinality = ReferenceCardinality.MANDATORY_MULTIPLE, policy = ReferencePolicy.DYNAMIC,
                policyOption = ReferencePolicyOption.GREEDY, bind = "gotCamelComponent", unbind = "lostCamelComponent")
})
public class BootStrap extends AbstractCamelRunner {

    public static final String COMPONENT_LABEL = "bootstrap.CamelScrExercise";
    public static final String COMPONENT_DESCRIPTION = "This is the description for camel-scr-exercise.";

    public static final Logger LOGGER = LoggerFactory.getLogger(BootStrap.class);

    @Override
    protected List<RoutesBuilder> getRouteBuilders() {
        LOGGER.info("Load Camel Routes definition");
        List<RoutesBuilder> routesBuilders = new ArrayList<>();
        routesBuilders.add(new GreeterRoute());
        return routesBuilders;
    }
}

{code}


> IllegalArgumentException: argument type mismatch
> ------------------------------------------------
>
>                 Key: CAMEL-8185
>                 URL: https://issues.apache.org/jira/browse/CAMEL-8185
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-scr
>    Affects Versions: 2.15.0
>            Reporter: Charles Moulliard
>
> When camel-scr (2.15-SNAPSHOT) is deployed and used with Apache Karaf - 2.3.0.redhat-611412
> The following errors are generated when SCR got the CamelComponent or lost the Component
> {code}
> 2014-12-26 11:13:49,453 | ERROR | r-1.0.0-thread-2 | osgi-camel-scr                   | ?                                   ? | 255 - com.redhat.gpe.training.osgi-camel-scr - 1.0.0 | [com.redhat.gpe.training.osgi.camel.BootStrap(52)] The gotCamelComponent method has thrown an exception
> java.lang.IllegalArgumentException: argument type mismatch
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.7.0_51]
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_51]
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_51]
> 	at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_51]
> 	at org.apache.felix.scr.impl.helper.BaseMethod.invokeMethod(BaseMethod.java:231)[82:org.apache.felix.scr:1.8.0.redhat-611412]
> 	at org.apache.felix.scr.impl.helper.BaseMethod.access$500(BaseMethod.java:39)[82:org.apache.felix.scr:1.8.0.redhat-611412]
> {code}
> {code}
> 2014-12-26 11:22:50,355 | ERROR | l Console Thread | osgi-camel-scr                   | ?                                   ? | 255 - com.redhat.gpe.training.osgi-camel-scr - 1.0.0 | [com.redhat.gpe.training.osgi.camel.BootStrap(52)] The lostCamelComponent method has thrown an exception
> java.lang.IllegalArgumentException: argument type mismatch
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.7.0_51]
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_51]
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_51]
> 	at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_51]
> 	at org.apache.felix.scr.impl.helper.BaseMethod.invokeMethod(BaseMethod.java:231)[82:org.apache.felix.scr:1.8.0.redhat-611412]
> 	at org.apache.felix.scr.impl.helper.BaseMethod.access$500(BaseMethod.java:39)[82:org.apache.felix.scr:1.8.0.redhat-611412]
> 	at org.apache.felix.scr.impl.helper.BaseMethod$Resolved.invoke(BaseMethod.java:624)[82:org.apache.felix.scr:1.8.0.redhat-611412]
> 	at org.apache.felix.scr.impl.helper.BaseMethod.invoke(BaseMethod.java:508)[82:org.apache.felix.scr:1.8.0.redhat-611412]
> 	at org.apache.felix.scr.impl.helper.BindMethod.invoke(BindMethod.java:37)[82:org.apache.felix.scr:1.8.0.redhat-611412]
> 	at org.apache.felix.scr.impl.manager.DependencyManager.invokeUnbindMethod(DependencyManager.java:1711)[82:org.apache.felix.scr:1.8.0.redhat-611412]
> {code}
> Here is the code used as example :
> {code}
> import org.apache.camel.CamelContext;
> import org.apache.camel.RoutesBuilder;
> import org.apache.camel.scr.AbstractCamelRunner;
> import org.apache.camel.spi.ComponentResolver;
> import org.apache.felix.scr.annotations.*;
> import org.slf4j.Logger;
> import org.slf4j.LoggerFactory;
> import java.util.ArrayList;
> import java.util.List;
> @Component(label = BootStrap.COMPONENT_LABEL, description = BootStrap.COMPONENT_DESCRIPTION)
> @Properties({
>         @Property(name = "camelContextId", value = "camel-scr-exercise"),
>         @Property(name = "active", value = "true")
> })
> @References({
>         @Reference(name = "camelComponent",referenceInterface = ComponentResolver.class,
>                 cardinality = ReferenceCardinality.MANDATORY_MULTIPLE, policy = ReferencePolicy.DYNAMIC,
>                 policyOption = ReferencePolicyOption.GREEDY, bind = "gotCamelComponent", unbind = "lostCamelComponent")
> })
> public class BootStrap extends AbstractCamelRunner {
>     public static final String COMPONENT_LABEL = "bootstrap.CamelScrExercise";
>     public static final String COMPONENT_DESCRIPTION = "This is the description for camel-scr-exercise.";
>     public static final Logger LOGGER = LoggerFactory.getLogger(BootStrap.class);
>     @Override
>     protected List<RoutesBuilder> getRouteBuilders() {
>         LOGGER.info("Load Camel Routes definition");
>         List<RoutesBuilder> routesBuilders = new ArrayList<>();
>         routesBuilders.add(new GreeterRoute());
>         return routesBuilders;
>     }
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)