<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<TITLE>Message</TITLE>

<META content="MSHTML 6.00.2900.2963" name=GENERATOR></HEAD>
<BODY>
<DIV><SPAN class=040021119-08112006><FONT face=Arial color=#0000ff size=2>It 
seems that the current implementation of findById disregards object status, 
which may be checked with <FONT face="Times New Roman" 
color=#000000>ObjectImpl::getStatus() implemented as 
follows:<BR></FONT></FONT></SPAN><SPAN class=040021119-08112006><FONT 
size=2></FONT></SPAN></DIV>
<DIV><SPAN class=040021119-08112006><FONT size=2>ObjectStatus 
ObjectImpl::getStatus() </FONT><FONT color=#0000ff size=2>const<BR></FONT><FONT 
size=2>{<BR></FONT><FONT color=#0000ff size=2>long</FONT><FONT size=2> 
lStatus;<BR></FONT><FONT size=2>COMTHROW( m_spObject-&gt;get_Status( 
&amp;lStatus ) );<BR></FONT><FONT color=#0000ff size=2>switch</FONT><FONT 
size=2> ( lStatus ) {<BR></FONT><FONT color=#0000ff size=2>case</FONT><FONT 
size=2> OBJECT_EXISTS :</FONT><FONT color=#0000ff size=2>return</FONT><FONT 
size=2> OST_Exists;<BR></FONT><FONT color=#0000ff size=2>case</FONT><FONT 
size=2> OBJECT_ZOMBIE :</FONT><FONT color=#0000ff size=2>return</FONT><FONT 
size=2> OST_Zombie;<BR></FONT><FONT color=#0000ff size=2>case</FONT><FONT 
size=2> OBJECT_DELETED :</FONT><FONT color=#0000ff size=2>return</FONT><FONT 
size=2> OST_Deleted;<BR></FONT><FONT color=#0000ff size=2>default</FONT><FONT 
size=2> :ASSERTTHROW( Util::Exception( "Unprocessed Object Status!" ) 
);<BR>}<BR></FONT></SPAN><SPAN class=040021119-08112006><FONT 
size=2>}</FONT></SPAN></DIV>
<DIV><SPAN class=040021119-08112006><FONT size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=040021119-08112006><FONT size=2>So until i implement a fix, 
please check the status of objects returned by findById, like 
this:</FONT></SPAN></DIV>
<DIV><SPAN class=040021119-08112006>
<P><FONT size=2>Object obj = project-&gt;findByID("id-0065-00000008", <FONT 
color=#0000ff>false</FONT>);<BR><FONT color=#0000ff>if</FONT>(obj)<BR>{<BR><SPAN 
class=040021119-08112006>&nbsp;&nbsp;&nbsp; </SPAN>project-&gt;consoleMsg( 
"Found", MSG_NORMAL);<BR><FONT color=#0000ff><SPAN 
class=040021119-08112006>&nbsp;&nbsp;&nbsp; </SPAN>if</FONT>( 
obj-&gt;getStatus() != OST_Exists)<BR><SPAN 
class=040021119-08112006>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
</SPAN>project-&gt;consoleMsg( "but it's a zombie", MSG_ERROR);<BR></FONT><SPAN 
class=040021119-08112006><FONT size=2>}</FONT></SPAN></P>
<P><FONT face=Arial color=#0000ff size=2></FONT>&nbsp;</P>
<P><SPAN class=040021119-08112006><FONT face=Arial color=#0000ff size=2>br, 
Zoli</FONT></SPAN></P>
<P><FONT face=Arial color=#0000ff size=2></FONT>&nbsp;</P></SPAN><SPAN 
class=040021119-08112006><FONT size=2></FONT></SPAN><SPAN 
class=040021119-08112006><FONT size=2></DIV></FONT></SPAN>
<BLOCKQUOTE dir=ltr 
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid; MARGIN-RIGHT: 0px">
  <DIV></DIV>
  <DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left><FONT 
  face=Tahoma size=2>-----Original Message-----<BR><B>From:</B> 
  gme-users-bounces@list.isis.vanderbilt.edu 
  [mailto:gme-users-bounces@list.isis.vanderbilt.edu] <B>On Behalf Of 
  </B>Berthing Jesper<BR><B>Sent:</B> Saturday, October 28, 2006 8:25 
  AM<BR><B>To:</B> gme-users<BR><B>Subject:</B> RE: [gme-users] probklems with 
  findByID (BON2)<BR><BR></FONT></DIV>
  <DIV dir=ltr align=left><SPAN class=852321513-28102006><FONT face=Arial 
  color=#0000ff size=2>Hi All,</FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=852321513-28102006><FONT face=Arial 
  color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
  <DIV dir=ltr align=left><SPAN class=852321513-28102006><FONT face=Arial 
  color=#0000ff size=2>I have some extra information to the problem I posted 
  some days ago.</FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=852321513-28102006><FONT face=Arial 
  color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
  <DIV dir=ltr align=left><SPAN class=852321513-28102006><FONT face=Arial 
  color=#0000ff size=2>1) When I delete some objects (Atoms) from my model and 
  then execute the interpreter, the function findByID returns that the delete 
  object still exists? (How can that be true if I deleted the objects before 
  executing the interpreter)</FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=852321513-28102006><FONT face=Arial 
  color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
  <DIV dir=ltr align=left><SPAN class=852321513-28102006><FONT face=Arial 
  color=#0000ff size=2>2) If I delete some objects from the model, save and 
  close the project and reopens it again, executes the interpreter. What tries 
  to execute the function findByID with the ID on the delete objects, an 
  exception is thown each time. Whereas the documentation says that a NULL 
  object should be&nbsp;returned.</FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=852321513-28102006><FONT face=Arial 
  color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
  <DIV dir=ltr align=left><SPAN class=852321513-28102006><FONT face=Arial 
  color=#0000ff size=2>I have tried to call the function with either true or 
  false as the secons parameter with no difference.</FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=852321513-28102006><FONT face=Arial 
  color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
  <DIV dir=ltr align=left><SPAN class=852321513-28102006><FONT face=Arial 
  color=#0000ff size=2>Has anybody any experience with this function? and its 
  behaviour or any clue what I could be doing wrong, please help me? 
  ;-)</FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=852321513-28102006><FONT face=Arial 
  color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
  <DIV dir=ltr align=left><SPAN class=852321513-28102006><FONT face=Arial 
  color=#0000ff size=2>I am using GME version 6.5.8</FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=852321513-28102006><FONT face=Arial 
  color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
  <DIV dir=ltr align=left><SPAN class=852321513-28102006><FONT face=Arial 
  color=#0000ff size=2>Thanks.</FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=852321513-28102006><FONT face=Arial 
  color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
  <DIV dir=ltr align=left><SPAN class=852321513-28102006><FONT face=Arial 
  color=#0000ff size=2>Best regards,</FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=852321513-28102006><FONT face=Arial 
  color=#0000ff size=2>Jesper</FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=852321513-28102006></SPAN>&nbsp;</DIV>
  <DIV dir=ltr align=left>
  <HR tabIndex=-1>
  </DIV>
  <DIV dir=ltr align=left><FONT face=Tahoma size=2><B>From:</B> 
  gme-users-bounces@list.isis.vanderbilt.edu 
  [mailto:gme-users-bounces@list.isis.vanderbilt.edu] <B>On Behalf Of 
  </B>Berthing Jesper<BR><B>Sent:</B> 23. oktober 2006 20:08<BR><B>To:</B> 
  gme-users@list.isis.vanderbilt.edu<BR><B>Subject:</B> [gme-users] probklems 
  with findByID (BON2)<BR></FONT><BR></DIV>
  <DIV></DIV><!-- Converted from text/plain format --><FONT face=Arial 
  color=#0000ff size=2></FONT><BR>
  <P><FONT size=2>Hi,<BR><BR>I have a problem with the function findByID that 
  throws an exception on line 50 in bonimpl.cpp.<BR><BR>Currently I am using the 
  function in order to check the current model against a backup model (XML) 
  where I have the ID&#8217;s stored of each object. If the object is present in the 
  current model it functions correctly, but if it is not present the exception 
  is thrown.<BR><BR>Therefore, how should I use the 
  function?<BR><BR>Example:<BR>try<BR>{<BR>&nbsp; if(0 == 
  project-&gt;findByID(&#8220;Id not present in the model&#8221;, true))<BR>&nbsp; 
  {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Object with id not 
  present<BR>&nbsp; }<BR>&nbsp; else<BR>&nbsp; 
  {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Object with id 
  present.<BR>&nbsp; }<BR>}<BR>catch(BON::Exception&amp; 
  e)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //print 
  error<BR>}<BR><BR>Best 
regards,<BR>Jesper<BR></FONT></P></BLOCKQUOTE></BODY></HTML>