static Log log = LogFactory.getLog(GIOPHelper.class);
static SystemException unmarshalSystemException(
InternalServiceContextList scl, InputStream in) {
InternalExceptionDetailMessage msg = InternalExceptionDetailMessage
.get(scl);
String id = in.read_string();
int minor = in.read_ulong();
org.omg.CORBA.CompletionStatus status = org.omg.CORBA.CompletionStatusHelper
.read(in);
String className = idToClass(id);
try {
Class c = classForName(className);
Constructor cons = null;
try {
cons = c.getConstructor(new Class[] { String.class, int.class,
CompletionStatus.class });
} catch (NoSuchMethodException e) {
}
SystemException ex = null;
if (cons == null) {
ex = (SystemException) c.newInstance();
} else {
ex = (SystemException) cons.newInstance(new Object[] {
msg == null ? "" : msg.getMessage(),
new Integer(minor), status });
}
ex.minor = minor;
ex.completed = status;