ServiceContexts scs = new ServiceContexts(orb);
// Check if the servant set a SystemException or
// UserException
CorbaMessageMediator resp;
String repId=null;
try {
repId = excany.type().id();
} catch (org.omg.CORBA.TypeCodePackage.BadKind e) {
throw wrapper.problemWithExceptionTypecode( e ) ;
}
if (ORBUtility.isSystemException(repId)) {
if (orb.subcontractDebugFlag) {
dprint(".sendingReply/Any: " + opAndId(req)
+ ": handling system exception");
}
// Get the exception object from the Any
InputStream in = excany.create_input_stream();
SystemException ex = ORBUtility.readSystemException(in);
// Marshal the exception back
resp = req.getProtocolHandler()
.createSystemExceptionResponse(req, ex, scs);
} else {
if (orb.subcontractDebugFlag) {
dprint(".sendingReply/Any: " + opAndId(req)
+ ": handling user exception");
}
resp = req.getProtocolHandler()
.createUserExceptionResponse(req, scs);
OutputStream os = (OutputStream)resp.getOutputObject();
excany.write_value(os);
}
return resp;
} finally {