Uploaded image for project: 'ActiveMQ Classic'
  1. ActiveMQ Classic
  2. AMQ-4289

activemq-perf-maven-plugin is unusable because of bug in ReflectionUtil helper class

    XMLWordPrintableJSON

Details

    Description

      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

      Attachments

        Activity

          People

            ceposta Christian Posta
            ceposta Christian Posta
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: