Yes, I think I just took the easy way out :-)  I did recognize the fact 
that we should have the variable around as a state variable. Let me look 
into this a little more. 

Nadir K. Amra


Kamlesh kumar <[EMAIL PROTECTED]> wrote on 08/12/2006 01:38:42 PM:

> Hey,
>   Thanks for providing the fix. Its better than before
> but I see that there might still be some issues with
> the new code. The problem is that the previous value
> of bCanParseMore is lost when the next time someone
> invokes next() function on XMLParserXerces and so it
> can cause the program to crash. (Currently, we assume
> that  its always ok to call the m_pParser->next the
> first time, however its not a safe assumption. There
> are places in SoapDeSerializer where in we ignore the
> return value of next and so no way of knowing that we
> have reached the end of stream)
> 
> If we have bCanParseMore as a class member variable
> then we can avoid this issue. This value can be
> initialized with the return value of
> m_parser->parseFirst.
> 
> Let me know if I am not clear and I can try to provide
> more details.
> 
> Thanks
> -Kamlesh
> 
> 
> 
> 
> 
> 
> 
> --- Nadir Amra <[EMAIL PROTECTED]> wrote:
> 
> > I have fixed this problem.  See  AXISCPP-770  for
> > details.  Please try and 
> > see if your problem persists by downloading code and
> > testing.
> > 
> > Nadir K. Amra
> > 
> > 
> > Kamlesh kumar <[EMAIL PROTECTED]> wrote on
> > 08/11/2006 09:41:21 PM:
> > 
> > > The current implementation of XMLParserXerces
> > ignores
> > > the  value returned by the parseNext() call, this
> > > causes the program to crash the next time
> > parseNext()
> > > is called. 
> > > 
> > > Here is a sample code inside the peek function
> > > illustrating the problem. 
> > > 
> > > AnyElement* elem = m_Xhandler.getAnyElement();
> > >         while (CHARACTER_ELEMENT == elem->m_type)
> > /
> > >         { /* ignorable white space */
> > >             m_Xhandler.freeElement();
> > >             bCanParseMore =
> > > m_pParser->parseNext(m_ScanToken);
> > >             elem = m_Xhandler.getAnyElement();
> > >          }
> > > 
> > > It has two problems one it ignores the value of
> > > bCanParseMore and secondly it doesn't check if
> > elem is
> > > null or not before entering the while loop again. 
> > > 
> > > Ideally, once the parser returns a value of
> > > false(indicating the end of stream) we shouldn't
> > be
> > > calling parseNext() function. I think it would be
> > > better to have a class member variable called
> > > m_bCanParseMore which we check before making any
> > call
> > > to parseNext function. This would avoid the
> > problem.
> > > 
> > > I run into this situation more often as I am using
> > the
> > > SoapDeSerializer API directly. I see someone else
> > have
> > > also faced this problem 
> > >
> >
> http://mail-archives.apache.org/mod_mbox/ws-axis-c-dev/200507.mbox/%
> > >
> >
> [EMAIL PROTECTED]
> > > 
> > > Can someone take a look into XMLParserXerces.cpp
> > and
> > > fix this problem ?
> > > 
> > 
> > 
> >
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail:
> > [EMAIL PROTECTED]
> > For additional commands, e-mail:
> > [EMAIL PROTECTED]
> > 
> > 
> 
> 
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around 
> http://mail.yahoo.com 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to