harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chris Elford (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HARMONY-3720) [drlvm][verifier] VerifyError: 'Data flow analysis error' is reported for class in AXIS2 server binary distribution
Date Wed, 25 Apr 2007 00:07:15 GMT

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

Chris Elford commented on HARMONY-3720:
---------------------------------------

In trying to get the OpenJNLP provider working for Java webstart, I ran into this problem
with at least one version of Eclipse SWT running the SWT examples as well.

c:\java\hre50\bin\java -verbose:class -cp swt-win32-win32.jar;swtexamples.jar org.eclipse.swt.examples.controlexample.ControlExample

Uncaught exception in main:
java.lang.VerifyError: (class: org/eclipse/swt/widgets/EventTable, method: sendEvent(Lorg/eclipse/swt/widgets/Event;)V)
Data flow analysis error
        at org.eclipse.swt.widgets.Widget.addListener(Unknown Source)
        at org.eclipse.swt.widgets.Button.addSelectionListener(Unknown Source)
        at org.eclipse.swt.examples.controlexample.Tab.createOtherGroup(Tab.java:338)
        at org.eclipse.swt.examples.controlexample.AlignableTab.createOtherGroup(AlignableTab.java:43)
        at org.eclipse.swt.examples.controlexample.Tab.createControlGroup(Tab.java:137)
        at org.eclipse.swt.examples.controlexample.ButtonTab.createControlGroup(ButtonTab.java:46)
        at org.eclipse.swt.examples.controlexample.Tab.createTabFolderPage(Tab.java:878)
        at org.eclipse.swt.examples.controlexample.ControlExample.<init>(ControlExample.java:60)
        at org.eclipse.swt.examples.controlexample.ControlExample.main(ControlExample.java:201)
[Loaded org/apache/harmony/luni/util/DeleteOnExit from c:\java\hre50\lib\boot\luni.jar]
[Loaded java/util/zip/ZipFile$1 from c:\java\hre50\lib\boot\archive.jar]

If I run with verbose classloading, I see:
Loading of org/eclipse/swt/widgets/EventTable class failed due to java/lang/VerifyError

I am wondering if this has something to do with the version of javac that was used to compile
the "defective" class.  I checked the Eclipse cvs site and the offending file (org/eclipse/swt/widgets/EventTable)
has not been updated in almost 2 years.  I checked the version from the 3.2.2, 3.2.1, and
3.2.0 releases of Eclipse.  All of them work correctly.  The particular version that in in
the Eclipse JDLP demo (http://www.eclipse.org/swt/jws/controlexample.jnlp) seems to be an
old prerelease of Eclipse 3.2.0 that has this "defective" class in it.

If I run jad (http://www.kpdus.com/jad.html) against the EventTable.class in my test or the
AbstractExecutorService.class in the test attached to this bug, I see an interesting error
from jad:

C:\java\test>jad AbstractExecutorService.class
Parsing AbstractExecutorService.class... Generating AbstractExecutorService.jad
Overlapped try statements detected. Not all exception handlers will be resolved in the method
doInvokeAny
Couldn't fully decompile method doInvokeAny
Couldn't resolve all exception handlers in method doInvokeAny
Overlapped try statements detected. Not all exception handlers will be resolved in the method
invokeAll
Overlapped try statements detected. Not all exception handlers will be resolved in the method
invokeAll
Couldn't fully decompile method invokeAll
Couldn't resolve all exception handlers in method invokeAll

C:\java\test\swt\bad\org\eclipse\swt\widgets>jad EventTable.class
Parsing EventTable.class... Generating EventTable.jad
Overlapped try statements detected. Not all exception handlers will be resolved in the method
sendEvent
Couldn't fully decompile method sendEvent
Couldn't resolve all exception handlers in method sendEvent

But if I run it against a version of SWT that is "good", I see:

C:\java\test\swt\good\org\eclipse\swt\widgets>jad EventTable.class
Parsing EventTable.class... Generating EventTable.jad
Couldn't fully decompile method sendEvent
Couldn't resolve all exception handlers in method sendEvent

I suspect that whatever is making jad report out "overlapped try statements" is confusing
Harmony's verifier.  Its looking like there is an issue with the ranges of the exception blocks?
 I do know from the Eclipse SWT sources that the method in question (in the SWT case) has
a pretty complex finally block.

If desired, I can provide instructions as to how to download then run the version of SWT examples
that fails.  The test above for this bug is probably simpler though...


> [drlvm][verifier] VerifyError: 'Data flow analysis error' is reported for class in AXIS2
server binary distribution
> -------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3720
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3720
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Ilya Neverov
>         Attachments: VerifyErrorInAxis2.zip
>
>
> Recent Harmony builds (at least on ia32 platforms) failed to start AXIS2 server - see
the logs below. This bug prevents AXIS2 test scenario [HARMONY-3538] from executing the server
part on the Harmony.
> The AXIS2 distribution was d/loaded from the Apache mirror site - http://apache.rinet.ru/dist/ws/axis2/1_1_1/axis2-1.1.1.zip.

> I prepared small reproducer class with loads the AXIS2 class and gets the same error.

> =============== Server start
> Apr 21, 2007 9:42:29 PM org.apache.axis2.transport.SimpleAxis2Server main
> SEVERE: [SimpleAxisServer] Shutting down. Error starting SimpleAxisServer
> Throwable occurred: java.lang.VerifyError: (class: edu/emory/mathcs/backport/java/util/concurrent/AbstractExecutorService,
method: doInvokeAny(Ljava/util/Collection;ZJ)Ljava/lang/Object;) Data flow analysis error
>         at java.lang.ClassLoader.defineClass0(ClassLoader.java)
>         at java.lang.ClassLoader.defineClass(ClassLoader.java:417)
>         at java.security.SecureClassLoader.defineClass(Unknown Source)
>         at java.net.URLClassLoader.findClassImpl(Unknown Source)
>         at java.net.URLClassLoader$4.run(Unknown Source)
>         at java.net.URLClassLoader$4.run(Unknown Source)
>         at java.security.AccessController.doPrivilegedImpl(AccessController.java)
>         at java.security.AccessController.doPrivileged(AccessController.java:64)
>         at java.net.URLClassLoader.findClass(Unknown Source)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java)
>         at java.lang.ClassLoader$SystemClassLoader.loadClass(ClassLoader.java:941)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java)
>         at java.lang.ClassLoader.defineClass0(ClassLoader.java)
>         at java.lang.ClassLoader.defineClass(ClassLoader.java:417)
>         at java.security.SecureClassLoader.defineClass(Unknown Source)
>         at java.net.URLClassLoader.findClassImpl(Unknown Source)
>         at java.net.URLClassLoader$4.run(Unknown Source)
>         at java.net.URLClassLoader$4.run(Unknown Source)
>         at java.security.AccessController.doPrivilegedImpl(AccessController.java)
>         at java.security.AccessController.doPrivileged(AccessController.java:64)
>         at java.net.URLClassLoader.findClass(Unknown Source)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java)
>         at java.lang.ClassLoader$SystemClassLoader.loadClass(ClassLoader.java:941)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java)
>         at org.apache.axis2.transport.http.server.SimpleHttpServer.init(SimpleHttpServer.java)
>         at org.apache.axis2.transport.http.SimpleHTTPServer.start(SimpleHTTPServer.java)
>         at org.apache.axis2.engine.ListenerManager.start(ListenerManager.java)
>         at org.apache.axis2.transport.SimpleAxis2Server.main(Unknown Source)
> =============== Reproducer start
> > /usr/jrockit-1.5.0/bin/java -cp .  verify.LoadAbstractExecutorService          
                                                   
