Looking at the Throwable source code :
187 /** 188 * The throwable that caused this throwable to get thrown, or null if this 189 * throwable was not caused by another throwable, or if the causative 190 * throwable is unknown. If this field is equal to this throwable itself, 191 * it indicates that the cause of this throwable has not yet been 192 * initialized. 193 * 194 * @serial 195 * @since 1.4 196 */ 197 private Throwable cause = this;
So, I assume that you are seeing this Exception that was thrown without using one of the constructors that accepts the reason.
You will see this in the debugger, but getCause takes care not to return a recursive link:
414 public synchronized Throwable getCause() { 415 return (cause==this ? null : cause); 416 }
source share