## CPD Results The following document contains the results of PMD's CPD 5.2.3. ## Duplications
File | Line
--- | ---
org/apache/logging/log4j/message/ExtendedThreadInformation.java | 115
org/apache/logging/log4j/message/ExtendedThreadInformation.java | 138
                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")) {
File | Line
--- | ---
org/apache/logging/log4j/MarkerManager.java | 241
org/apache/logging/log4j/MarkerManager.java | 275
                }
                final Marker[] localParents = parents;
                if (localParents != null) {
                    // With only one or two parents the for loop is slower.
                    final int localParentsLength = localParents.length;
                    if (localParentsLength == 1) {
                        return checkParent(localParents[0], marker);
                    }
                    if (localParentsLength == 2) {
                        return checkParent(localParents[0], marker) || checkParent(localParents[1], marker);
                    }
                    //noinspection ForLoopReplaceableByForEach
                    for (int i = 0; i < localParentsLength; i++) {
                        final Marker localParent = localParents[i];
                        if (checkParent(localParent, marker)) {
                            return true;
                        }
                    }
                }
                return false;
            }
File | Line
--- | ---
org/apache/logging/log4j/MarkerManager.java | 277
org/apache/logging/log4j/MarkerManager.java | 302
                if (localParents != null) {
                    final int localParentsLength = localParents.length;
                    if (localParentsLength == 1) {
                        return checkParent(localParents[0], marker);
                    }
                    if (localParentsLength == 2) {
                        return checkParent(localParents[0], marker) || checkParent(localParents[1], marker);
                    }
                    //noinspection ForLoopReplaceableByForEach
                    for (int i = 0; i < localParentsLength; i++) {
                        final Marker localParent = localParents[i];
                        if (checkParent(localParent, marker)) {
                            return true;
                        }
                    }
                }

                return false;
            }

            private static boolean checkParent(final Marker parent, final Marker marker) {
File | Line
--- | ---
org/apache/logging/log4j/message/ExtendedThreadInformation.java | 125
org/apache/logging/log4j/message/ExtendedThreadInformation.java | 150
                        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;
                }