You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rp...@apache.org on 2017/06/24 10:57:51 UTC

[5/8] logging-log4j2 git commit: LOG4J2-1926 Facilitate Adroid use: Moved ExtendedThreadInformation from log4j-api to log4j-core to avoid all references to java.lang.management in log4j-api

LOG4J2-1926 Facilitate Adroid use: Moved ExtendedThreadInformation from log4j-api to log4j-core to avoid all references to java.lang.management in log4j-api


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/98eaaf98
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/98eaaf98
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/98eaaf98

Branch: refs/heads/master
Commit: 98eaaf9861156661f8d053adced0856fb7b54d6b
Parents: 75f519f
Author: rpopma <rp...@apache.org>
Authored: Sat Jun 24 19:55:49 2017 +0900
Committer: rpopma <rp...@apache.org>
Committed: Sat Jun 24 19:55:49 2017 +0900

----------------------------------------------------------------------
 .../message/ExtendedThreadInformation.java      | 166 ------------------
 .../core/message/ExtendedThreadInformation.java | 167 +++++++++++++++++++
 2 files changed, 167 insertions(+), 166 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/98eaaf98/log4j-api/src/main/java/org/apache/logging/log4j/message/ExtendedThreadInformation.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/ExtendedThreadInformation.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/ExtendedThreadInformation.java
