Skip to content
Advertisement

Tag: classloader

Lambda expressions and anonymous classes don’t work when loaded as hidden classes

I am trying to compile and load dynamically generated Java code during runtime. Since both ClassLoader::defineClass and Unsafe::defineAnonymousClass have serious drawbacks in this scenario, I tried using hidden classes via Lookup::defineHiddenClass instead. This works fine for all classes that I tried to load, except for those that call lambda expressions or contain anonymous classes. Calling a lambda expression throws the

Why are log4j classes loaded by two class loaders?

I have a maven project for an application, which I run in a WildFly server. The project has log4j dependencies: I would like to get the LoggerContext like this: However, this results in ClassCastException: After some debugging, I have discovered that the problem is that the class LoggerContext is loaded via two different classloaders. How could this be possible? At

Java: Reading from getResourceAsStream gets too many bytes

I’m trying to read a binary file, using getResourceAsStream. The problem is I get too many bytes back. The file is 56374 bytes long, according to ls, but when I read it in my code, I consistently get 85194 bytes. I get the same result with similar code: If I run the code without the resource, everything is fine, I

Make a Java class visible from any ClassLoader

I’m using a Java Agent (Agent.class) to transform a method in a program (Program.class) in a way that includes a call to the Agent class. I’ve inspected the class loaders and their parents of both Agent and Program classes, and their hierarchy looks like this: Agent.class: AppClassLoader <- PlatformClassLoader <- null Program.class: URLClassLoader <- PlatformClassLoader <- null When the Program

How do I give Drools access to dynamically loaded classes?

I am trying to use a ClassLoader to load classes from .class files at runtime and use them in Drools rules (Drools 7.52.0). I am using this custom ClassLoader which reads from a file and uses ClassLoader.defineClass() to load a class. It’s similar to a URLClassLoader: I can use the ClassLoader to load a class, construct an instance, and access

Advertisement