commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jérôme Leroux (JIRA) <j...@apache.org>
Subject [jira] [Created] (BCEL-191) Verifier assumes the classes of the verifier are in the classpath of the verified class
Date Tue, 13 Jan 2015 08:00:55 GMT
Jérôme Leroux created BCEL-191:
----------------------------------

             Summary: 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


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)

Mime
View raw message