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/12/20 07:46:23 UTC
[jira] Created: (HARMONY-2808) [drlvm] VM crashes instead of
throwing VerifyError when used class overrides final method
[drlvm] VM crashes instead of throwing VerifyError when used class overrides final method
-----------------------------------------------------------------------------------------
Key: HARMONY-2808
URL: http://issues.apache.org/jira/browse/HARMONY-2808
Project: Harmony
Issue Type: Bug
Components: DRLVM
Environment: Windows and Linux
Reporter: Vera Petrashkova
VM crashes when it tries to load class which contains overridden final method.
The following test which uses attached synthetic classes demonstrates this issue:
----------finTest.java----------
public class finTest {
public static void main(String args[]) {
try {
new finTest1().test();
System.out.println("Test failed. VerifyError was not thrown");
} catch (VerifyError e) {
System.out.println("Test passed: "+e);
} catch (Throwable e) {
System.out.println("Test failed: unexpected "+e);
e.printStackTrace();
}
}
}
----------------finTest1.jj--------------
.class public finTest1
.super java/lang/Object
;
; standard initializer
.method public <init>()V
aload_0
invokespecial java/lang/Object/<init>()V
return
.end method
; final method
.method public final testMethod()I
.limit locals 2
.limit stack 2
sipush 1
ireturn
.end method
;
.method public test()V
.limit stack 2
.limit locals 2
new finTest2
dup
invokespecial finTest2/<init>()V
aload 0
invokevirtual finTest2/testMethod()V
return
.end method
--------------finTest2.jj------------------
.class public finTest2
.super finTest1
;
; standard initializer
.method public <init>()V
aload_0
invokespecial finTest1/<init>()V
return
.end method
;
.method public final testMethod()I
.limit locals 2
.limit stack 2
sipush 2
ireturn
.end method
-----------------
--
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
[jira] Commented: (HARMONY-2808) [drlvm] VM crashes instead of
throwing VerifyError when used class overrides final method
Posted by "Vera Petrashkova (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-2808?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12468875 ]
Vera Petrashkova commented on HARMONY-2808:
-------------------------------------------
VM throws VerifyError corectly.
> [drlvm] VM crashes instead of throwing VerifyError when used class overrides final method
> -----------------------------------------------------------------------------------------
>
> Key: HARMONY-2808
> URL: https://issues.apache.org/jira/browse/HARMONY-2808
> Project: Harmony
> Issue Type: Bug
> Components: DRLVM
> Environment: Windows and Linux
> Reporter: Vera Petrashkova
> Assigned To: Gregory Shimansky
> Attachments: classloader_override_final_method_fix.patch, finTest.zip
>
>
> VM crashes when it tries to load class which contains overridden final method.
> The following test which uses attached synthetic classes demonstrates this issue:
> ----------finTest.java----------
> public class finTest {
> public static void main(String args[]) {
> try {
> new finTest1().test();
> System.out.println("Test failed. VerifyError was not thrown");
> } catch (VerifyError e) {
> System.out.println("Test passed: "+e);
> } catch (Throwable e) {
> System.out.println("Test failed: unexpected "+e);
> e.printStackTrace();
> }
> }
> }
> ----------------finTest1.jj--------------
> .class public finTest1
> .super java/lang/Object
> ;
> ; standard initializer
> .method public <init>()V
> aload_0
> invokespecial java/lang/Object/<init>()V
> return
> .end method
> ; final method
> .method public final testMethod()I
> .limit locals 2
> .limit stack 2
> sipush 1
> ireturn
> .end method
> ;
> .method public test()V
> .limit stack 2
> .limit locals 2
> new finTest2
> dup
> invokespecial finTest2/<init>()V
> aload 0
> invokevirtual finTest2/testMethod()V
> return
> .end method
> --------------finTest2.jj------------------
> .class public finTest2
> .super finTest1
> ;
> ; standard initializer
> .method public <init>()V
> aload_0
> invokespecial finTest1/<init>()V
> return
> .end method
> ;
> .method public final testMethod()I
> .limit locals 2
> .limit stack 2
> sipush 2
> ireturn
> .end method
> -----------------
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (HARMONY-2808) [drlvm] VM crashes instead of
throwing VerifyError when used class overrides final method
Posted by "Pavel Rebriy (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-2808?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Pavel Rebriy updated HARMONY-2808:
----------------------------------
Attachment: classloader_override_final_method_fix.patch
Fix the problem in classloader.
> [drlvm] VM crashes instead of throwing VerifyError when used class overrides final method
> -----------------------------------------------------------------------------------------
>
> Key: HARMONY-2808
> URL: https://issues.apache.org/jira/browse/HARMONY-2808
> Project: Harmony
> Issue Type: Bug
> Components: DRLVM
> Environment: Windows and Linux
> Reporter: Vera Petrashkova
> Attachments: classloader_override_final_method_fix.patch, finTest.zip
>
>
> VM crashes when it tries to load class which contains overridden final method.
> The following test which uses attached synthetic classes demonstrates this issue:
> ----------finTest.java----------
> public class finTest {
> public static void main(String args[]) {
> try {
> new finTest1().test();
> System.out.println("Test failed. VerifyError was not thrown");
> } catch (VerifyError e) {
> System.out.println("Test passed: "+e);
> } catch (Throwable e) {
> System.out.println("Test failed: unexpected "+e);
> e.printStackTrace();
> }
> }
> }
> ----------------finTest1.jj--------------
> .class public finTest1
> .super java/lang/Object
> ;
> ; standard initializer
> .method public <init>()V
> aload_0
> invokespecial java/lang/Object/<init>()V
> return
> .end method
> ; final method
> .method public final testMethod()I
> .limit locals 2
> .limit stack 2
> sipush 1
> ireturn
> .end method
> ;
> .method public test()V
> .limit stack 2
> .limit locals 2
> new finTest2
> dup
> invokespecial finTest2/<init>()V
> aload 0
> invokevirtual finTest2/testMethod()V
> return
> .end method
> --------------finTest2.jj------------------
> .class public finTest2
> .super finTest1
> ;
> ; standard initializer
> .method public <init>()V
> aload_0
> invokespecial finTest1/<init>()V
> return
> .end method
> ;
> .method public final testMethod()I
> .limit locals 2
> .limit stack 2
> sipush 2
> ireturn
> .end method
> -----------------
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Resolved: (HARMONY-2808) [drlvm] VM crashes instead of
throwing VerifyError when used class overrides final method
Posted by "Gregory Shimansky (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-2808?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gregory Shimansky resolved HARMONY-2808.
----------------------------------------
Resolution: Fixed
Patch and regression test applied at 501393. Please check that the patch was applied as expected.
> [drlvm] VM crashes instead of throwing VerifyError when used class overrides final method
> -----------------------------------------------------------------------------------------
>
> Key: HARMONY-2808
> URL: https://issues.apache.org/jira/browse/HARMONY-2808
> Project: Harmony
> Issue Type: Bug
> Components: DRLVM
> Environment: Windows and Linux
> Reporter: Vera Petrashkova
> Assigned To: Gregory Shimansky
> Attachments: classloader_override_final_method_fix.patch, finTest.zip
>
>
> VM crashes when it tries to load class which contains overridden final method.
> The following test which uses attached synthetic classes demonstrates this issue:
> ----------finTest.java----------
> public class finTest {
> public static void main(String args[]) {
> try {
> new finTest1().test();
> System.out.println("Test failed. VerifyError was not thrown");
> } catch (VerifyError e) {
> System.out.println("Test passed: "+e);
> } catch (Throwable e) {
> System.out.println("Test failed: unexpected "+e);
> e.printStackTrace();
> }
> }
> }
> ----------------finTest1.jj--------------
> .class public finTest1
> .super java/lang/Object
> ;
> ; standard initializer
> .method public <init>()V
> aload_0
> invokespecial java/lang/Object/<init>()V
> return
> .end method
> ; final method
> .method public final testMethod()I
> .limit locals 2
> .limit stack 2
> sipush 1
> ireturn
> .end method
> ;
> .method public test()V
> .limit stack 2
> .limit locals 2
> new finTest2
> dup
> invokespecial finTest2/<init>()V
> aload 0
> invokevirtual finTest2/testMethod()V
> return
> .end method
> --------------finTest2.jj------------------
> .class public finTest2
> .super finTest1
> ;
> ; standard initializer
> .method public <init>()V
> aload_0
> invokespecial finTest1/<init>()V
> return
> .end method
> ;
> .method public final testMethod()I
> .limit locals 2
> .limit stack 2
> sipush 2
> ireturn
> .end method
> -----------------
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Closed: (HARMONY-2808) [drlvm] VM crashes instead of
throwing VerifyError when used class overrides final method
Posted by "Gregory Shimansky (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-2808?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gregory Shimansky closed HARMONY-2808.
--------------------------------------
VERIFIED
> [drlvm] VM crashes instead of throwing VerifyError when used class overrides final method
> -----------------------------------------------------------------------------------------
>
> Key: HARMONY-2808
> URL: https://issues.apache.org/jira/browse/HARMONY-2808
> Project: Harmony
> Issue Type: Bug
> Components: DRLVM
> Environment: Windows and Linux
> Reporter: Vera Petrashkova
> Assigned To: Gregory Shimansky
> Attachments: classloader_override_final_method_fix.patch, finTest.zip
>
>
> VM crashes when it tries to load class which contains overridden final method.
> The following test which uses attached synthetic classes demonstrates this issue:
> ----------finTest.java----------
> public class finTest {
> public static void main(String args[]) {
> try {
> new finTest1().test();
> System.out.println("Test failed. VerifyError was not thrown");
> } catch (VerifyError e) {
> System.out.println("Test passed: "+e);
> } catch (Throwable e) {
> System.out.println("Test failed: unexpected "+e);
> e.printStackTrace();
> }
> }
> }
> ----------------finTest1.jj--------------
> .class public finTest1
> .super java/lang/Object
> ;
> ; standard initializer
> .method public <init>()V
> aload_0
> invokespecial java/lang/Object/<init>()V
> return
> .end method
> ; final method
> .method public final testMethod()I
> .limit locals 2
> .limit stack 2
> sipush 1
> ireturn
> .end method
> ;
> .method public test()V
> .limit stack 2
> .limit locals 2
> new finTest2
> dup
> invokespecial finTest2/<init>()V
> aload 0
> invokevirtual finTest2/testMethod()V
> return
> .end method
> --------------finTest2.jj------------------
> .class public finTest2
> .super finTest1
> ;
> ; standard initializer
> .method public <init>()V
> aload_0
> invokespecial finTest1/<init>()V
> return
> .end method
> ;
> .method public final testMethod()I
> .limit locals 2
> .limit stack 2
> sipush 2
> ireturn
> .end method
> -----------------
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (HARMONY-2808) [drlvm] VM crashes instead of
throwing VerifyError when used class overrides final method
Posted by "Vera Petrashkova (JIRA)" <ji...@apache.org>.
[ http://issues.apache.org/jira/browse/HARMONY-2808?page=all ]
Vera Petrashkova updated HARMONY-2808:
--------------------------------------
Attachment: finTest.zip
finTest.zip contains test source code and class files
> [drlvm] VM crashes instead of throwing VerifyError when used class overrides final method
> -----------------------------------------------------------------------------------------
>
> Key: HARMONY-2808
> URL: http://issues.apache.org/jira/browse/HARMONY-2808
> Project: Harmony
> Issue Type: Bug
> Components: DRLVM
> Environment: Windows and Linux
> Reporter: Vera Petrashkova
> Attachments: finTest.zip
>
>
> VM crashes when it tries to load class which contains overridden final method.
> The following test which uses attached synthetic classes demonstrates this issue:
> ----------finTest.java----------
> public class finTest {
> public static void main(String args[]) {
> try {
> new finTest1().test();
> System.out.println("Test failed. VerifyError was not thrown");
> } catch (VerifyError e) {
> System.out.println("Test passed: "+e);
> } catch (Throwable e) {
> System.out.println("Test failed: unexpected "+e);
> e.printStackTrace();
> }
> }
> }
> ----------------finTest1.jj--------------
> .class public finTest1
> .super java/lang/Object
> ;
> ; standard initializer
> .method public <init>()V
> aload_0
> invokespecial java/lang/Object/<init>()V
> return
> .end method
> ; final method
> .method public final testMethod()I
> .limit locals 2
> .limit stack 2
> sipush 1
> ireturn
> .end method
> ;
> .method public test()V
> .limit stack 2
> .limit locals 2
> new finTest2
> dup
> invokespecial finTest2/<init>()V
> aload 0
> invokevirtual finTest2/testMethod()V
> return
> .end method
> --------------finTest2.jj------------------
> .class public finTest2
> .super finTest1
> ;
> ; standard initializer
> .method public <init>()V
> aload_0
> invokespecial finTest1/<init>()V
> return
> .end method
> ;
> .method public final testMethod()I
> .limit locals 2
> .limit stack 2
> sipush 2
> ireturn
> .end method
> -----------------
--
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
[jira] Updated: (HARMONY-2808) [drlvm] VM crashes instead of
throwing VerifyError when used class overrides final method
Posted by "Gregory Shimansky (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-2808?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gregory Shimansky updated HARMONY-2808:
---------------------------------------
Patch Info: [Patch Available]
Assignee: Gregory Shimansky
> [drlvm] VM crashes instead of throwing VerifyError when used class overrides final method
> -----------------------------------------------------------------------------------------
>
> Key: HARMONY-2808
> URL: https://issues.apache.org/jira/browse/HARMONY-2808
> Project: Harmony
> Issue Type: Bug
> Components: DRLVM
> Environment: Windows and Linux
> Reporter: Vera Petrashkova
> Assigned To: Gregory Shimansky
> Attachments: classloader_override_final_method_fix.patch, finTest.zip
>
>
> VM crashes when it tries to load class which contains overridden final method.
> The following test which uses attached synthetic classes demonstrates this issue:
> ----------finTest.java----------
> public class finTest {
> public static void main(String args[]) {
> try {
> new finTest1().test();
> System.out.println("Test failed. VerifyError was not thrown");
> } catch (VerifyError e) {
> System.out.println("Test passed: "+e);
> } catch (Throwable e) {
> System.out.println("Test failed: unexpected "+e);
> e.printStackTrace();
> }
> }
> }
> ----------------finTest1.jj--------------
> .class public finTest1
> .super java/lang/Object
> ;
> ; standard initializer
> .method public <init>()V
> aload_0
> invokespecial java/lang/Object/<init>()V
> return
> .end method
> ; final method
> .method public final testMethod()I
> .limit locals 2
> .limit stack 2
> sipush 1
> ireturn
> .end method
> ;
> .method public test()V
> .limit stack 2
> .limit locals 2
> new finTest2
> dup
> invokespecial finTest2/<init>()V
> aload 0
> invokevirtual finTest2/testMethod()V
> return
> .end method
> --------------finTest2.jj------------------
> .class public finTest2
> .super finTest1
> ;
> ; standard initializer
> .method public <init>()V
> aload_0
> invokespecial finTest1/<init>()V
> return
> .end method
> ;
> .method public final testMethod()I
> .limit locals 2
> .limit stack 2
> sipush 2
> ireturn
> .end method
> -----------------
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.