You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Gregory Shimansky (JIRA)" <ji...@apache.org> on 2007/01/26 09:26:49 UTC

[jira] Resolved: (HARMONY-2022) [drlvm] Fix ClassLoading in exception raised state.

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

Gregory Shimansky resolved HARMONY-2022.
----------------------------------------

    Resolution: Fixed

Patch applied at 500178 with recommendations from Pavel P. Please check that it was applied as expected. I also had to fix a bad assertion in 500157.

> [drlvm] Fix ClassLoading in exception raised state.
> ---------------------------------------------------
>
>                 Key: HARMONY-2022
>                 URL: https://issues.apache.org/jira/browse/HARMONY-2022
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Pavel Afremov
>         Assigned To: Gregory Shimansky
>         Attachments: Fix-ClassLoading-in-exception-raised-state.patch, Fix-ClassLoading-in-exception-raised-state.txt
>
>
> The following test crashes VM, if it runs with parameters -Xms16m -Xmx32m:
> import java.lang.ref.*;
> public class PhantomTest {
>     static int MAX_MEM = 0;
>     public static void main(String[] args) {
>         if(args.length>0) {
>           try {
>            MAX_MEM = Integer.parseInt(args[0]);
>           }
>           catch(NumberFormatException e) { //ignore 
>           }
>         }
>         if(MAX_MEM <= 0) {
>            MAX_MEM = 100000;
>         }
>         ReferenceQueue q = new ReferenceQueue();
>         PhantomReference [] ref = new PhantomReference[MAX_MEM];
>         FinalizedObject obj = null;
>         for(int i= 0; i < ref.length; ++i) {
>             if(i > 0) ref[i - 1] = new PhantomReference(obj, q);
>             obj = null;
>             obj = new FinalizedObject(1024, i);
>             Reference r = null;
>             while( (r=q.poll())!=null) {
>                r.clear();
>                System.out.println("r = " + r);
>             }
>         }
>         System.out.println("TEST COMPLETED!");
>     }
>     static class FinalizedObject {
>        byte [] bytes;
>        int ind = 0;
>        FinalizedObject(int size, int ind) {
>           bytes = new byte[size];
>           this.ind = ind;
>        }
>        protected void finalize() {
>            System.out.println("Finalize: " + ind);
>        }
>     }
> }

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