Flink compiles correctly using java 8 as long as you leave java 1.7 source
and target in the maven java compiler.
If you change them to 1.8 flink-core doesn't compile anymore.

On Thu, Feb 4, 2016 at 4:23 PM, Maximilian Michels <m...@apache.org> wrote:

> Hi Flavio,
>
> To address your points:
>
> 1) It runs. That's fine.
> 2) It doesn't work to run a Java 8 compiled Flink job with Java 7
> Flink cluster if you use Java 8 non-backwards-compatible features in
> your job.
> 3) I compile Flink daily with Java 8. Also, we have Travis CI tests
> which uses OpenJDK and OracaleJDK 7/8 to compile.
>
> I think there is something wrong with the configuration of your build
> setup.
>
> Cheers,
> Max
>
> On Thu, Feb 4, 2016 at 11:55 AM, Flavio Pompermaier
> <pomperma...@okkam.it> wrote:
> > I've tested several configurations (also changing my compilation to 1.7
> but
> > then sesame 4 was causing the error [1]):
> >
> > Flink compiled with java 1.7 (default), runned within Eclipse with Java
> 8:
> > OK
> > Flink compiled with java 1.7 (default), runned the cluster with java 8:
> not
> > able to run my job compiled with java 1.8 and causing the reported
> exception
> > (unsupported major.minor version)
> > Flink compiled with java 1.8: not able to compile without the reported
> > modifications, but then the job was running fine
> >
> > I don't know if you ever tested all those configurations but I'm sure it
> > wasn't working when deployed in the cluster.
> >
> > [1] http://rdf4j.org/doc/4/release-notes/4.0.0.docbook?view
> >
> > On Thu, Feb 4, 2016 at 11:40 AM, Stephan Ewen <se...@apache.org> wrote:
> >>
> >> Hi!
> >>
> >> I am running Java 8 for a year without an issue. The code is compiled
> for
> >> target Java 7, but can be run with Java 8.
> >> User code that is targeted for Java 8 can be run if Flink is run with
> Java
> >> 8.
> >>
> >> The initial error you got was because you probably compiled with Java 8
> as
> >> the target, and ran it with Java 7.
> >>
> >> I would just leave the target to be 1.7 and run it in a Java 8 JVM. User
> >> code can also be Java 8, that mixes seamlessly.
> >>
> >> Stephan
> >>
> >>
> >> On Thu, Feb 4, 2016 at 11:34 AM, Flavio Pompermaier <
> pomperma...@okkam.it>
> >> wrote:
> >>>
> >>> Anyone looking into this? Java 7 reached its end of life at april 2015
> >>> with its last public update (numer 80) and the ability to run Java 8
> jobs
> >>> would be more and more important in the future. IMHO, the default
> target of
> >>> the maven compiler plugin should be set to 1.8 in the 1.0 release. In
> most
> >>> of the cases this would be backward compatible and if it's not you can
> >>> always recompile it with 1.7 (but as an exception this time).
> >>> Obviously this is not urgent, I just wanted to point this out and
> >>> hopefully help someone else facing the same problem
> >>>
> >>> Best,
> >>> Flavio
> >>>
> >>>
> >>> On Wed, Feb 3, 2016 at 3:40 PM, Flavio Pompermaier <
> pomperma...@okkam.it>
> >>> wrote:
> >>>>
> >>>> I've fixed it changing the copy method in the TupleSerializer as
> follow:
> >>>>
> >>>> @Override
> >>>> public T copy(T from, T reuse) {
> >>>> for (int i = 0; i < arity; i++) {
> >>>> Object copy = fieldSerializers[i].copy(from.getField(i));
> >>>> reuse.setField(copy, i);
> >>>> }
> >>>> return reuse;
> >>>> }
> >>>>
> >>>> And commenting line 50 in CollectionExecutionAccumulatorsTest:
> >>>>
> >>>> assertEquals(NUM_ELEMENTS,
> >>>> result.getAccumulatorResult(ACCUMULATOR_NAME));
> >>>>
> >>>> I hope it helps..
> >>>>
> >>>> On Wed, Feb 3, 2016 at 3:12 PM, Flavio Pompermaier
> >>>> <pomperma...@okkam.it> wrote:
> >>>>>
> >>>>> I've checked the compiled classes with javap -verbose and indeed they
> >>>>> had a major.verion=51 (java 7).
> >>>>> So I've changed the source and target to 1.8 in the main pom.xm and
> now
> >>>>> the generated .class have major.verion=52.
> >>>>> Unfortunately now I get this error:
> >>>>>
> >>>>> [ERROR]
> >>>>>
> /opt/flink-src/flink-java/src/main/java/org/apache/flink/api/java/typeutils/runtime/TupleSerializer.java:[104,63]
> >>>>> incompatible types: void cannot be converted to java.lang.Object
> >>>>>
> >>>>> How can I fix it? I also tried to upgrade the maven compiler to 3.5
> but
> >>>>> it didn't help :(
> >>>>>
> >>>>> Best,
> >>>>> Flavio
> >>>>>
> >>>>> On Wed, Feb 3, 2016 at 2:38 PM, Flavio Pompermaier
> >>>>> <pomperma...@okkam.it> wrote:
> >>>>>>
> >>>>>> Hi to all,
> >>>>>>
> >>>>>> I was trying to make my Java 8 application to run on a Flink 0.10.1
> >>>>>> cluster.
> >>>>>> I've compiled both Flink sources and my app with the same Java
> version
> >>>>>> (1.8.72) and I've set the env.java.home to point to my java 8 JVM
> in every
> >>>>>> flink-conf.yml of the cluster.
> >>>>>>
> >>>>>> I always get the following Exception:
> >>>>>>
> >>>>>> java.lang.UnsupportedClassVersionError: XXX: Unsupported major.minor
> >>>>>> version 52.0
> >>>>>>
> >>>>>> Is there any other setting I forgot to check? Do I have to change
> also
> >>>>>> the source and target to 1.8 in the maven compiler settings of the
> main pom?
> >>>>>>
> >>>>>> Best,
> >>>>>> Flavio
> >>>>>
> >>>>>
> >>>>>
> >>>>
> >>
> >
> >
>

Reply via email to