[ 
https://issues.apache.org/jira/browse/BCEL-191?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14274916#comment-14274916
 ] 

Emmanuel Bourg commented on BCEL-191:
-------------------------------------

As I understand the patch removes GenericArray  completely, what do we lose by 
not mocking the array?

> Verifier assumes the classes of the verifier are in the classpath of the 
> verified class
> ---------------------------------------------------------------------------------------
>
>                 Key: BCEL-191
>                 URL: https://issues.apache.org/jira/browse/BCEL-191
>             Project: Commons BCEL
>          Issue Type: Bug
>          Components: Verifier
>            Reporter: Jérôme Leroux
>            Priority: Minor
>         Attachments: BCEL-191.patch
>
>
> When verifying a class, the verifier looks for this class and its 
> dependencies in a classpath configured for this verification. If the classes 
> of the verifier itself are not in this classpath, then an error can occur.
> The causes is the use of the internal class 
> {{org.apache.bcel.verifier.structurals.GenericArray}} to mock the array class 
> when a method invokation is done on an array. If the class {{GenericArray}} 
> is not available in the classpath of the verifier class, we get the following 
> error:
> {quote}
> Exception in thread "main" 
> org.apache.bcel.verifier.exc.AssertionViolatedException: INTERNAL ERROR: Some 
> RuntimeException occured while verify()ing class 
> 'org.apache.bcel.verifier.tests.TestArray01', method 'public static void 
> test1()'. Original RuntimeException's stack trace:
> ---
> org.apache.bcel.verifier.exc.AssertionViolatedException: INTERNAL ERROR: 
> Missing class: java.lang.ClassNotFoundException: Exception while looking for 
> class org.apache.bcel.verifier.structurals.GenericArray: java.io.IOException: 
> Couldn't find: org/apache/bcel/verifier/structurals/GenericArray.class
>       at 
> org.apache.bcel.verifier.structurals.InstConstraintVisitor.visitINVOKEVIRTUAL(InstConstraintVisitor.java:2059)
>       …
> {quote}
> Here is a simple example of code that raises this exception:
> {code:java}
>     public static void test1(){
>         String[] a = new String[4];
>         a.equals(null);
>     }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to