You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Vera Petrashkova (JIRA)" <ji...@apache.org> on 2006/11/08 08:06:52 UTC
[jira] Updated: (HARMONY-2099) [drlvm][jit] Jitrino/OPT does not
reject class with incorrect instance initialization method
[ http://issues.apache.org/jira/browse/HARMONY-2099?page=all ]
Vera Petrashkova updated HARMONY-2099:
--------------------------------------
Attachment: initTest.zip
initTest.zip contains test source code and class files
> [drlvm][jit] Jitrino/OPT does not reject class with incorrect instance initialization method
> --------------------------------------------------------------------------------------------
>
> Key: HARMONY-2099
> URL: http://issues.apache.org/jira/browse/HARMONY-2099
> Project: Harmony
> Issue Type: Bug
> Components: DRLVM
> Environment: Windows and Linux
> Reporter: Vera Petrashkova
> Attachments: initTest.zip
>
>
> According to J2SE VM specifications each instance initialization method except for
> the instance initialization method directed from the constructor of class Object
> must call
> - either another instance initialization method of this
> - an instance initialization method of its direct superclass.
> But Jitrino/OPT does not reject class when its instance initialization method invokes initialization method of
> some class which is not superclass of this class.
> The following initTest reproduces the issue. It uses wrongInit class which was created
> from jasmin source code.
> ------------------initTest.java------------------
> public class initTest {
> public static void main(String[] args) throws Exception {
> System.out.println("wrongInit class");
> try {
> new wrongInit();
> System.out.println("Test fails");
> } catch (VerifyError e ) {
> System.out.println("Test passes. Expected error was thrown: "+e);
> } catch (Throwable e ) {
> System.out.println("Test fails: unexpected error");
> e.printStackTrace(System.out);
> }
> }
> }
> class initTest_1 {
> }
> ------------------------wrongInit.jj--------------------------
> .class public wrongInit
> .super initTest_1
> ;
> ; initializer
> .method public <init>()V
> aload_0
> ; invoke <init> method from incorrect class
> invokespecial java/lang/Object/<init>()V
> return
> .end method
> ----------------------------------------------------
> Create wrongInit class
> java -jar jasmin.jar wrongInit.jj
> or use class file from attachment
> Output on Harmony (Interpreter and Jitrino/JET)
> ================================
> Apache Harmony Launcher : (c) Copyright 1991, 2006 The Apache Software Foundation or its licensors, as applicable.
> java version "1.5.0"
> pre-alpha : not complete or compatible
> svn = r471468, (Nov 7 2006), Windows/ia32/msvc 1310, release build
> http://incubator.apache.org/harmony
> wrongInit class
> Test passes. Expected error was thrown: java.lang.VerifyError: (class: wrongInit, method: <init>()V) Call to wrong initialization method
> Output on Harmony (Jitrino/OPT)
> ==============================
> Apache Harmony Launcher : (c) Copyright 1991, 2006 The Apache Software Foundation or its licensors, as applicable.
> java version "1.5.0"
> pre-alpha : not complete or compatible
> svn = r471468, (Nov 7 2006), Windows/ia32/msvc 1310, release build
> http://incubator.apache.org/harmony
> wrongInit class
> Test fails
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira