Why is exception.getCause() == exception?
<p>I made a mistake when asking this question by thinking that the value of the member variable <code>cause</code> would be returned as the result of a call to <code>getCause()</code> in <code>org.apache.catalina.connector.ClientAbortException</code>. That obviously isn't the case. The real cause is returned.</p>

<p>Looking at the source of Throwable I can see that it sets <code>cause = this</code> to indicate that the cause has yet to be set. This was a bad question but I did learn something from asking it.</p>

<p>Original question below:</p>

<p>Sometimes when you catch exceptions, the getCause() will return the exception object itself, making it recursive. Why doesn't getCause() return null?</p>
