Hi,

I can file another bug, but the behavior and error pattern is exactly the same, 
it is just a static method instead of the constructor (which is mostly the same 
by the JLS, a constructor is just like a static method returning an instance). 
So I am almost 100% sure, this is caused by the exact same commit.

I also simplified the code to be as simple as the other one. I found out that 
Collections.unmodifiableCollection(...) is affected by this, so simplest 
reproduce code is:

import java.util.*;

class Bug2 {
  // this causes the bug -> type is inferred by parameter not left side 
assignment
  static <V> void bug(Collection<? extends V> collection) {
    Collection<V> c1 = Collections.unmodifiableCollection(collection);
    // workaround that compiles:
    Collection<V> c2 = Collections.<V>unmodifiableCollection(collection);
  }
}

So it's up to you to decide, if it is really a new bug. Maybe we should leave 
the decision to the JDK developer who caused the regression to find out if it’s 
a duplicate or not.

Uwe

-----
Uwe Schindler
H.-H.-Meier-Allee 63, D-28213 Bremen
http://www.thetaphi.de
eMail: u...@thetaphi.de


> -----Original Message-----
> From: dalibor topic [mailto:dalibor.to...@oracle.com]
> Sent: Tuesday, March 24, 2015 2:16 PM
> To: Uwe Schindler; dev@lucene.apache.org; 'Balchandra Vaidya'; 'Rory
> O'Donnell'
> Cc: rcm...@gmail.com
> Subject: Re: [JENKINS] Lucene-Solr-5.x-Linux (32bit/jdk1.9.0-ea-b54) - Build #
> 11848 - Failure!
> 
> I think this one should be filed as a separate issue.
> 
> On 24.03.2015 14:07, Uwe Schindler wrote:
> > Hi,
> >
> > could you please attach the given Bug2.java file to the same issue? This is
> another variant of the same bug that affects simple method calls (without
> diamond), so it is not only the constructor with diamond affected. You have
> to infer the type for those "wrapper" methods, too.
> >
> > The following code does not compile with -source/target 1.7:
> >
> > import java.util.*;
> >
> > class Bug2 {
> >    /* This method just emulates the common Google Guava/Guice pattern
> to wrap collections, e.g.
> >     * <http://docs.guava-
> libraries.googlecode.com/git/javadoc/com/google/common/collect/Iterators
> .html#peekingIterator(java.util.Iterator)>
> >     */
> >    static <V> Set<V> asSet(Collection<? extends V> collection) {
> >      return new HashSet<V>(collection);
> >    }
> >
> >    // this causes the bug -> type is inferred by parameter not left side
> assignment
> >    static <V> void bug(Collection<? extends V> collection) {
> >      Set<V> set1 = Bug2.asSet(collection);
> >      // workaround that compiles:
> >      Set<V> set2 = Bug2.<V>asSet(collection);
> >    }
> > }
> >
> > $ javac -source 1.7 -target 1.7 Bug2.java
> > warning: [options] bootstrap class path not set in conjunction with
> > -source 1.7
> > Bug2.java:12: error: incompatible types: Set<CAP#1> cannot be converted
> to Set<V>
> >      Set<V> set = Bug2.asSet(collection);
> >                             ^
> >    where V is a type-variable:
> >      V extends Object declared in method <V>bug(Collection<? extends V>)
> >    where CAP#1 is a fresh type-variable:
> >      CAP#1 extends V from capture of ? extends V
> > 1 error
> > 1 warning
> >
> > This type was discovered by the elasticsearch people, who use a lot of code
> of Google Guava/Guice that has a lot of static methods that wrap collections
> and return views of a different type.
> > Usage of most of the Methods in e.g. com.google.common.collect.Iterators
> or com.google.common.collect.Lists and similars are affected by this bug, so
> it's really serious!
> >
> > To work around the bug you can do whats written in the example code:
> Just infer the generics using the <T> between static class name and method
> name [like the common pattern Arrays.<String>asList (....)].
> >
> > -----
> > Uwe Schindler
> > H.-H.-Meier-Allee 63, D-28213 Bremen
> > http://www.thetaphi.de
> > eMail: u...@thetaphi.de
> >
> >
> >> -----Original Message-----
> >> From: Uwe Schindler [mailto:u...@thetaphi.de]
> >> Sent: Tuesday, March 24, 2015 10:05 AM
> >> To: 'Balchandra Vaidya'; 'Rory O'Donnell'; dev@lucene.apache.org
> >> Cc: 'Dalibor Topic'; rcm...@gmail.com
> >> Subject: RE: [JENKINS] Lucene-Solr-5.x-Linux (32bit/jdk1.9.0-ea-b54)
> >> - Build #
> >> 11848 - Failure!
> >>
> >> Hi,
> >>
> >> Many thanks! I CCed Robert Muir from Elasticsearch who took care of
> >> this at ES (https://github.com/elastic/elasticsearch/issues/10145).
> >>
> >> Uwe
> >>
> >> -----
> >> Uwe Schindler
> >> H.-H.-Meier-Allee 63, D-28213 Bremen
> >> http://www.thetaphi.de
> >> eMail: u...@thetaphi.de
> >>
> >>
> >>> -----Original Message-----
> >>> From: Balchandra Vaidya [mailto:balchandra.vai...@oracle.com]
> >>> Sent: Tuesday, March 24, 2015 8:27 AM
> >>> To: Uwe Schindler; 'Rory O'Donnell'; dev@lucene.apache.org
> >>> Cc: 'Dalibor Topic'
> >>> Subject: Re: [JENKINS] Lucene-Solr-5.x-Linux (32bit/jdk1.9.0-ea-b54)
> >>> - Build #
> >>> 11848 - Failure!
> >>>
> >>>
> >>> Hi Uwe,
> >>>
> >>> JBS bug id is https://bugs.openjdk.java.net/browse/JDK-8075793
> >>>
> >>> Thanks
> >>> Balchandra
> >>>
> >>> On 3/24/2015 5:57 AM, Uwe Schindler wrote:
> >>>> Hi Rory,
> >>>>
> >>>> do you have an update on this bug?  Searched for it in the openjdk
> >>> bugtracker but did not find it. This also affects lots of code from
> >>> Google Guava / Guice and because of that also our friends at
> Elasticsearch.
> >>>>
> >>>> Uwe
> >>>>
> >>>> -----
> >>>> Uwe Schindler
> >>>> H.-H.-Meier-Allee 63, D-28213 Bremen http://www.thetaphi.de
> >>>> eMail: u...@thetaphi.de
> >>>>
> >>>>
> >>>>> -----Original Message-----
> >>>>> From: Rory O'Donnell [mailto:rory.odonn...@oracle.com]
> >>>>> Sent: Friday, March 20, 2015 10:00 AM
> >>>>> To: Uwe Schindler; dev@lucene.apache.org
> >>>>> Cc: rory.odonn...@oracle.com; 'Dalibor Topic'; 'Balchandra Vaidya'
> >>>>> Subject: Re: [JENKINS] Lucene-Solr-5.x-Linux
> >>>>> (32bit/jdk1.9.0-ea-b54)
> >>>>> - Build #
> >>>>> 11848 - Failure!
> >>>>>
> >>>>> Thanks Uwe, we will update you with the bug id .
> >>>>>
> >>>>> Rgds,Rory
> >>>>> On 19/03/2015 16:28, Uwe Schindler wrote:
> >>>>>> Hi,
> >>>>>>
> >>>>>> I opened Review ID: JI-9019884 "Java 9 b54 breaks compiling code
> >>>>>> with
> >>>>> source/target 1.7 and diamond operator"
> >>>>>> Uwe
> >>>>>>
> >>>>>> -----
> >>>>>> Uwe Schindler
> >>>>>> H.-H.-Meier-Allee 63, D-28213 Bremen http://www.thetaphi.de
> >>>>>> eMail: u...@thetaphi.de
> >>>>>>
> >>>>>>
> >>>>>>> -----Original Message-----
> >>>>>>> From: Rory O'Donnell [mailto:rory.odonn...@oracle.com]
> >>>>>>> Sent: Thursday, March 19, 2015 4:12 PM
> >>>>>>> To: Uwe Schindler; dev@lucene.apache.org
> >>>>>>> Cc: rory.odonn...@oracle.com; Dalibor Topic; Balchandra Vaidya
> >>>>>>> Subject: Re: [JENKINS] Lucene-Solr-5.x-Linux
> >>>>>>> (32bit/jdk1.9.0-ea-b54)
> >>>>>>> - Build #
> >>>>>>> 11848 - Failure!
> >>>>>>>
> >>>>>>>
> >>>>>>> On 19/03/2015 14:30, Uwe Schindler wrote:
> >>>>>>>> Hi,
> >>>>>>>>
> >>>>>>>> this seems to be a bug (or feature?) in the most recent Java 9
> >>>>>>>> build
> >> 54:
> >>>>>>>>
> >>>>>>>> compile-core:
> >>>>>>>>         [mkdir] Created dir:
> >>>>>>>> /home/jenkins/workspace/Lucene-Solr-5.x-
> >>>>>>> Linux/lucene/build/analysis/common/classes/java
> >>>>>>>>         [javac] Compiling 461 source files to
> >>>>>>>> /home/jenkins/workspace/Lucene-
> >>>>>>> Solr-5.x-Linux/lucene/build/analysis/common/classes/java
> >>>>>>>>         [javac] /home/jenkins/workspace/Lucene-Solr-5.x-
> >>>>>>>
> >>>
> Linux/lucene/analysis/common/src/java/org/apache/lucene/analysis/uti
> >>> l
> >>>>>>> /Ch
> >>>>>>> arArrayMap.java:568: error: incompatible types:
> >>> CharArrayMap<CAP#1>
> >>>>>>> cannot be converted to CharArrayMap<V>
> >>>>>>>>         [javac]     return new CharArrayMap<>(map, false);
> >>>>>>>>         [javac]            ^
> >>>>>>>>         [javac]   where V is a type-variable:
> >>>>>>>>         [javac]     V extends Object declared in method
> >> <V>copy(Map<?,?
> >>>>>>> extends V>)
> >>>>>>>>         [javac]   where CAP#1 is a fresh type-variable:
> >>>>>>>>         [javac]     CAP#1 extends V from capture of ? extends V
> >>>>>>>>
> >>>>>>>> This is the code:
> >>>>>>>>
> >>>>>>>>       @SuppressWarnings("unchecked")
> >>>>>>>>       public static <V> CharArrayMap<V> copy(final Map<?,?
> >>>>>>>> extends
> >> V>
> >>>>>>>> map)
> >>>>>>> {
> >>>>>>>>         if(map == EMPTY_MAP)
> >>>>>>>>           return emptyMap();
> >>>>>>>>         if(map instanceof CharArrayMap) {
> >>>>>>>>           CharArrayMap<V> m = (CharArrayMap<V>) map;
> >>>>>>>>           // use fast path instead of iterating all values
> >>>>>>>>           // this is even on very small sets ~10 times faster than
> iterating
> >>>>>>>>           final char[][] keys = new char[m.keys.length][];
> >>>>>>>>           System.arraycopy(m.keys, 0, keys, 0, keys.length);
> >>>>>>>>           final V[] values = (V[]) new Object[m.values.length];
> >>>>>>>>           System.arraycopy(m.values, 0, values, 0, values.length);
> >>>>>>>>           m = new CharArrayMap<>(m);
> >>>>>>>>           m.keys = keys;
> >>>>>>>>           m.values = values;
> >>>>>>>>           return m;
> >>>>>>>>         }
> >>>>>>>>         return new CharArrayMap<>(map, false);
> >>>>>>>>       }
> >>>>>>>>
> >>>>>>>> At least this breaks compiling existing code. Rory, should I
> >>>>>>>> open a bug
> >>>>>>> report with an example code?
> >>>>>>> Hi Uwe,
> >>>>>>>
> >>>>>>> Please do log a bug.
> >>>>>>>
> >>>>>>> Rgds,Rory
> >>>>>>>> Uwe
> >>>>>>>>
> >>>>>>>> -----
> >>>>>>>> Uwe Schindler
> >>>>>>>> H.-H.-Meier-Allee 63, D-28213 Bremen http://www.thetaphi.de
> >>>>>>>> eMail: u...@thetaphi.de
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>> -----Original Message-----
> >>>>>>>>> From: Policeman Jenkins Server [mailto:jenk...@thetaphi.de]
> >>>>>>>>> Sent: Thursday, March 19, 2015 1:15 PM
> >>>>>>>>> To: dev@lucene.apache.org
> >>>>>>>>> Subject: [JENKINS] Lucene-Solr-5.x-Linux
> >>>>>>>>> (32bit/jdk1.9.0-ea-b54) - Build #
> >>>>>>>>> 11848 - Failure!
> >>>>>>>>>
> >>>>>>>>> Build: http://jenkins.thetaphi.de/job/Lucene-Solr-5.x-
> >> Linux/11848/
> >>>>>>>>> Java: 32bit/jdk1.9.0-ea-b54 -server -XX:+UseConcMarkSweepGC
> >>>>>>>>>
> >>>>>>>>> All tests passed
> >>>>>>>>>
> >>>>>>>>> Build Log:
> >>>>>>>>> [...truncated 1899 lines...]
> >>>>>>>>>         [javac] Compiling 461 source files to
> >>>>>>>>> /home/jenkins/workspace/Lucene- Solr-5.x-
> >>>>>>> Linux/lucene/build/analysis/common/classes/java
> >>>>>>>>>         [javac] /home/jenkins/workspace/Lucene-Solr-5.x-
> >>>>>>>>>
> >>>>>
> >> Linux/lucene/analysis/common/src/java/org/apache/lucene/analysis/util
> >>>>>>>>> /Ch
> >>>>>>>>> arArrayMap.java:568: error: incompatible types:
> >>>>> CharArrayMap<CAP#1>
> >>>>>>>>> cannot be converted to CharArrayMap<V>
> >>>>>>>>>         [javac]     return new CharArrayMap<>(map, false);
> >>>>>>>>>         [javac]            ^
> >>>>>>>>>         [javac]   where V is a type-variable:
> >>>>>>>>>         [javac]     V extends Object declared in method
> >>> <V>copy(Map<?,?
> >>>>>>> extends
> >>>>>>>>> V>)
> >>>>>>>>>         [javac]   where CAP#1 is a fresh type-variable:
> >>>>>>>>>         [javac]     CAP#1 extends V from capture of ? extends V
> >>>>>>>>>         [javac] /home/jenkins/workspace/Lucene-Solr-5.x-
> >>>>>>>>>
> >>>>>
> >>>
> Linux/lucene/analysis/common/src/java/org/apache/lucene/analysis/hun
> >>> s
> >>>>>>>>> p
> >>>>>>>>> ell/Stemmer.java:270: warning: [rawtypes] found raw type: Arc
> >>>>>>>>>         [javac]   final FST.Arc<IntsRef> prefixArcs[] = new 
> >>>>>>>>> FST.Arc[3];
> >>>>>>>>>         [javac]                                                ^
> >>>>>>>>>         [javac]   missing type arguments for generic class Arc<T>
> >>>>>>>>>         [javac]   where T is a type-variable:
> >>>>>>>>>         [javac]     T extends Object declared in class Arc
> >>>>>>>>>         [javac] /home/jenkins/workspace/Lucene-Solr-5.x-
> >>>>>>>>>
> >>>>>
> >>>
> Linux/lucene/analysis/common/src/java/org/apache/lucene/analysis/hun
> >>> s
> >>>>>>>>> p
> >>>>>>>>> ell/Stemmer.java:274: warning: [rawtypes] found raw type: Arc
> >>>>>>>>>         [javac]   final FST.Arc<IntsRef> suffixArcs[] = new 
> >>>>>>>>> FST.Arc[3];
> >>>>>>>>>         [javac]                                                ^
> >>>>>>>>>         [javac]   missing type arguments for generic class Arc<T>
> >>>>>>>>>         [javac]   where T is a type-variable:
> >>>>>>>>>         [javac]     T extends Object declared in class Arc
> >>>>>>>>>         [javac] /home/jenkins/workspace/Lucene-Solr-5.x-
> >>>>>>>>>
> >>>>>
> >>>
> >>
> Linux/lucene/analysis/common/src/java/org/tartarus/snowball/Among.java:
> >>>>>>>>> 46: warning: [rawtypes] found raw type: Class
> >>>>>>>>>         [javac]   private static final Class<?>[] EMPTY_PARAMS = new
> >>>>> Class[0];
> >>>>>>>>>         [javac]                                                     
> >>>>>>>>>  ^
> >>>>>>>>>         [javac]   missing type arguments for generic class Class<T>
> >>>>>>>>>         [javac]   where T is a type-variable:
> >>>>>>>>>         [javac]     T extends Object declared in class Class
> >>>>>>>>>         [javac] Note: Some input files use or override a
> >>>>>>>>> deprecated
> >> API.
> >>>>>>>>>         [javac] Note: Recompile with -Xlint:deprecation for details.
> >>>>>>>>>         [javac] 1 error
> >>>>>>>>>
> >>>>>>>>> [...truncated 1 lines...]
> >>>>>>>>> BUILD FAILED
> >>>>>>>>> /home/jenkins/workspace/Lucene-Solr-5.x-Linux/build.xml:529:
> >> The
> >>>>>>>>> following error occurred while executing this line:
> >>>>>>>>> /home/jenkins/workspace/Lucene-Solr-5.x-Linux/build.xml:477:
> >> The
> >>>>>>>>> following error occurred while executing this line:
> >>>>>>>>> /home/jenkins/workspace/Lucene-Solr-5.x-Linux/build.xml:61:
> >> The
> >>>>>>>>> following error occurred while executing this line:
> >>>>>>>>> /home/jenkins/workspace/Lucene-Solr-5.x-Linux/extra-
> >>>>> targets.xml:39:
> >>>>>>>>> The following error occurred while executing this line:
> >>>>>>>>> /home/jenkins/workspace/Lucene-Solr-5.x-
> >>>>> Linux/lucene/build.xml:456:
> >>>>>>>>> The following error occurred while executing this line:
> >>>>>>>>> /home/jenkins/workspace/Lucene-Solr-5.x-
> >> Linux/lucene/common-
> >>>>>>>>> build.xml:2166: The following error occurred while executing
> >>>>>>>>> this
> >>> line:
> >>>>>>>>> /home/jenkins/workspace/Lucene-Solr-5.x-
> >>>>>>>>> Linux/lucene/analysis/build.xml:106: The following error
> >>>>>>>>> occurred while executing this line:
> >>>>>>>>> /home/jenkins/workspace/Lucene-Solr-5.x-
> >>>>>>>>> Linux/lucene/analysis/build.xml:38: The following error
> >>>>>>>>> occurred while executing this line:
> >>>>>>>>> /home/jenkins/workspace/Lucene-Solr-5.x-
> Linux/lucene/module-
> >>>>>>>>> build.xml:58: The following error occurred while executing this
> line:
> >>>>>>>>> /home/jenkins/workspace/Lucene-Solr-5.x-
> Linux/lucene/module-
> >>>>>>>>> build.xml:55: The following error occurred while executing this
> line:
> >>>>>>>>> /home/jenkins/workspace/Lucene-Solr-5.x-
> >> Linux/lucene/common-
> >>>>>>>>> build.xml:520: The following error occurred while executing
> >>>>>>>>> this
> >> line:
> >>>>>>>>> /home/jenkins/workspace/Lucene-Solr-5.x-
> >> Linux/lucene/common-
> >>>>>>>>> build.xml:1882: Compile failed; see the compiler error output
> >>>>>>>>> for
> >>>>> details.
> >>>>>>>>> Total time: 15 minutes 25 seconds Build step 'Invoke Ant'
> >>>>>>>>> marked build as failure [description-setter] Description set:
> >>>>>>>>> Java: 32bit/jdk1.9.0-ea-b54 -server -
> XX:+UseConcMarkSweepGC
> >>>>>>>>> Archiving artifacts Recording test
> >>> results
> >>>>>>>>> Email was triggered for: Failure - Any Sending email for trigger:
> >>>>>>>>> Failure - Any
> >>>>>>>>>
> >>>>>>> --
> >>>>>>> Rgds,Rory O'Donnell
> >>>>>>> Quality Engineering Manager
> >>>>>>> Oracle EMEA , Dublin, Ireland
> >>>>>>>
> >>>>>>>
> >>>>>>> ----------------------------------------------------------------
> >>>>>>> ----- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
> >>>>>>> For additional commands, e-mail: dev-h...@lucene.apache.org
> >>>>> --
> >>>>> Rgds,Rory O'Donnell
> >>>>> Quality Engineering Manager
> >>>>> Oracle EMEA , Dublin, Ireland
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For
> >> additional commands, e-mail: dev-h...@lucene.apache.org
> 
> --
> <http://www.oracle.com> Dalibor Topic | Principal Product Manager
> Phone: +494089091214 <tel:+494089091214> | Mobile: +491737185961
> <tel:+491737185961>
> 
> ORACLE Deutschland B.V. & Co. KG | Kühnehöfe 5 | 22761 Hamburg
> 
> ORACLE Deutschland B.V. & Co. KG
> Hauptverwaltung: Riesstr. 25, D-80992 München
> Registergericht: Amtsgericht München, HRA 95603
> Geschäftsführer: Jürgen Kunz
> 
> Komplementärin: ORACLE Deutschland Verwaltung B.V.
> Hertogswetering 163/167, 3543 AS Utrecht, Niederlande Handelsregister der
> Handelskammer Midden-Niederlande, Nr. 30143697
> Geschäftsführer: Alexander van der Ven, Astrid Kepper, Val Maher
> 
> <http://www.oracle.com/commitment> Oracle is committed to developing
> practices and products that help protect the environment

Attachment: Bug2.java
Description: Binary data

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to