jakarta-bcel-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Juozas Baliuka" <bali...@centras.lt>
Subject Re: wrapping native methods
Date Mon, 07 Oct 2002 17:34:50 GMT
Hi,
I think it is impossible to implement something like this in "transparent"
way.
You can disable verifier, but I do not think it is good solution.
 Class scaning will not solve this problem :


 Date now = new java.util.Date() ; // calls System.currentTimeMillis();

I use  Date now = MyDateUtils.now(); to implement things like this,
I think it is the best solution if you are going to test *your* application.


> AFAIK, it is not possible to modify core Java classes
> (not without cheating anyway).
>
> You can, however, modify all other classes. For example,
> scan the classes for calls to invokestatic
> System.currentTimeMillis (very easy with BCEL), and
> replace them with invokestatic <your_class.your_method>.
> This simple replacement (as opposed to adding the code
> inline) would be your best bet, as it shouldn't require
> any other changes.
>
> You can do this ahead of time, or at run time with your
> own ClassLoader.
>
> God bless,
> -Toby Reyelts
> >
> > >> This may be a stupid question, but is it possible to
> > >> use BCEL to wrap> a native method?
> > >
> > > In what sense?
> >
> > I mean insert java code that will run before and/or after the native
> > method executes.
> > For time related testing of our system I'd like to fool it to think
> > its running in the future, I wondered if BCEL could be used to modify
> > the value returned by java.lang.System.currentTimeMillis();
> > transparently to the rest of the program
> >
> > > You can't modify system classes
> >
> > Is this true if I used something like the JavaWrapper example class to
> > replace the class loader for the application?
> >
> > Thanks
> > Andrew
> >
> > --
> > Andrew Smallbone <andrew.smallbone@iee.org>
> >
> >
> >
> > --
> > To unsubscribe, e-mail:
<mailto:bcel-user-unsubscribe@jakarta.apache.org>
> > For additional commands, e-mail:
<mailto:bcel-user-help@jakarta.apache.org>
> >
>
> --
> To unsubscribe, e-mail:
<mailto:bcel-user-unsubscribe@jakarta.apache.org>
> For additional commands, e-mail:
<mailto:bcel-user-help@jakarta.apache.org>
>


--
To unsubscribe, e-mail:   <mailto:bcel-user-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:bcel-user-help@jakarta.apache.org>


Mime
View raw message