-----Original Message-----
From: Uwe Schindler [mailto:[email protected]]
Sent: Tuesday, March 24, 2015 2:39 PM
To: 'dalibor topic'; [email protected]; 'Balchandra Vaidya'; 'Rory
O'Donnell'
Cc: [email protected]
Subject: RE: [JENKINS] Lucene-Solr-5.x-Linux (32bit/jdk1.9.0-ea-b54)
- Build #
11848 - Failure!
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: [email protected]
-----Original Message-----
From: dalibor topic [mailto:[email protected]]
Sent: Tuesday, March 24, 2015 2:16 PM
To: Uwe Schindler; [email protected]; 'Balchandra Vaidya'; 'Rory
O'Donnell'
Cc: [email protected]
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/Iterato
rs .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: [email protected]
-----Original Message-----
From: Uwe Schindler [mailto:[email protected]]
Sent: Tuesday, March 24, 2015 10:05 AM
To: 'Balchandra Vaidya'; 'Rory O'Donnell'; [email protected]
Cc: 'Dalibor Topic'; [email protected]
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: [email protected]
-----Original Message-----
From: Balchandra Vaidya [mailto:[email protected]]
Sent: Tuesday, March 24, 2015 8:27 AM
To: Uwe Schindler; 'Rory O'Donnell'; [email protected]
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: [email protected]
-----Original Message-----
From: Rory O'Donnell [mailto:[email protected]]
Sent: Friday, March 20, 2015 10:00 AM
To: Uwe Schindler; [email protected]
Cc: [email protected]; '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: [email protected]
-----Original Message-----
From: Rory O'Donnell [mailto:[email protected]]
Sent: Thursday, March 19, 2015 4:12 PM
To: Uwe Schindler; [email protected]
Cc: [email protected]; 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: [email protected]
-----Original Message-----
From: Policeman Jenkins Server [mailto:[email protected]]
Sent: Thursday, March 19, 2015 1:15 PM
To: [email protected]
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: [email protected]
For additional commands, e-mail: [email protected]
--
Rgds,Rory O'Donnell
Quality Engineering Manager
Oracle EMEA , Dublin, Ireland
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected] For
additional commands, e-mail: [email protected]
--
<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