https://bz.apache.org/bugzilla/show_bug.cgi?id=59270

--- Comment #2 from Andrei Ivanov <andrei.iva...@gmail.com> ---
Hi,
As I've shown in https://bz.apache.org/bugzilla/show_bug.cgi?id=58143, the
recommended Spring solution didn't work for me as Tomcat was already loading
the class I want to weave before Spring gets initialized.

Indeed, the custom classloader gets picked up.
Ha, seems that the API has changed again:
On 8.0.32, the new method was called: findResourceInternal(String name, String
path, boolean manifestRequired)
This created the issue for Spring earlier :)

On 8.0.33, it reverts back to calling the initial method:
findResourceInternal(String name, String path)

This is the Spring method body (in both cases):
protected ResourceEntry findResourceInternal(String name, String path) {
        ResourceEntry entry = super.findResourceInternal(name, path);
        if (entry != null && entry.binaryContent != null &&
path.endsWith(CLASS_SUFFIX)) {
            String className = (name.endsWith(CLASS_SUFFIX) ? name.substring(0,
name.length() - CLASS_SUFFIX.length()) : name);
            entry.binaryContent =
this.weavingTransformer.transformIfNecessary(className, entry.binaryContent);
        }
        return entry;
    }

The problem now is that entry.binaryContent is null, so the weaving doesn't
take place.

This might be the cause:
https://github.com/apache/tomcat/commit/bd3cd71dd8a40b02e1728d98a9c241ef630573ef#diff-3f0901a8e99cbddfc81363aeb77a0109

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to