> java.lang.NoClassDefFoundError: edu/emory/mathcs/backport/java/util/concurrent/CancellationException
> > hdk/trunk/target/hdk/jdk/jre/bin/java -cp .  verify.LoadAbstractExecutorService
       
> Uncaught exception in main:
> java.lang.VerifyError: (class: edu/emory/mathcs/backport/java/util/concurrent/AbstractExecutorService,
method: doInvokeAny(Ljava/util/Collection;ZJ)Ljava/lang/Object;) Data flow analysis error
>         at java.lang.ClassLoader.defineClass0(ClassLoader.java)
>         at java.lang.ClassLoader.defineClass(ClassLoader.java:417)
>         at java.security.SecureClassLoader.defineClass(Unknown Source)
>         at java.net.URLClassLoader.findClassImpl(Unknown Source)
>         at java.net.URLClassLoader$4.run(Unknown Source)
>         at java.net.URLClassLoader$4.run(Unknown Source)
>         at java.security.AccessController.doPrivilegedImpl(AccessController.java)
>         at java.security.AccessController.doPrivileged(AccessController.java:64)
>         at java.net.URLClassLoader.findClass(Unknown Source)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java)
>         at java.lang.ClassLoader$SystemClassLoader.loadClass(ClassLoader.java:941)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java)
>         at java.lang.ClassLoader.defineClass0(ClassLoader.java)
>         at java.lang.ClassLoader.defineClass(ClassLoader.java:417)
>         at java.security.SecureClassLoader.defineClass(Unknown Source)
>         at java.net.URLClassLoader.findClassImpl(Unknown Source)
>         at java.net.URLClassLoader$4.run(Unknown Source)
>         at java.net.URLClassLoader$4.run(Unknown Source)
>         at java.security.AccessController.doPrivilegedImpl(AccessController.java)
>         at java.security.AccessController.doPrivileged(AccessController.java:64)
>         at java.net.URLClassLoader.findClass(Unknown Source)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java)
>         at java.lang.ClassLoader$SystemClassLoader.loadClass(ClassLoader.java:941)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java)
> FAILED to invoke JVM.
> > hdk/trunk/target/hdk/jdk/jre/bin/java -version
> 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 = r531111, (Apr 22 2007), Linux/ia32/gcc 4.1.0, release build
> http://incubator.apache.org/harmony

-- 
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