test_class.declarator: cglibThrowableRenderer = new CglibThrowableRenderer()
test_class.original_string: CglibThrowableRenderer cglibThrowableRenderer = new CglibThrowableRenderer();
test_class.type: CglibThrowableRenderer
test_class.var_name: cglibThrowableRenderer
test_class.file: utils/src/test/java/com/cloud/utils/log/CglibThrowableRendererTest.java
test_class.identifier: CglibThrowableRendererTest
test_case.body: @Test
      public void testDoRendere() {
          SampleClass sampleClass = (SampleClass)Enhancer.create(SampleClass.class, new MyInvocationHandler());
          try {
              sampleClass.theFirstMethodThatCapturesAnException();
          } catch (Exception e) {
              String[] exceptions = cglibThrowableRenderer.doRender(e);
              assertThatTheTraceListDoesNotContainsCgLibLogs(exceptions);
          }
      }
test_case.class_method_signature: CglibThrowableRendererTest.testDoRendere()
test_case.full_signature: @Test public void testDoRendere()
test_case.identifier: testDoRendere
test_case.invocations: create theFirstMethodThatCapturesAnException doRender assertThatTheTraceListDoesNotContainsCgLibLogs
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testDoRendere()
focal_class.declarator: MAX_NUMBER_OF_STACK_TRACES_ON_LOG_FOR_CAUSE = 3
focal_class.modifier: private final static
focal_class.original_string: private final static int MAX_NUMBER_OF_STACK_TRACES_ON_LOG_FOR_CAUSE = 3;
focal_class.type: int
focal_class.var_name: MAX_NUMBER_OF_STACK_TRACES_ON_LOG_FOR_CAUSE
focal_class.file: utils/src/main/java/com/cloud/utils/log/CglibThrowableRenderer.java
focal_class.identifier: CglibThrowableRenderer
focal_class.interfaces: implements ThrowableRenderer
focal_class.class_method_signature: CglibThrowableRenderer.doRender(Throwable th)
focal_class.full_signature: @Override public String[] doRender(Throwable th)
focal_class.identifier: doRender
focal_class.modifiers: @Override public
focal_class.parameters: (Throwable th)
focal_class.return: String[]
focal_class.signature: String[] doRender(Throwable th)
focal_class.class_method_signature: CglibThrowableRenderer.addStackTraceToList(Throwable th, List<String> lines, int maxNumberOfStack)
focal_class.full_signature: private void addStackTraceToList(Throwable th, List<String> lines, int maxNumberOfStack)
focal_class.identifier: addStackTraceToList
focal_class.modifiers: private
focal_class.parameters: (Throwable th, List<String> lines, int maxNumberOfStack)
focal_class.return: void
focal_class.signature: void addStackTraceToList(Throwable th, List<String> lines, int maxNumberOfStack)
focal_method.body: @Override
      public String[] doRender(Throwable th) {
          List<String> lines = new ArrayList<String>();
          lines.add(th.toString());
          addStackTraceToList(th, lines, 0);
          do {
              th = th.getCause();
              if (th != null) {
                  lines.add("Caused by: " + th.toString());
                  addStackTraceToList(th, lines, MAX_NUMBER_OF_STACK_TRACES_ON_LOG_FOR_CAUSE);
              }
          } while (th != null);
          return lines.toArray(new String[lines.size()]);
      }
focal_method.class_method_signature: CglibThrowableRenderer.doRender(Throwable th)
focal_method.full_signature: @Override public String[] doRender(Throwable th)
focal_method.identifier: doRender
focal_method.invocations: add toString addStackTraceToList getCause add toString addStackTraceToList toArray size
focal_method.modifiers: @Override public
focal_method.parameters: (Throwable th)
focal_method.return: String[]
focal_method.signature: String[] doRender(Throwable th)