All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.phloc.commons.deadlock.ThreadDeadlockInfo Maven / Gradle / Ivy

There is a newer version: 5.0.0
Show newest version
/**
 * Copyright (C) 2006-2015 phloc systems
 * http://www.phloc.com
 * office[at]phloc[dot]com
 *
 * Licensed 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 com.phloc.commons.deadlock;

import java.lang.management.ThreadInfo;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.annotation.concurrent.Immutable;

import com.phloc.commons.ValueEnforcer;
import com.phloc.commons.annotations.ReturnsMutableCopy;
import com.phloc.commons.collections.ArrayHelper;
import com.phloc.commons.string.ToStringGenerator;

/**
 * Represents information about a single deadlocked thread.
 * 
 * @author Boris Gregorcic
 * @deprecated No replacement
 *             
    *
  • reason: refactored
  • *
  • criticality: 3
  • *
  • note:
  • *
  • deprecated since: 4.4.12
  • *
  • unavailable from: 4.5.0
  • *
*/ @Deprecated @Immutable public final class ThreadDeadlockInfo { private final ThreadInfo m_aThreadInfo; private final Thread m_aThread; private final StackTraceElement [] m_aStackTrace; public ThreadDeadlockInfo (@Nonnull final ThreadInfo aThreadInfo, @Nonnull final Thread aThread, @Nullable final StackTraceElement [] aStackTrace) { this.m_aThreadInfo = ValueEnforcer.notNull (aThreadInfo, "ThreadInfo"); this.m_aThread = ValueEnforcer.notNull (aThread, "Thread"); this.m_aStackTrace = ArrayHelper.getCopy (aStackTrace); } /** * @return The {@link ThreadInfo} as returned from JMX bean */ @Nonnull public ThreadInfo getThreadInfo () { return this.m_aThreadInfo; } /** * @return The underlying thread. Never null. */ @Nonnull public Thread getThread () { return this.m_aThread; } /** * @return true if a stacktrace is present, false * otherwise */ public boolean hasStackTrace () { return this.m_aStackTrace != null; } /** * @return The stack trace at the time the dead lock was found. May be * null for certain system threads. Use * getThread ().getStackTrace () to retrieve the current * stack trace. */ @Nullable @ReturnsMutableCopy public StackTraceElement [] getStackTrace () { return ArrayHelper.getCopy (this.m_aStackTrace); } @Override public String toString () { return new ToStringGenerator (this).append ("threadInfo", this.m_aThreadInfo) .append ("thread", this.m_aThread) .appendIfNotNull ("stackTrace", this.m_aStackTrace) .toString (); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy