Comments (5)
Have you tried to set -Dnet.bytebuddy.dump=/some/folder
?
You can then investigate the generated class to see if it actually contains the new code using javap
. If you set @Advice.OnMethodEnter(skipOn = String.class, inline = false)
you might also be able to set a break point. If it never triggers, something else is wrong.
from byte-buddy.
Have you tried to set
-Dnet.bytebuddy.dump=/some/folder
?You can then investigate the generated class to see if it actually contains the new code using
javap
. If you set@Advice.OnMethodEnter(skipOn = String.class, inline = false)
you might also be able to set a break point. If it never triggers, something else is wrong.
Looked into the dump, it's
public String test() {
if ((System.currentTimeMillis() > 0 ? "inject" : null) instanceof String) {
return null;
}
return "test";
}
It returns null, but not inject
String.
from byte-buddy.
I could skip original method codes and add a OnMethodExit
, but it adds one more of condition check. It will take more time. If all things can be done in OnMethodEnter
or something like that, it would be great.
from byte-buddy.
Indeed, now I understand what you are trying to do. You would need to add the following:
@Advice.OnMethodExit
static void exit(@Advice.Enter String enter, @Advice.Return(readOnly = false) String returned) {
if (enter != null) {
returned = enter;
}
}
Otherwise, you will not assign the returned value.
from byte-buddy.
This works! Thank you so much.
from byte-buddy.
Related Issues (20)
- java.lang.IncompatibleClassChangeError: Interface method reference: java.util.stream.Sink.begin(J)V HOT 1
- defineField not working well HOT 1
- JDK class enhancements HOT 3
- ByteBuddy is incompatible with CDS due to the Java 6 baseline HOT 4
- No JPMS module-info or Automatic-Module-Name in byte-buddy-dep HOT 2
- How to call method self when use Advice HOT 4
- "Set value cannot be assigned" when setting lambda to static field in type initializer HOT 4
- Publish blocking HOT 12
- Is `@Advice.SuperCall` supported? How can I call `super.originalMethod()` inside my instrumenting code? HOT 1
- Side effects of bytebuddy rebasing to weaving process? HOT 2
- Can ByteBuddy provide a list of the JDK classes it makes use of? HOT 4
- AIX J9 attachment fails because stat is not present. HOT 1
- Improve around advice to retransform loaded class HOT 4
- Consultation on implementing a similar functionality to javassist's instrument feature.
- com.oracle.svm.core.jdk.UnsupportedFeatureError: No classes have been predefined during the image build to load from bytecodes at runtime. HOT 1
- AndroidClassLoadingStrategy Injecting problem in Android SDK 33 HOT 3
- [maven plugin] transform-extended does not include dependency classes HOT 12
- latest guava cause [ unexpected type reference on method: 16 ] HOT 5
- `MemberSubstitution` can't replace instructions within synthetic methods. HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from byte-buddy.