You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2021/01/21 09:38:43 UTC

[camel] 01/02: camel-core - Optimize as the lambda code causes JVM compiler internally to throw an java.lang.NoSuchMethodError when it compiles the lambda code. JDK mission control reports this.

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

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

commit 2d740d82ac2eac1b8961aac7a2330bb0463c4bb9
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Jan 21 09:51:19 2021 +0100

    camel-core - Optimize as the lambda code causes JVM compiler internally to throw an java.lang.NoSuchMethodError when it compiles the lambda code. JDK mission control reports this.
---
 .../java/org/apache/camel/impl/DefaultModel.java   | 35 +++++++++++++++-------
 1 file changed, 24 insertions(+), 11 deletions(-)

diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultModel.java b/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultModel.java
index 1fc5736..042fe76 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultModel.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultModel.java
@@ -94,18 +94,28 @@ public class DefaultModel implements Model {
         if (routeDefinitions == null || routeDefinitions.isEmpty()) {
             return;
         }
-        List<RouteDefinition> list = new ArrayList<>();
-        routeDefinitions.forEach(r -> {
-            if (routeFilter == null || routeFilter.apply(r)) {
-                list.add(r);
+
+        List<RouteDefinition> list;
+        if (routeFilter == null) {
+            list = new ArrayList<>(routeDefinitions);
+        } else {
+            list = new ArrayList<>();
+            for (RouteDefinition r : routeDefinitions) {
+                if (routeFilter.apply(r)) {
+                    list.add(r);
+                }
             }
-        });
+        }
 
         removeRouteDefinitions(list);
-        list.forEach(r -> {
-            modelLifecycleStrategies.forEach(s -> s.onAddRouteDefinition(r));
+
+        for (RouteDefinition r : list) {
+            for (ModelLifecycleStrategy s : modelLifecycleStrategies) {
+                s.onAddRouteDefinition(r);
+            }
             this.routeDefinitions.add(r);
-        });
+        }
+
         if (shouldStartRoutes()) {
             getCamelContext().adapt(ModelCamelContext.class).startRouteDefinitions(list);
         }
@@ -174,10 +184,13 @@ public class DefaultModel implements Model {
         if (routeTemplateDefinitions == null || routeTemplateDefinitions.isEmpty()) {
             return;
         }
-        routeTemplateDefinitions.forEach(r -> {
-            modelLifecycleStrategies.forEach(s -> s.onAddRouteTemplateDefinition(r));
+
+        for (RouteTemplateDefinition r : routeTemplateDefinitions) {
+            for (ModelLifecycleStrategy s : modelLifecycleStrategies) {
+                s.onAddRouteTemplateDefinition(r);
+            }
             this.routeTemplateDefinitions.add(r);
-        });
+        }
     }
 
     @Override