[omniORB] Throw UNKNOWN from GIOP_C.cc:268 (MAYBE,
UNKNOWN_UserException)
radamkie at kdm.pl
radamkie at kdm.pl
Wed Apr 12 19:20:52 BST 2006
Hi,
In one omniORB application, it's raised such exception (like in the titel).
The omniORB trace show:
4749 4f50 0102 0101 3800 0000 0005 0000 GIOP....8.......
0200 0000 0000 0000 1e00 0000 4944 4c3a ............IDL:
6f6d 672e 6f72 672f 434f 5242 412f 554e omg.org/CORBA/UN
4b4e 4f57 4e3a 312e 3000 3030 0100 4d4f KNOWN:1.0.00..MO
0200 0000 ....
omniORB: throw UNKNOWN from GIOP_C.cc:268 (MAYBE,UNKNOWN_UserException)
omniORB: SocketCollection idle. Sleeping.
omniORB: inputMessage: from giop:tcp:10.12.10.168:47027 312 byte
It's raised in GIOP_C.cc:268 in function:
void
GIOP_C::UnMarshallSystemException()
{
#define CHECK_AND_IF_MATCH_THROW_SYSTEM_EXCEPTION(_ex) \
if (strcmp("IDL:omg.org/CORBA/" #_ex ":1.0",(const char*)repoid) == 0) \
OMNIORB_THROW(_ex, minorcode, (CORBA::CompletionStatus) status);
// Real code begins here
cdrStream& s = *this;
CORBA::String_var repoid;
repoid = s.unmarshalRawString();
CORBA::ULong minorcode;
CORBA::ULong status;
minorcode <<= s;
status <<= s;
clearValueTracker();
impl()->inputMessageEnd(this,0);
pd_strand->first_use = 0;
pd_state = IOP_C::Idle;
switch (status) {
case CORBA::COMPLETED_YES:
case CORBA::COMPLETED_NO:
case CORBA::COMPLETED_MAYBE:
break;
default:
OMNIORB_THROW(UNKNOWN,UNKNOWN_SystemException,CORBA::COMPLETED_YES);
};
OMNIORB_FOR_EACH_SYS_EXCEPTION(CHECK_AND_IF_MATCH_THROW_SYSTEM_EXCEPTION)
// If none of the above matched
OMNIORB_THROW(UNKNOWN,UNKNOWN_SystemException,CORBA::COMPLETED_YES);
#undef CHECK_AND_IF_MATCH_THROW_SYSTEM_EXCEPTION
}
In aplication, the exception is caughted as a CORBA::SystemException
and an entry to appplication logs is genereted in this way:
catch (CORBA::SystemException& e)
{
_log.err(xprintf("CORBA system exception [%d-%s]",
e.minor(),e.NP_minorString()));
}
.. it produce many logs entries like this:
CORBA system exception [1330446337-UNKNOWN_UserException]
I can not find solution to avoid this exception - has someone met this
problem ?
Regards
Radek
More information about the omniORB-list
mailing list