You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Mikhail Fursov (JIRA)" <ji...@apache.org> on 2007/08/08 16:10:59 UTC

[jira] Updated: (HARMONY-4292) [drlvm][jit][opt] Jitrino.OPT crashes instead of throwing StackOverfowError when synchronized method is invoked recursively

     [ https://issues.apache.org/jira/browse/HARMONY-4292?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mikhail Fursov updated HARMONY-4292:
------------------------------------

    Attachment: soe1.patch

soe1.fix: a contract with VM: do not call monexit if SOE happens in synchronized method

> [drlvm][jit][opt] Jitrino.OPT crashes instead of throwing  StackOverfowError when synchronized method is invoked recursively
> ----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4292
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4292
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>         Environment: Windows
>            Reporter: Vera Petrashkova
>            Assignee: Mikhail Fursov
>         Attachments: soe1.patch
>
>
> The following test demonstrates that Jitrino.OPT crashes instead of throwing StackOverflowError 
> when  synchronized method is invoked recursively
> --------------------------recTest.java------------------
> public class recTest {
>     public static void main(String[] args) {
>         new recTest().test();
>     }
>     private static int count;
>     public void test() {
>         try {
>             func();
>             System.err.println("TEST FAILED. SOE was not thrown");
>         } catch (StackOverflowError e) {
>             if (count > 255) {
>                 System.err.println("TEST PASSED, count=" + count);
>             } else {
>                 System.err.println("TEST FAILED: too short stack ("
>                                 + count + ")");
>             }
>         }
>     }
>     private synchronized  void func() {
>         count++;
>         func();
>     }
> }
> ----------------------------------------------
> Output on 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 = r550333, (Jun 25 2007), Windows/ia32/msvc 1310, release build
> http://harmony.apache.org
> Output on 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 = r550333, (Jun 25 2007), Windows/ia32/msvc 1310, release build
> http://harmony.apache.org
> TEST PASSED, count=4169

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.