private void getClassAndMethod()

in src/main/java/org/apache/commons/logging/impl/Jdk13LumberjackLogger.java [157:184]


    private void getClassAndMethod() {
        try {
            final Throwable throwable = new Throwable();
            throwable.fillInStackTrace();
            final StringWriter stringWriter = new StringWriter();
            final PrintWriter printWriter = new PrintWriter(stringWriter);
            throwable.printStackTrace(printWriter);
            final String traceString = stringWriter.toString();
            final StringTokenizer tokenizer = new StringTokenizer(traceString, "\n");
            tokenizer.nextToken();
            String line = tokenizer.nextToken();
            while (!line.contains(this.getClass().getName())) {
                line = tokenizer.nextToken();
            }
            while (line.contains(this.getClass().getName())) {
                line = tokenizer.nextToken();
            }
            final int start = line.indexOf("at ") + 3;
            final int end = line.indexOf('(');
            final String temp = line.substring(start, end);
            final int lastPeriod = temp.lastIndexOf('.');
            sourceClassName = temp.substring(0, lastPeriod);
            sourceMethodName = temp.substring(lastPeriod + 1);
        } catch (final Exception ex) {
            // ignore - leave class and methodname unknown
        }
        classAndMethodFound = true;
    }