deleted file mode 100644
index 208121c..0000000
--- a/log4j-api/src/main/java/org/apache/logging/log4j/message/ExtendedThreadInformation.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache license, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the license for the specific language governing permissions and
- * limitations under the license.
- */
-package org.apache.logging.log4j.message;
-
-import java.lang.management.LockInfo;
-import java.lang.management.MonitorInfo;
-import java.lang.management.ThreadInfo;
-
-import org.apache.logging.log4j.util.StringBuilders;
-
-/**
- * Provides information on locks and monitors in the thread dump. This class requires Java 1.6 to compile and
- * run.
- */
-class ExtendedThreadInformation implements ThreadInformation {
-
-    private final ThreadInfo threadInfo;
-
-    ExtendedThreadInformation(final ThreadInfo thread) {
-        this.threadInfo = thread;
-    }
-
-    @Override
-    public void printThreadInfo(final StringBuilder sb) {
-        StringBuilders.appendDqValue(sb, threadInfo.getThreadName());
-        sb.append(" Id=").append(threadInfo.getThreadId()).append(' ');
-        formatState(sb, threadInfo);
-        if (threadInfo.isSuspended()) {
-            sb.append(" (suspended)");
-        }
-        if (threadInfo.isInNative()) {
-            sb.append(" (in native)");
-        }
-        sb.append('\n');
-    }
-
-    @Override
-    public void printStack(final StringBuilder sb, final StackTraceElement[] stack) {
-        int i = 0;
-        for (final StackTraceElement element : stack) {
-            sb.append("\tat ").append(element.toString());
-            sb.append('\n');
-            if (i == 0 && threadInfo.getLockInfo() != null) {
-                final Thread.State ts = threadInfo.getThreadState();
-                switch (ts) {
-                    case BLOCKED:
-                        sb.append("\t-  blocked on ");
-                        formatLock(sb, threadInfo.getLockInfo());
-                        sb.append('\n');
-                        break;
-                    case WAITING:
-                        sb.append("\t-  waiting on ");
-                        formatLock(sb, threadInfo.getLockInfo());
-                        sb.append('\n');
-                        break;
-                    case TIMED_WAITING:
-                        sb.append("\t-  waiting on ");
-                        formatLock(sb, threadInfo.getLockInfo());
-                        sb.append('\n');
-                        break;
-                    default:
-                }
-            }
-
-            for (final MonitorInfo mi : threadInfo.getLockedMonitors()) {
-                if (mi.getLockedStackDepth() == i) {
-                    sb.append("\t-  locked ");
-                    formatLock(sb, mi);
-                    sb.append('\n');
-                }
-            }
-            ++i;
-        }
-
-        final LockInfo[] locks = threadInfo.getLockedSynchronizers();
-        if (locks.length > 0) {
-            sb.append("\n\tNumber of locked synchronizers = ").append(locks.length).append('\n');
-            for (final LockInfo li : locks) {
-                sb.append("\t- ");
-                formatLock(sb, li);
-                sb.append('\n');
-            }
-        }
-    }
-
-    private void formatLock(final StringBuilder sb, final LockInfo lock) {
-        sb.append('<').append(lock.getIdentityHashCode()).append("> (a ");
-        sb.append(lock.getClassName()).append(')');
-    }
-
-    private void formatState(final StringBuilder sb, final ThreadInfo info) {
-        final Thread.State state = info.getThreadState();
-        sb.append(state);
-        switch (state) {
-            case BLOCKED: {
-                sb.append(" (on object monitor owned by \"");
-                sb.append(info.getLockOwnerName()).append("\" Id=").append(info.getLockOwnerId()).append(')');
-                break;
-            }
-            case WAITING: {
-                final StackTraceElement element = info.getStackTrace()[0];
-                final String className = element.getClassName();
-                final String method = element.getMethodName();
-                if (className.equals("java.lang.Object") && method.equals("wait")) {
-                    sb.append(" (on object monitor");
-                    if (info.getLockOwnerName() != null) {
-                        sb.append(" owned by \"");
-                        sb.append(info.getLockOwnerName()).append("\" Id=").append(info.getLockOwnerId());
-                    }
-                    sb.append(')');
-                } else if (className.equals("java.lang.Thread") && method.equals("join")) {
-                    sb.append(" (on completion of thread ").append(info.getLockOwnerId()).append(')');
-                } else {
-                    sb.append(" (parking for lock");
-                    if (info.getLockOwnerName() != null) {
-                        sb.append(" owned by \"");
-                        sb.append(info.getLockOwnerName()).append("\" Id=").append(info.getLockOwnerId());
-                    }
-                    sb.append(')');
-                }
-                break;
-            }
-            case TIMED_WAITING: {
-                final StackTraceElement element = info.getStackTrace()[0];
-                final String className = element.getClassName();
-                final String method = element.getMethodName();
-                if (className.equals("java.lang.Object") && method.equals("wait")) {
-                    sb.append(" (on object monitor");
-                    if (info.getLockOwnerName() != null) {
-                        sb.append(" owned by \"");
-                        sb.append(info.getLockOwnerName()).append("\" Id=").append(info.getLockOwnerId());
-                    }
-                    sb.append(')');
-                } else if (className.equals("java.lang.Thread") && method.equals("sleep")) {
-                    sb.append(" (sleeping)");
-                } else if (className.equals("java.lang.Thread") && method.equals("join")) {
-                    sb.append(" (on completion of thread ").append(info.getLockOwnerId()).append(')');
-                } else {
-                    sb.append(" (parking for lock");
-                    if (info.getLockOwnerName() != null) {
-                        sb.append(" owned by \"");
-                        sb.append(info.getLockOwnerName()).append("\" Id=").append(info.getLockOwnerId());
-                    }
-                    sb.append(')');
-                }
-                break;
-            }
-            default:
-                break;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/98eaaf98/log4j-core/src/main/java/org/apache/logging/log4j/core/message/ExtendedThreadInformation.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/message/ExtendedThreadInformation.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/message/ExtendedThreadInformation.java
new file mode 100644
index 0000000..af7bf8b
--- /dev/null
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/message/ExtendedThreadInformation.java
@@ -0,0 +1,167 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache license, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the license for the specific language governing permissions and
+ * limitations under the license.
+ */
+package org.apache.logging.log4j.core.message;
+
+import java.lang.management.LockInfo;
+import java.lang.management.MonitorInfo;
+import java.lang.management.ThreadInfo;
+
+import org.apache.logging.log4j.message.ThreadInformation;
+import org.apache.logging.log4j.util.StringBuilders;
+
+/**
+ * Provides information on locks and monitors in the thread dump. This class requires Java 1.6 to compile and
+ * run.
+ */
+class ExtendedThreadInformation implements ThreadInformation {
+
+    private final ThreadInfo threadInfo;
+
+    ExtendedThreadInformation(final ThreadInfo thread) {
+        this.threadInfo = thread;
+    }
+
+    @Override
+    public void printThreadInfo(final StringBuilder sb) {
+        StringBuilders.appendDqValue(sb, threadInfo.getThreadName());
+        sb.append(" Id=").append(threadInfo.getThreadId()).append(' ');
+        formatState(sb, threadInfo);
+        if (threadInfo.isSuspended()) {
+            sb.append(" (suspended)");
+        }
+        if (threadInfo.isInNative()) {
+            sb.append(" (in native)");
+        }
+        sb.append('\n');
+    }
+
+    @Override
+    public void printStack(final StringBuilder sb, final StackTraceElement[] stack) {
+        int i = 0;
+        for (final StackTraceElement element : stack) {
+            sb.append("\tat ").append(element.toString());
+            sb.append('\n');
+            if (i == 0 && threadInfo.getLockInfo() != null) {
+                final Thread.State ts = threadInfo.getThreadState();
+                switch (ts) {
+                    case BLOCKED:
+                        sb.append("\t-  blocked on ");
+                        formatLock(sb, threadInfo.getLockInfo());
+                        sb.append('\n');
+                        break;
+                    case WAITING:
+                        sb.append("\t-  waiting on ");
+                        formatLock(sb, threadInfo.getLockInfo());
+                        sb.append('\n');
+                        break;
+                    case TIMED_WAITING:
+                        sb.append("\t-  waiting on ");
+                        formatLock(sb, threadInfo.getLockInfo());
+                        sb.append('\n');
+                        break;
+                    default:
+                }
+            }
+
+            for (final MonitorInfo mi : threadInfo.getLockedMonitors()) {
+                if (mi.getLockedStackDepth() == i) {
+                    sb.append("\t-  locked ");
+                    formatLock(sb, mi);
+                    sb.append('\n');
+                }
+            }
+            ++i;
+        }
+
+        final LockInfo[] locks = threadInfo.getLockedSynchronizers();
+        if (locks.length > 0) {
+            sb.append("\n\tNumber of locked synchronizers = ").append(locks.length).append('\n');
+            for (final LockInfo li : locks) {
+                sb.append("\t- ");
+                formatLock(sb, li);
+                sb.append('\n');
+            }
+        }
+    }
+
+    private void formatLock(final StringBuilder sb, final LockInfo lock) {
+        sb.append('<').append(lock.getIdentityHashCode()).append("> (a ");
+        sb.append(lock.getClassName()).append(')');
+    }
+
+    private void formatState(final StringBuilder sb, final ThreadInfo info) {
+        final Thread.State state = info.getThreadState();
+        sb.append(state);
+        switch (state) {
+            case BLOCKED: {
+                sb.append(" (on object monitor owned by \"");
+                sb.append(info.getLockOwnerName()).append("\" Id=").append(info.getLockOwnerId()).append(')');
+                break;
+            }
+            case WAITING: {
+                final StackTraceElement element = info.getStackTrace()[0];
+                final String className = element.getClassName();
+                final String method = element.getMethodName();
+                if (className.equals("java.lang.Object") && method.equals("wait")) {
+                    sb.append(" (on object monitor");
+                    if (info.getLockOwnerName() != null) {
+                        sb.append(" owned by \"");
+                        sb.append(info.getLockOwnerName()).append("\" Id=").append(info.getLockOwnerId());
+                    }
+                    sb.append(')');
+                } else if (className.equals("java.lang.Thread") && method.equals("join")) {
+                    sb.append(" (on completion of thread ").append(info.getLockOwnerId()).append(')');
+                } else {
+                    sb.append(" (parking for lock");
+                    if (info.getLockOwnerName() != null) {
+                        sb.append(" owned by \"");
+                        sb.append(info.getLockOwnerName()).append("\" Id=").append(info.getLockOwnerId());
+                    }
+                    sb.append(')');
+                }
+                break;
+            }
+            case TIMED_WAITING: {
+                final StackTraceElement element = info.getStackTrace()[0];
+                final String className = element.getClassName();
+                final String method = element.getMethodName();
+                if (className.equals("java.lang.Object") && method.equals("wait")) {
+                    sb.append(" (on object monitor");
+                    if (info.getLockOwnerName() != null) {
+                        sb.append(" owned by \"");
+                        sb.append(info.getLockOwnerName()).append("\" Id=").append(info.getLockOwnerId());
+                    }
+                    sb.append(')');
+                } else if (className.equals("java.lang.Thread") && method.equals("sleep")) {
+                    sb.append(" (sleeping)");
+                } else if (className.equals("java.lang.Thread") && method.equals("join")) {
+                    sb.append(" (on completion of thread ").append(info.getLockOwnerId()).append(')');
+                } else {
+                    sb.append(" (parking for lock");
+                    if (info.getLockOwnerName() != null) {
+                        sb.append(" owned by \"");
+                        sb.append(info.getLockOwnerName()).append("\" Id=").append(info.getLockOwnerId());
+                    }
+                    sb.append(')');
+                }
+                break;
+            }
+            default:
+                break;
+        }
+    }
+}