I have a generic Java agent based on AspectJ that instruments methods with a certain structure. The agent should be able to work with any Java web application.
The problem - in case the method the agent tries to instrument is very very big, the generated byte code might be greater than 64k --> and as a result the instrumentation will fail, since the JVM doesn't support such methods.
Is there any way to handle such cases? I cannot control the actual application code, only the agent.
An example related to JSPs:
pointcut getJSPRequests(HttpServletRequest req, HttpServletResponse resp):
        args(req, resp) && execution(void _jspService(..));
void around(HttpServletRequest req, HttpServletResponse resp):
        getJSPRequests(req, resp) {
     callSomeMethod(thisJoinPointStaticPart.getSignature(), req, resp);
     proceed(req, resp);
}
Thanks,
Lin