001 package edu.rice.cs.cunit.threadCheck; 002 003 /** 004 * Exception in the thread checker or its instrumentor. 005 * 006 * @author Mathias Ricken 007 */ 008 public class ThreadCheckException extends RuntimeException { 009 /** 010 * Constructs a new runtime exception with <code>null</code> as its detail message. The cause is not initialized, 011 * and may subsequently be initialized by a call to {@link #initCause}. 012 */ 013 public ThreadCheckException() { 014 super(); 015 } 016 017 /** 018 * Constructs a new runtime exception with the specified detail message. The cause is not initialized, and may 019 * subsequently be initialized by a call to {@link #initCause}. 020 * 021 * @param message the detail message. The detail message is saved for later retrieval by the {@link #getMessage()} 022 * method. 023 */ 024 public ThreadCheckException(String message) { 025 super(message); 026 } 027 028 /** 029 * Constructs a new runtime exception with the specified detail message and cause. <p>Note that the detail message 030 * associated with <code>cause</code> is <i>not</i> automatically incorporated in this runtime exception's detail 031 * message. 032 * 033 * @param message the detail message (which is saved for later retrieval by the {@link #getMessage()} method). 034 * @param cause the cause (which is saved for later retrieval by the {@link #getCause()} method). (A 035 * <tt>null</tt> value is permitted, and indicates that the cause is nonexistent or unknown.) 036 * 037 * @since 1.4 038 */ 039 public ThreadCheckException(String message, Throwable cause) { 040 super(message, cause); 041 } 042 043 /** 044 * Constructs a new runtime exception with the specified cause and a detail message of <tt>(cause==null ? null : 045 * cause.toString())</tt> (which typically contains the class and detail message of <tt>cause</tt>). This 046 * constructor is useful for runtime exceptions that are little more than wrappers for other throwables. 047 * 048 * @param cause the cause (which is saved for later retrieval by the {@link #getCause()} method). (A <tt>null</tt> 049 * value is permitted, and indicates that the cause is nonexistent or unknown.) 050 * 051 * @since 1.4 052 */ 053 public ThreadCheckException(Throwable cause) { 054 super(cause); 055 } 056 057 058 /** 059 * Returns a hash code value for the object.. 060 * @see Object#equals(Object) 061 * @see java.util.Hashtable 062 */ 063 public int hashCode() { 064 return (getMessage() != null ? getMessage().hashCode() : 0); 065 } 066 067 /** 068 * Indicates whether some other object is "equal to" this one. 069 * @param obj the reference object with which to compare. 070 * @return <code>true</code> if this object is the same as the obj argument; <code>false</code> otherwise. 071 * @see #hashCode() 072 * @see java.util.Hashtable 073 */ 074 public boolean equals(Object obj) { 075 if (!(obj instanceof ThreadCheckException)) { return false; } 076 ThreadCheckException o = (ThreadCheckException)obj; 077 if (getMessage()!=null) { return getMessage().equals(o.getMessage()); } 078 return false; 079 } 080 }