You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by lb...@apache.org on 2020/04/07 08:32:34 UTC

[camel-quarkus] branch master updated: BeanInfo::getImplClazz can be null for primitives or arrays

This is an automated email from the ASF dual-hosted git repository.

lburgazzoli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git


The following commit(s) were added to refs/heads/master by this push:
     new d9a1ba9  BeanInfo::getImplClazz can be null for primitives or arrays
d9a1ba9 is described below

commit d9a1ba939770e12ec372f0cd2dcf82f28c16d55a
Author: lburgazzoli <lb...@gmail.com>
AuthorDate: Mon Apr 6 18:32:07 2020 +0200

    BeanInfo::getImplClazz can be null for primitives or arrays
---
 .../camel/quarkus/core/deployment/ContainerBeansBuildItem.java   | 6 ++++--
 .../java/org/apache/camel/quarkus/core/CamelRouteProducer.java   | 9 +++++++++
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/ContainerBeansBuildItem.java b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/ContainerBeansBuildItem.java
index abef5d3..2e2549d 100644
--- a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/ContainerBeansBuildItem.java
+++ b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/ContainerBeansBuildItem.java
@@ -34,8 +34,10 @@ public final class ContainerBeansBuildItem extends SimpleBuildItem {
     private final Set<DotName> classes;
 
     public ContainerBeansBuildItem(Collection<BeanInfo> beans) {
-        this.beans = beans.stream().map(SimpleCamelBeanInfo::new).collect(Collectors.toSet());
-        this.classes = beans.stream().map(BeanInfo::getImplClazz).map(ClassInfo::name).collect(Collectors.toSet());
+        this.beans = beans.stream()
+                .filter(bi -> bi.getImplClazz() != null).map(SimpleCamelBeanInfo::new).collect(Collectors.toSet());
+        this.classes = beans.stream()
+                .map(BeanInfo::getImplClazz).filter(Objects::nonNull).map(ClassInfo::name).collect(Collectors.toSet());
     }
 
     public Set<CamelBeanInfo> getBeans() {
diff --git a/integration-tests/core-main/src/main/java/org/apache/camel/quarkus/core/CamelRouteProducer.java b/integration-tests/core-main/src/main/java/org/apache/camel/quarkus/core/CamelRouteProducer.java
index 6a00a77..fc31a02 100644
--- a/integration-tests/core-main/src/main/java/org/apache/camel/quarkus/core/CamelRouteProducer.java
+++ b/integration-tests/core-main/src/main/java/org/apache/camel/quarkus/core/CamelRouteProducer.java
@@ -24,6 +24,15 @@ import org.apache.camel.builder.RouteBuilder;
 
 @ApplicationScoped
 public class CamelRouteProducer {
+    /*
+     * The BeanInfo#getImplClazz() returns null in case of a produce of primitives ao arrays which
+     * cause ContainerBeansBuildItem to fail. This producer method is here only to validate we handle
+     * such case.
+     */
+    @Produces
+    public String[] primitiveType() {
+        return new String[] {};
+    }
 
     @Produces
     RoutesBuilder producedRoute() {