<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.0.4630.0">
<TITLE>setClientCallTimeout(obj, ) crash</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P><FONT SIZE=2 FACE="Arial">Hi,</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">I use omniORB4.0.3 and I sometimes experience crash when a client calls setClientCallTimeout(obj, ).</FONT>

<BR><FONT SIZE=2 FACE="Arial">The internal call oo = obj-&gt;_PR_getobj(); returns NULL and oo-&gt; crash.</FONT>
</P>
<UL>
<P><FONT SIZE=2 FACE="Courier New">void</FONT>

<BR><FONT SIZE=2 FACE="Courier New">omniORB::setClientCallTimeout(CORBA::Object_ptr obj, CORBA::ULong v)</FONT>

<BR><FONT SIZE=2 FACE="Courier New">{</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp; omniObjRef* oo =<B> obj-&gt;_PR_getobj();</B></FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp; oo-&gt;_setTimeout(v / 1000, (v % 1000) * 1000000);</FONT>

<BR><FONT SIZE=2 FACE="Courier New">}</FONT>
</P>
</UL>
<P><FONT SIZE=2 FACE="Arial">What is the&nbsp;</FONT><B></B><B> <FONT SIZE=2 FACE="Courier New">_PR_getobj();</FONT></B> <FONT SIZE=2 FACE="Courier New">job ?</FONT>

<BR><FONT SIZE=2 FACE="Arial">Why it can returned NULL ?</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">This seems to appears when the client narrow an obj from a valid IOR (using the name service) but the servant part is stopped at a breakpoint location. (I believe it could also happen when the server machine is dramatically overloaded). This is my code:</FONT></P>

<P><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CORBA::Object_var interface_obj = </FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; init_naming_context-&gt;resolve( string_to_name( object_list[i] ) ) ;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&#8230;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PrincipalInterface_var principal_interface ;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try </FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; principal_interface = PrincipalInterface::_narrow( interface_obj ) ;</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT><B> <FONT COLOR="#FF0000" SIZE=2 FACE="Courier New">omniORB::setClientCallTimeout( interface_obj, PrincipalInterfaceImpl::PING_TIMEOUT ); // CRASH!</FONT></B>
</P>

<P><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ( ! CORBA::is_nil( principal_interface ) ) </FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; principal_interface-&gt;GetStatus() ;</FONT>
</P>
<BR>

<P><FONT SIZE=2 FACE="Arial">Thanks for any idea </FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">Fred</FONT>
</P>
<BR>

<P><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;</FONT><B></B><B> <FONT FACE="Courier New">Frédéric Prin</FONT></B><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp; Senior Software Engineer /</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; S I L V A C O&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp; Grenoble REsearch CEnter \</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp; Tel 04 56 38 10 33&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp; __________________________/___</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;&nbsp; /__/__/__/__/__/__/__/__/__/__/</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp; /__/__/__/__/__/__/__/__/_____/</FONT>

<BR><FONT SIZE=2 FACE="Courier New">&nbsp;/__/__/__/__/__/__/__/__/__/__/</FONT>
</P>

</BODY>
</HTML>