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