diff --git a/activemq-tooling/activemq-perf-maven-plugin/src/main/java/org/apache/activemq/tool/properties/ReflectionUtil.java b/activemq-tooling/activemq-perf-maven-plugin/src/main/java/org/apache/activemq/tool/properties/ReflectionUtil.java index 974fffffd7..e20c49d415 100644 --- a/activemq-tooling/activemq-perf-maven-plugin/src/main/java/org/apache/activemq/tool/properties/ReflectionUtil.java +++ b/activemq-tooling/activemq-perf-maven-plugin/src/main/java/org/apache/activemq/tool/properties/ReflectionUtil.java @@ -213,7 +213,8 @@ public final class ReflectionUtil { } else { try { Object val = getterMethods[i].invoke(targetObject, null); - if (val != null) { +// if (val != null && val != targetObject) { + if (val != null ) { props.putAll(retrieveClassProperties(propertyName + ".", val.getClass(), val)); } } catch (InvocationTargetException e) { diff --git a/activemq-tooling/activemq-perf-maven-plugin/src/test/java/org/apache/activemq/tool/ReflectionUtilTest.java b/activemq-tooling/activemq-perf-maven-plugin/src/test/java/org/apache/activemq/tool/ReflectionUtilTest.java index 3f219b7d2f..8542aee261 100644 --- a/activemq-tooling/activemq-perf-maven-plugin/src/test/java/org/apache/activemq/tool/ReflectionUtilTest.java +++ b/activemq-tooling/activemq-perf-maven-plugin/src/test/java/org/apache/activemq/tool/ReflectionUtilTest.java @@ -280,6 +280,10 @@ public class ReflectionUtilTest extends TestCase { public void setTestData(TestClass3 testData) { this.testData = testData; } + + public TestClass3 getRecursiveData() { + return this; + } } public class TestClass4 {