You can write such code with Jasmin only. Javac will generage finally
sequence to release monitors.
I do not sure if we need to fix this in both OPT and JET. May be a scenario
when such methods are rejected by OPT and passed by EM to JET is better.


On 1/25/07, Shipilov, Alexander D <[EMAIL PROTECTED]> wrote:

Hello, folks,

Could you, please clarify one issue.
The problem has described in JIRA
https://issues.apache.org/jira/browse/HARMONY-2504.

Thread makes monitorenter, and throws exception (NPE) to the output.
JASMIN code:
        .method public run()V
           .limit stack 3
           .limit locals 3

           getstatic Test/testField Ljava/lang/Object;
           monitorenter

           new java/lang/NullPointerException
           dup
           invokespecial java/lang/NullPointerException/<init>()V
           athrow

           getstatic Test/testField Ljava/lang/Object;
           monitorexit

           return
        .end method

Then other thread tries to get a lock. Deadlock occurs on Harmony.
Does this behavior is correct?

Thanks,
Alexander Shipilov




--
Mikhail Fursov

Reply via email to