[libvirt] [PATCH libvirt-java] Require at least Java 8
claudio.bley at gmail.com
Fri Sep 4 05:12:44 UTC 2015
At Wed, 2 Sep 2015 17:38:03 +0200,
Wido den Hollander wrote:
> > The current code doesn't compile under Java 7, but Java 7 is also EOL.
> > That should not be the case. Can you provide the error messages or
> > simply point to the place where Java 8 classes are used?
> [javac] Compiling 98 source files to
> [javac] warning: [options] bootstrap class path not set in
> conjunction with -source 1.7
> error: incompatible types: inference variable T#1 has incompatible upper
> bounds Enum<T#2>,T#3
> [javac] return this.type.obtain(this.detail);
> [javac] ^
> [javac] where T#1,T#2,T#3 are type-variables:
> [javac] T#1 extends Enum<T#1> declared in method <T#1>obtain(int)
> [javac] T#2 extends T#3
> [javac] T#3 extends Enum<T#3>,DomainEventDetail declared in
> method <T#3>getDetail()
> [javac] 1 error
> [javac] 1 warning
This reminded me of a problem I once saw with the Java 7 (I think)
compiler being unable to correctly infer the types when calling static
Since I always used the Java 7 compiler to compile the code and as I
saw the javac warning above, I got curious.
The thing is: the code compiles just fine with an actual Java 7
compiler (OpenJDK 1.7.0_85), but not when using a Java 8 compiler
(OpenJDK 1.8.0_60) with the `-source 1.7` switch.
> But if the compile issue can be fixed we can probably require at least
> Java 7. I think Java 6 is dangerous.
I'm still thinking about this. Maybe you're right. But still, the code
is valid 1.7 source code. Should we prevent that code from compiling
on Java 7 to protect users from using an obsolete JVM? I don't think
this is the right place to control that.
More information about the libvir-list