[nobug] JUnit fixes
diff --git a/tests/org.eclipse.wst.common.tests/commontests/org/eclipse/wst/common/tests/OperationTestCase.java b/tests/org.eclipse.wst.common.tests/commontests/org/eclipse/wst/common/tests/OperationTestCase.java
index d9654c4..e211b2c 100644
--- a/tests/org.eclipse.wst.common.tests/commontests/org/eclipse/wst/common/tests/OperationTestCase.java
+++ b/tests/org.eclipse.wst.common.tests/commontests/org/eclipse/wst/common/tests/OperationTestCase.java
@@ -134,7 +134,16 @@
 			
 			// bug 173933 - runAndVerify() fails to check return IStatushe 
 			if (operationStatus.getSeverity() == IStatus.ERROR) {
-				Assert.fail(operationStatus.getMessage());
+				Throwable throwable = operationStatus.getException();
+				String throwableStr = null;
+				if(throwable != null){
+					throwable.printStackTrace();
+					throwableStr = getStackTrace(throwable);
+				}
+				if(throwableStr == null){
+					throwableStr = "no message";
+				}
+				Assert.fail(operationStatus.getMessage()+"\n    caused by: "+throwableStr);
 			}
 			
 			//run data model verifications
@@ -156,6 +165,25 @@
 			dataModel.dispose();
 		}
 	}
+	
+	public static String getStackTrace(Throwable throwable){
+		StringBuffer buffer = new StringBuffer(throwable.toString()+"\n");
+		StackTraceElement[] stack = throwable.getStackTrace();
+		for (int i=0; i<stack.length; i++)
+			buffer.append("\tat " + stack[i]+"\n");
+
+		StackTraceElement[] parentStack = stack;
+		throwable = throwable.getCause();
+		while (throwable != null) {
+			buffer.append("Caused by: ");
+			buffer.append(throwable);
+			buffer.append("\n");
+			StackTraceElement[] currentStack = throwable.getStackTrace();
+			parentStack = currentStack;
+			throwable = throwable.getCause();
+		}
+		return buffer.toString();
+	}
 	/**
 	 * Guaranteed to close the dataModel
 	 *