<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">
<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>
                                <td>
                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="https://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">JBoss Community</a></h1>
                                                                </td>
                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px; -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
VerifyError with complex Javassist instrumentation
</h3>
<span style="margin-bottom: 10px;">
created by <a href="https://community.jboss.org/people/mbenson">Matt Benson</a> in <i>Javassist</i> - <a href="https://community.jboss.org/message/805734#805734">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">
<div class="jive-rendered-content"><p>Hi, I'm working on a new OSS project to allow Java developers to declaratively handle the Java AccessController APIs.  One of our features is the concept of "method blueprinting" whereby the code requiring privileges is housed in a security-agnostic static implementation method.  Calls to such methods are translated to calls to local, cloned methods.  This basic concept is all working great with Javassist.  The problem occurs when such a "blueprint method" references a field.  I have created code to handle field accesses using reflection (as opposed to copying the field, which might then not be initialized, etc.).  I am by no means a bytecode expert, but I am familiar with recursive-descent parsers and I have stepped through the code that compiles my replacement statements; this all looks fine.  I have compared the bytecode Javassist is generating with the bytecode generated by javac to do the same type of field reflection and I (from my inexpert POV) cannot see anything that appears significant.  When I try to run my instrumented code I get VerifyError "Incompatible argument to function".  I am at a complete loss.  I would be highly appreciative if any experts were able to offer further advice on how to proceed.  If anyone is interested, the current code can be viewed at <a class="jive-link-external-small" href="http://svn.apache.org/repos/asf/commons/sandbox/weaver/branches/fields" rel="nofollow">http://svn.apache.org/repos/asf/commons/sandbox/weaver/branches/fields</a> .  Probably the easiest way to test is `mvn -DskipTests clean install` then `cd example; mvn test` to see the problem.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>TIA,</p><p>Matt</p></div>
<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
<p style="margin: 0;">Reply to this message by <a href="https://community.jboss.org/message/805734#805734">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in Javassist at <a href="https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2062">Community</a></p>
</div></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>