if (rootCauseMessage != null && rootCauseMessage.length() > 0) {
quercusExMessage.append(" ");
quercusExMessage.append(rootCauseMessage);
}
QuercusExecutionException quercusEx
= new QuercusExecutionException(quercusExMessage.toString());
StackTraceElement[] quercusExStackTrace = quercusEx.getStackTrace();
StackTraceElement[] rootCauseStackTrace = rootCause.getStackTrace();
int quercusExIndex = quercusExStackTrace.length - 1;
int rootCauseIndex = rootCauseStackTrace.length - 1;
while (rootCauseIndex >= 0 && quercusExIndex >= 0) {
StackTraceElement rootCauseElement = rootCauseStackTrace[rootCauseIndex];
StackTraceElement quercusExElement = quercusExStackTrace[quercusExIndex];
if (! quercusExElement.equals(rootCauseElement))
break;
rootCauseIndex--;
quercusExIndex--;
}
int len = rootCauseIndex + 1;
StackTraceElement[] trimmedElements = new StackTraceElement[len];
System.arraycopy(rootCauseStackTrace, 0, trimmedElements, 0, len);
quercusEx.setStackTrace(trimmedElements);
try {
rootCause.initCause(quercusEx);
rootCause = quercusEx;
}
catch (IllegalStateException ex) {