On 23/10/2013 14:03, Uwe Schindler wrote:

Thanks Rory for the info!

I am changing the recipients of this mail, so it no longer goes to the private list.

@ dev@lao: FYI, the clone() bug seems to be fixed so we can soon upgrade to JDK8 latest and run tests again.

Uwe - the fix is not yet available, maybe b113 or b114, will let you know when it is.

Rgds,Rory

Uwe

-----

Uwe Schindler

H.-H.-Meier-Allee 63, D-28213 Bremen

http://www.thetaphi.de <http://www.thetaphi.de/>

eMail: u...@thetaphi.de

*From:*Rory O'Donnell [mailto:rory.odonn...@oracle.com]
*Sent:* Wednesday, October 23, 2013 1:08 PM
*To:* rory.odonn...@oracle.com
*Cc:* Uwe Schindler; 'Dawid Weiss'; 'Robert Muir'; 'Dalibor Topic'; 'Donald Smith'; 'Seán Coffey'; 'Balchandra Vaidya'; priv...@lucene.apache.org
*Subject:* Re: Testing Java Updates with your projects.

Hi Uwe,

I noticed https://bugs.openjdk.java.net/browse/JDK-8026394 has moved into fixed state.
Hope to see this included in the near future, will update you.

It is not in b112 <https://jdk8.java.net/download.html> which is not available.

Rgds, Rory

