Exactly, Timo opened the thread.

On Tue, Aug 18, 2015 at 2:04 PM, Kristoffer Sjögren <sto...@gmail.com>
wrote:

> Yeah, I think I found the thread already... by Timo Walther?
>
> On Tue, Aug 18, 2015 at 2:01 PM, Stephan Ewen <se...@apache.org> wrote:
> > Would have been great. I had high hopes when I saw the trick with the
> > "constant pool", but this is only to make what Flink does already
> applicable
> > to non-serializable lambdas.
> >
> > If you want to help us with this, I'll ping you for some support on the
> > OpenJDK mailing list ;-)
> >
> > On Tue, Aug 18, 2015 at 1:59 PM, Kristoffer Sjögren <sto...@gmail.com>
> > wrote:
> >>
> >> I suspected that you already had looked into this, but it was worth a
> >> try. It would make everything so much easier.
> >>
> >> Thanks for the explanation :-)
> >>
> >>
> >> On Tue, Aug 18, 2015 at 1:50 PM, Stephan Ewen <se...@apache.org> wrote:
> >> > Hi Kristoffer!
> >> >
> >> > I looked through the code as well. In fact, Flink currently uses the
> >> > trick
> >> > mentioned for Serializable Lambdas in the gist you sent me.
> >> >
> >> > This works well for lambdas that return simple types (primitives or
> >> > classes
> >> > without generics). The information for the generic parametrization is
> >> > unfortunately really erased, it is in no signature or anything.
> >> >
> >> > Java has the concept of "generic method signatures", which means that
> a
> >> > method gets a signature string that includes the generic types. These
> >> > signatures are generated for regular functions, but OpenJDK and
> >> > OracleJDK do
> >> > not generate them for synthetic methods (like lambdas).
> >> >
> >> > We tried to submit a patch to OpenJDK to add these generic signatures
> to
> >> > lambda methods, but they did not like the fact that we try to figure
> out
> >> > the
> >> > generic types of lambdas. I hope they change their minds at some
> >> > point...
> >> >
> >> > Stephan
> >> >
> >> >
> >> >
> >> >
> >> > On Tue, Aug 18, 2015 at 11:46 AM, Aljoscha Krettek <
> aljos...@apache.org>
> >> > wrote:
> >> >>
> >> >> Unfortunately, this also doesn't work for the same reasons. The
> generic
> >> >> types of generic parameters of a lambda are not stored anywhere.
> >> >> Stephan
> >> >> mentioned to me that the only possibility right now would be to look
> at
> >> >> the
> >> >> code using something like ASM to find a cast in the code to the
> >> >> concrete
> >> >> type of the generic parameter.
> >> >>
> >> >> On Tue, 18 Aug 2015 at 11:35 Kristoffer Sjögren <sto...@gmail.com>
> >> >> wrote:
> >> >>>
> >> >>> How about https://github.com/jhalterman/typetools?
> >> >>>
> >> >>> On Tue, Aug 18, 2015 at 11:16 AM, Aljoscha Krettek
> >> >>> <aljos...@apache.org>
> >> >>> wrote:
> >> >>> > Hi Kristoffer,
> >> >>> > I'm afraid not, but maybe Timo has some further information. In
> this
> >> >>> > extended example we can see the problem:
> >> >>> > https://gist.github.com/aljoscha/84cc363d13cf1dfe9364. The output
> >> >>> > is:
> >> >>> >
> >> >>> > Type is: class
> >> >>> > org.apache.flink.examples.java8.wordcount.TypeTest$Thing
> >> >>> > class org.apache.flink.examples.java8.wordcount.TypeTest$Thing
> >> >>> > Type is: class
> >> >>> > org.apache.flink.examples.java8.wordcount.TypeTest$Thing
> >> >>> > class org.apache.flink.examples.java8.wordcount.TypeTest$Thing
> >> >>> > Type is :
> >> >>> >
> >> >>> >
> >> >>> >
> org.apache.flink.examples.java8.wordcount.TypeTest.org.apache.flink.examples.java8.wordcount.TypeTest$Thing<java.lang.String>
> >> >>> > class org.apache.flink.examples.java8.wordcount.TypeTest$Thing
> >> >>> >
> >> >>> > So with the two lambda calls it does not correctly determine the
> >> >>> > generic
> >> >>> > parameter of Thing while it works with the anonymous class.
> >> >>> >
> >> >>> > I was exited when I saw the example because we've been trying for
> so
> >> >>> > long to
> >> >>> > get this to work. Maybe we have to wait for java 19 to get this to
> >> >>> > work. ;-)
> >> >>> >
> >> >>> > Thanks a lot for helping, though. :D
> >> >>> > Aljoscha
> >> >>> >
> >> >>> > On Tue, 18 Aug 2015 at 11:01 Kristoffer Sjögren <sto...@gmail.com
> >
> >> >>> > wrote:
> >> >>> >>
> >> >>> >> Hi
> >> >>> >>
> >> >>> >> Potential fix for writing flink jobs using lamdas without Eclipse
> >> >>> >> JDT?
> >> >>> >>
> >> >>> >> https://gist.github.com/aslakhellesoy/3678beba60c109eacbe5
> >> >>> >>
> >> >>> >> Cheers,
> >> >>> >> -Kristoffer
> >> >
> >> >
> >
> >
>

Reply via email to