harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexei Fedotov (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HARMONY-4738) [drlvm][verifier] Eclipse 3.3 fails on recent Harmony with verify error
Date Thu, 06 Sep 2007 13:16:31 GMT

    [ https://issues.apache.org/jira/browse/HARMONY-4738?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12525416
] 

Alexei Fedotov commented on HARMONY-4738:
-----------------------------------------

It seems I've found the problem: Mikhail reimplements class loader inheritance in his verifer
while class loader inheritance should not follow class inheritance. It seems that all what
is needed is just to return 0 instead of looping "while( sup )" to the root class loader.

    /**
    * Function receives class by given class name, loads it if it's needed.
    */
    class_handler
        vf_resolve_class( class_handler k_class,    // current class
        const char *name,         // resolved class name
        bool need_load)      // load flag
    {
        if( need_load ) {
            return cl_load_class( class_get_class_loader( k_class ), name );
        } else {
            // get class loader
            classloader_handler class_loader = 0;
            class_handler sup = k_class;

            while( sup ) {
                classloader_handler class_loader2 = class_get_class_loader( sup );
                if( class_loader != class_loader2 ) {
                    class_loader = class_loader2;
                    class_handler result = cl_get_class( class_loader, name );
                    if( result ) {
                        return result;
                    }
                }
                sup = class_get_super_class(sup);
            }
            return 0;
        }
    } // vf_resolve_class

I will try this now.

