Re: Potential Software Failure

David Dixon-Peugh <[email protected]>
Newsgroups gmane.comp.jakarta.bcel.devel
Message-ID <[email protected]>
Hmmm.  I've attached a Unit test which does what
I was doing before, and the test seems to work.

I'll have to take a closer look at what I have and
see how it is different.

As for the tests, I would like to check them into
BCEL, but since we don't have any standards yet, I
would recommend we come up with some.

Any suggestions?  (Or we can just go with Maven's
suggestions.)

DDP

--- Markus Dahm <[email protected]> wrote:
> The code looks ok, it should work this way, yet
> without an
> example I can't verify. Check your back up drives
> ... ;-)
> 
> Cheers
> 	Markus
> 
> David Dixon-Peugh wrote:
> 
> > I don't have the file which has the problem here
> > (forgot to check it into CVS yesterday.)
> > 
> > The code that it generates is exactly like I said
> > before.  (Written so as not to be confusing about
> > the catch block.  Positions made up.)
> > 
> > 
> > 0   ACONST_NULL
> > 1   ICONST( 0 )
> > 2   INVOKEVIRTUAL ( runTest(I)I )
> > 3   ICONST( 0 )
> > 4   IRETURN
> > 5   ICONST( 0 )
> > 6   IRETURN
> > 
> > CATCH: From 0
> >          To 4
> >     Handler 5
> >         Exc java.lang.NullPointerException
> > 
> > The catch block is on the InstructionList, so
> > that isn't the problem.
> > 
> > The code is supposed to do the following:
> >   Call "runTest(I)I" on NULL.
> >   Catch the NullPointerException.
> >   Return 0 from the handler.
> > 
> > It definitely throws the NPE, and it never
> > gets caught.  (Once again, looking at the Method
> > that was generated, it didn't have any catch
> tables.)
> > 
> > DDP
> > 
> > 
> > --- Markus Dahm <[email protected]> wrote:
> > 
> >>David Dixon-Peugh wrote:
> >>
> >>
> >>>I have found what I believe to be a bug in BCEL,
> >>>and would like to see if anyone else has seen
> >>>this in the wild.
> >>>
> >>>Basically, I'm generating code that looks like
> >>>
> >>this:
> >>
> >>>  ACONST_NULL
> >>>  ICONST( 0 )
> >>>  INVOKEVIRTUAL ( runTest(I)I )
> >>>  ICONST( 0 )
> >>>  IRETURN
> >>>[catch NullPointerException]
> >>>  ICONST( 0 )
> >>>  IRETURN
> >>>
> >>>The idea is to force a NullPointerException to be
> >>>raised, and then catch it with a Catch clause.
> >>>
> >>>This is being done in a MethodGen object, using
> >>>"addExceptionHandler(...)" to create the 
> >>>CodeExceptionGen inside the MethodGen.  (Adding a
> >>>CodeExceptionGen is a good idea.  We should be
> 
> 
> 
> 
> --
> To unsubscribe, e-mail:  
> <mailto:[email protected]>
> For additional commands, e-mail:
> <mailto:[email protected]>
> 



__________________________________________________
Do You Yahoo!?
Yahoo! Health - Feel better, live better
http://health.yahoo.com

--
To unsubscribe, e-mail:   <mailto:[email protected]>
For additional commands, e-mail: <mailto:[email protected]>
CodeExceptionGenTest.java (application/octet-stream, 5.3 KB) - not displayed
TInterface.java (application/octet-stream, 106 B) - not displayed
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.