Christian Posta created AMQ-4289: ------------------------------------ Summary: activemq-perf-maven-plugin is unusable because of bug in ReflectionUtil helper class Key: AMQ-4289 URL: https://issues.apache.org/jira/browse/AMQ-4289 Project: ActiveMQ Issue Type: Bug Components: Performance Test Affects Versions: 5.8.0 Reporter: Christian Posta Assignee: Christian Posta
End up getting stack overflow for recursive call in ReflectionUtil.retrieveClassProperties()... if there is a getter that returns itself, it will not check that the "targetObject" which it's inspecting is the same as what an identity getter would return. For example, RedeliveryPolicy has a method: getValue() { return this; } which causes this stack trace: java.lang.StackOverflowError at java.io.FileOutputStream.writeBytes(Native Method) at java.io.FileOutputStream.write(FileOutputStream.java:282) at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65) at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123) at java.io.PrintStream.flush(PrintStream.java:288) at com.intellij.rt.execution.junit.segments.SegmentedOutputStream.flush(SegmentedOutputStream.java:48) at com.intellij.rt.execution.junit.segments.SegmentedOutputStream.write(SegmentedOutputStream.java:44) at java.io.OutputStream.write(OutputStream.java:99) at java.io.PrintStream.write(PrintStream.java:430) at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:202) at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:272) at sun.nio.cs.StreamEncoder.flushBuffer(StreamEncoder.java:85) at java.io.OutputStreamWriter.flushBuffer(OutputStreamWriter.java:168) at java.io.PrintStream.write(PrintStream.java:477) at java.io.PrintStream.print(PrintStream.java:619) at java.io.PrintStream.println(PrintStream.java:773) at java.lang.Throwable.printStackTrace(Throwable.java:461) at java.lang.Throwable.printStackTrace(Throwable.java:451) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:229) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUtil.java:218) at org.apache.activemq.tool.properties.ReflectionUtil.retrieveClassProperties(ReflectionUt -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira