diff options
Diffstat (limited to 'logging/src/main/java')
-rw-r--r-- | logging/src/main/java/java/util/logging/LogRecord.java | 35 |
1 files changed, 17 insertions, 18 deletions
diff --git a/logging/src/main/java/java/util/logging/LogRecord.java b/logging/src/main/java/java/util/logging/LogRecord.java index 0a8e257..f810e12 100644 --- a/logging/src/main/java/java/util/logging/LogRecord.java +++ b/logging/src/main/java/java/util/logging/LogRecord.java @@ -364,26 +364,25 @@ public class LogRecord implements Serializable { * Init the sourceClass and sourceMethod fields. */ private void initSource() { - if (!sourceInited) { - StackTraceElement[] elements = (new Throwable()).getStackTrace(); - int i = 0; - String current = null; - FINDLOG: for (; i < elements.length; i++) { - current = elements[i].getClassName(); - if (current.equals(Logger.class.getName())) { - break FINDLOG; - } - } - while (++i < elements.length - && elements[i].getClassName().equals(current)) { - // do nothing - } - if (i < elements.length) { - this.sourceClassName = elements[i].getClassName(); - this.sourceMethodName = elements[i].getMethodName(); + // BEGIN android-changed + if (sourceInited) { + return; + } + + boolean sawLogger = false; + for (StackTraceElement element : new Throwable().getStackTrace()) { + String current = element.getClassName(); + if (current.startsWith(Logger.class.getName())) { + sawLogger = true; + } else if (sawLogger) { + this.sourceClassName = element.getClassName(); + this.sourceMethodName = element.getMethodName(); + break; } - sourceInited = true; } + + sourceInited = true; + // END android-changed } /** |