On 18/10/2013 15:51, Rory O'Donnell Oracle, Dublin Ireland wrote:

    Hi Uwe,

    It turns out this is a duplicate of
    https://bugs.openjdk.java.net/browse/JDK-8026394

    Rgds,Rory

    On 18/10/2013 10:09, Rory O'Donnell Oracle, Dublin Ireland wrote:

    Hi Uwe,


    Balchandra has logged a bug for this issue:

    https://bugs.openjdk.java.net/browse/JDK-8026845

    Rgds,Rory

    On 17/10/2013 18:27, Uwe Schindler wrote:

    Hi,

    I was able to reproduce with a simple test case that emulates the
    UIMA code.
    See attached test case, just compile it with any JDK and run with
    b111:

    With Java 7 or JDK8b109:


    javac TestCloneInterface.java
    java TestCloneInterface

    With JDK8b111:


    java TestCloneInterface

    Exception in thread "main" java.lang.IllegalAccessError: tried to
    access method java.lang.Object.clone()Ljava/lang/Object; from
    class TestCloneInterface
             at TestCloneInterface.test(TestCloneInterface.java:15)
             at TestCloneInterface.main(TestCloneInterface.java:19)
    The bug happens if the clone() method is declared in a
    superinterface only. Without the additional interface inbetween,
    test passes.
    Instead of the real interface (the "o" local variable, which is of
    type "FoobarIntf") it checks access flags on "this", which is of
    type "TestCloneInterface".

    Uwe

    -----
    Uwe Schindler
    uschind...@apache.org <mailto:uschind...@apache.org>
    Apache Lucene PMC Chair / Committer
    Bremen, Germany
    http://lucene.apache.org/



    -----Original Message-----
    From: Rory O'Donnell Oracle, Dublin Ireland
    [mailto:rory.odonn...@oracle.com]
    Sent: Thursday, October 17, 2013 7:19 PM
    To: Uwe Schindler
    Cc: 'Dawid Weiss'; 'Robert Muir'; 'Dalibor Topic'; 'Donald Smith';
    'Seán Coffey';
    priv...@lucene.apache.org <mailto:priv...@lucene.apache.org>;
    Balchandra Vaidya
    Subject: Re: Testing Java Updates with your projects.

    Hi Uwe,

    The more info you can provide the better.
    Adding Balchandra to email.

    Rgds,Rory

    On 17/10/2013 17:41, Uwe Schindler wrote:

    Hi Rory,

    we found a new bug in 8 b111, not appearing in Java 7 and Java 8
    b109:
    It seems to be related to one recent commit, reproduces all the time

    (reproduces with bytecode compiled with JDK8b111 and ran with
    JDK8b111,
    but also with bytecode compiled with JDK7 and ran with JDK8b111).
    I am
    trying to understand what's happening, but it looks like the patch
    fails to
    check the access flags of the method on the correct
    instance/type/whatever.

    This is the commit that I  think causes this:
    http://hg.openjdk.java.net/jdk8/jdk8/hotspot/rev/36b97be47bde
    Issue: https://bugs.openjdk.java.net/browse/JDK-8011311

    What happens:
    When running Apache Lucene's UIMA tests (UIMA is foreign code, not
    part

    of Lucene):

        cd lucene/analysis/uima
        ant test

    *All* tests fail here:

    java.lang.IllegalAccessError: tried to access method

    java.lang.Object.clone()Ljava/lang/Object; from class
    org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase

        at

    __randomizedtesting.SeedInfo.seed([BC36C2DC5FC6C107:4A94D14D35381F8
    8]:0)

        at

    org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.initialize(Anal

    ysisEngineImplBase.java:163)

        at

    org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initializ

    e(AggregateAnalysisEngine_impl.java:127)

        at

    org.apache.uima.impl.AnalysisEngineFactory_impl.produceResource(Analysi

    sEngineFactory_impl.java:94)

        at

    org.apache.uima.impl.CompositeResourceFactory_impl.produceResource(C
    ompositeResourceFactory_impl.java:62)

        at

    org.apache.uima.UIMAFramework.produceResource(UIMAFramework.java:
    267)

        at

    org.apache.uima.UIMAFramework.produceAnalysisEngine(UIMAFramework
    .java:335)

        at

    org.apache.lucene.analysis.uima.ae.BasicAEProvider.getAE(BasicAEProvider.j

    ava:73)

        at

    org.apache.lucene.analysis.uima.BaseUIMATokenizer.analyzeInput(BaseUI
    MATokenizer.java:63)

        at

    org.apache.lucene.analysis.uima.UIMAAnnotationsTokenizer.initializeIterato

    r(UIMAAnnotationsTokenizer.java:60)

        at

    org.apache.lucene.analysis.uima.UIMAAnnotationsTokenizer.incrementToke

    n(UIMAAnnotationsTokenizer.java:74)

        at

    org.apache.lucene.index.DocInverterPerField.processFields(DocInverterPerF

    ield.java:98)

        [...]

    Tests pass with previous versions of JDK8. As this is not our
    code, it is hard

    for me to understand (UIMA uses maaaaaaaaaany interfaces...). I
    just found
    out:

    This code fails:

    http://grepcode.com/file/repo1.maven.org/maven2/org.apache.uima/uimaj
    -
    core/2.3.1/org/apache/uima/analysis_engine/impl/AnalysisEngineImplBase


    .java#163

    The interface used here declares clone() correctly and public:

    http://grepcode.com/file/repo1.maven.org/maven2/org.apache.uima/uimaj
    -
    core/2.3.1/org/apache/uima/resource/metadata/MetaDataObject.java#Met
    aD

    ataObject.clone%28%29 To me it looks like the access flag check is
    done on the "this" instance and not on the local variable "md".
    "md" is

    definitely not of type
    org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase like the
    Exception suggests. The class in the Exception for sure does not
    implement
    clone, so it is protected (from Object). It looks like hotspot
    mixes up the call
    stack.

    How should I proceed with opening bug reports? As first step, I
    think I will

    now download Apache UIMA and run their tests. This failure is not
    related to
    Apache Lucene its just a referenced library in one of our modules.

    Uwe

    -----
    Uwe Schindler
    uschind...@apache.org <mailto:uschind...@apache.org>
    Apache Lucene PMC Chair / Committer
    Bremen, Germany
    http://lucene.apache.org/

--
Rgds,
Rory O'Donnell
Senior Quality Engineering Manager
Java Platform Group
Oracle EMEA , Block P5,
East Point Business Park, Dublin 3
Phone: +353 (0)1 8033887

--
Rgds,
Rory O'Donnell

Senior Quality Engineering Manager
Java Platform Group
Oracle EMEA , Block P5,
East Point Business Park, Dublin 3
Phone: +353 (0)1 8033887

Reply via email to