> [drlvm][verifier] Eclipse 3.3 fails on recent Harmony with verify error
> -----------------------------------------------------------------------
>
>                 Key: HARMONY-4738
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4738
>             Project: Harmony
>          Issue Type: Bug
>          Components: App-Oriented Bug Reports, DRLVM
>         Environment: Windows/Linux, release/debug
>            Reporter: Alexey Petrenko
>            Priority: Critical
>
> Eclipse 3.3 fails on recent Harmony in the very beginning with verify error.
> The crash happens both on Windows and Linux and both release and debug builds of Classlib/DRLVM.
> The investigation shown that the failure happens in verifier (stack trace is below).
DRLVM rebuild with "-Duse_original_verifier=true" helps.
> So this looks like a verifier regression.
> Stack trace:
> Uncaught exception in Thread-14:
> java.lang.VerifyError:
> com/ibm/icu/impl/ICUResourceBundleImpl/getBundle()Lcom/ibm/icu/impl/ICUResourceBundle;,
> pass: 2, instr: 32, reason: incompartible argument
>         at java.lang.ClassLoader.defineClass0(ClassLoader.java)
>         at java.lang.ClassLoader.defineClass(ClassLoader.java:438)
>         at
> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:161)
>         at
> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:501)
>         at
> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:471)
>         at
> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:430)
>         at
> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:413)
>         at
> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:189)
>         at
> org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:340)
>         at
> org.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal(BundleLoader.java:408)
>         at
> org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:369)
>         at
> org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:357)
>         at
> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:83)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:319)
>         at
> com.ibm.icu.impl.ICUResourceBundle.instantiateBundle(ICUResourceBundle.java:1195)
>         at
> com.ibm.icu.impl.ICUResourceBundle.getBundleInstance(ICUResourceBundle.java:1163)
>         at
> com.ibm.icu.util.UResourceBundle.getRootType(UResourceBundle.java:418)
>         at
> com.ibm.icu.util.UResourceBundle.instantiateBundle(UResourceBundle.java:466)
>         at
> com.ibm.icu.util.UResourceBundle.getBundleInstance(UResourceBundle.java:123)
>         at
> com.ibm.icu.util.UResourceBundle.getBundleInstance(UResourceBundle.java:105)
>         at
> com.ibm.icu.util.UResourceBundle.getBundleInstance(UResourceBundle.java:186)
>         at
> com.ibm.icu.text.RuleBasedCollator.<clinit>(RuleBasedCollator.java:1764)
>         at
> com.ibm.icu.text.CollatorServiceShim$1$CollatorFactory.handleCreate(CollatorServiceShim.java:114)
>         at
> com.ibm.icu.impl.ICULocaleService$LocaleKeyFactory.create(ICULocaleService.java:378)
>         at com.ibm.icu.impl.ICUService.getKey(ICUService.java:463)
>         at com.ibm.icu.impl.ICUService.getKey(ICUService.java:383)
>         at com.ibm.icu.impl.ICULocaleService.get(ICULocaleService.java:72)
>         at com.ibm.icu.impl.ICULocaleService.get(ICULocaleService.java:56)
>         at
> com.ibm.icu.text.CollatorServiceShim.getInstance(CollatorServiceShim.java:34)
>         at com.ibm.icu.text.Collator.getInstance(Collator.java:483)
>         at com.ibm.icu.text.Collator.getInstance(Collator.java:315)
>         at
> org.eclipse.ui.actions.PerspectiveMenu$2.<init>(PerspectiveMenu.java:76)
>         at
> org.eclipse.ui.actions.PerspectiveMenu.<init>(PerspectiveMenu.java:75)
>         at
> org.eclipse.ui.internal.ChangeToPerspectiveMenu.<init>(ChangeToPerspectiveMenu.java:36)
>         at
> org.eclipse.ui.actions.ContributionItemFactory$6.create(ContributionItemFactory.java:189)
>         at
> org.eclipse.ui.internal.ide.WorkbenchActionBuilder.addPerspectiveActions(WorkbenchActionBuilder.java:688)
>         at
> org.eclipse.ui.internal.ide.WorkbenchActionBuilder.createWindowMenu(WorkbenchActionBuilder.java:665)
>         at
> org.eclipse.ui.internal.ide.WorkbenchActionBuilder.fillMenuBar(WorkbenchActionBuilder.java:453)
>         at
> org.eclipse.ui.application.ActionBarAdvisor.fillActionBars(ActionBarAdvisor.java:150)
>         at
> org.eclipse.ui.internal.ide.WorkbenchActionBuilder.fillActionBars(WorkbenchActionBuilder.java:360)
>         at
> org.eclipse.ui.internal.WorkbenchWindow.fillActionBars(WorkbenchWindow.java:3294)
>         at
> org.eclipse.ui.internal.WorkbenchWindow.<init>(WorkbenchWindow.java:380)
>         at
> org.eclipse.ui.internal.Workbench.newWorkbenchWindow(Workbench.java:1725)
>         at org.eclipse.ui.internal.Workbench.access$14(Workbench.java:1724)
>         at
> org.eclipse.ui.internal.Workbench$18.runWithException(Workbench.java:1001)
>         at
> org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
>         at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
>         at
> org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:123)
>         at
> org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3296)
>         at
> org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2974)
>         at
> org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:797)
>         at
> org.eclipse.ui.internal.Workbench$25.runWithException(Workbench.java:1342)
>         at
> org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
>         at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
>         at
> org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:123)
>         at
> org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3296)
>         at
> org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2974)
>         at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2309)
>         at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219)
>         at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466)
>         at
> org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:289)
>         at
> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:461)
>         at
> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
>         at
> org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
>         at
> org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:153)
>         at
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
>         at
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
>         at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363)
>         at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
>         at java.lang.reflect.VMReflection.invokeMethod(VMReflection.java)
>         at java.lang.reflect.Method.invoke(Method.java:317)
>         at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:504)
>         at org.eclipse.equinox.launcher.Main.basicRun(Main.java:443)
>         at org.eclipse.equinox.launcher.Main.run(Main.java:1169)
>         at org.eclipse.equinox.launcher.Main.main(Main.java:1144)
>         at java.lang.reflect.VMReflection.invokeMethod(VMReflection.java)
>         at java.lang.reflect.Method.invoke(Method.java:317)
>         at org.apache.harmony.vm.JarRunner.main(JarRunner.java:80)

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


Mime
View raw message