String... descriptionAndAnnotation) {
if (context == null)
throw new RuntimeException("Context passed was NULL.");
final InvokingServiceFailedDocument activity = InvokingServiceFailedDocument.Factory.newInstance();
final AcknowledgeFailureType activityType = activity.addNewInvokingServiceFailed();
// set the remote entity as receiver
if (context.getRemoteEntity() != null) {
activityType.addNewReceiver().set(context.getRemoteEntity().toBaseIDType());
} else {
logger.warn("Error in context that was passed. "
+ "there was no remote entity defined (requestReceiver=NULL)");
}
// set stack trace if present
if (trace != null) {
final StringWriter sw = new StringWriter();
trace.printStackTrace(new PrintWriter(sw));
XmlString traceXmlStr = XmlString.Factory.newInstance();
traceXmlStr.setStringValue(sw.toString());
activityType.addNewFailure().addNewTrace().set(traceXmlStr);
}
sendNotification(wtcontext, activity, descriptionAndAnnotation, "[Service failed]");
}