code: public Method getSourceMethod() {
          Method method = sourceMethodReference.get();
          if (method != null || sourceMethodName == CTOR_METHOD_NAME) {
              return method;
          }
          for (Method m : ReflectionHelper.getDeclaredMethods(getSourceClass())) {
              if (m.getName().equals(sourceMethodName) && Type.getMethodDescriptor(m).equals(sourceMethodDescriptor)) {
                  method = m;
                  sourceMethodReference = new WeakReference<Method>(method);
                  break;
              }
          }
          return method;
      }
docs: {@inheritDoc}