SunJDK will correctly infer the reference types, correct? If so, changing this to reference types should make both JDKs happy.
-- Lars ________________________________ From: Alejandro Abdelnur <t...@cloudera.com> To: hdfs-dev@hadoop.apache.org Sent: Friday, June 29, 2012 3:26 PM Subject: Re: Hadoop-2 generics compilation error Andy, It looks like OpenJDK javac does not handle type unboxing with a generic method where the parameter that resolves the generic infers the type to do the un-boxing on. While SunJDK does handle it. Now, to the question which one is correct? I'm not sure but SunJDK does a valid inference. thx On Fri, Jun 29, 2012 at 2:43 PM, Andy Isaacson <a...@cloudera.com> wrote: > I've filed https://issues.apache.org/jira/browse/HDFS-3580 and attached the > patch. > > I'd really appreciate it if someone could explain what the problem is, why > the patch fixes it, and whether this is a bug in OpenJDK (that it does not > accept a valid program) or a bug in Sun JDK (that it does accept an > incorrect program). > > -andy > > On Fri, Jun 29, 2012 at 12:01 PM, Andy Isaacson <a...@cloudera.com> wrote: > >> I ran into this as well, and am prepping a patch. Lars, if you could file >> the Jira explaining why s/boolean/Boolean/ is the right fix, I'll test and >> submit the patch. >> >> -andy >> >> >> On Fri, Jun 29, 2012 at 11:08 AM, Alejandro Abdelnur >> <t...@cloudera.com>wrote: >> >>> This change is from HDFS-3481, the wrong JIRA number is because I made >>> a mistake in the commit message. >>> >>> I can put a patch to fix this, but don't have OpenJDK to test it. It >>> would be better if somebody with OpenJDK takes care of it and I'll >>> review it. >>> >>> Thx >>> >>> On Fri, Jun 29, 2012 at 11:01 AM, Arun C Murthy <a...@hortonworks.com> >>> wrote: >>> > HDFS-3113 is committed? Or, are you running with the patch yourself? >>> > >>> > It's still PA and I see Daryn reviewing it yet... >>> > >>> > Arun >>> > >>> > On Jun 28, 2012, at 10:27 PM, lars hofhansl wrote: >>> > >>> >> Since HDFS-3113 was integrated into Hadoop-2 I get the compilation >>> errors of the following type: >>> >> >>> >> [ERROR] >>> /home/lars/dev/hadoop-2/hadoop-hdfs-project/hadoop-hdfs-httpfs/src/main/java/org/apache/hadoop/fs/http/server/HttpFSServer.java:[407,36] >>> incompatible types; no instance(s) of type variable(s) V exist so that V >>> conforms to boolean >>> >> >>> >> >>> >> Indeed at line 407 I see: >>> >> >>> >> boolean hasData = params.get(DataParam.NAME, DataParam.class); >>> >> >>> >> >>> >> When I change that to >>> >> Boolean hasData = params.get(DataParam.NAME, DataParam.class); >>> >> >>> >> >>> >> instead (along with long to Long, short to Short, etc, later in that >>> file), everything compiles fine. >>> >> >>> >> $ javac -version >>> >> javac 1.6.0_24 >>> >> >>> >> >>> >> $ java -version >>> >> java version "1.6.0_24" >>> >> OpenJDK Runtime Environment (IcedTea6 1.11.3) >>> (fedora-67.1.11.3.fc16-x86_64) >>> >> OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode) >>> >> >>> >> Apparently OpenJDK gets mixed up on the type inference here. Can we >>> change this in the way I suggest so that Hadoop-2 (and presumably trunk) >>> can be >>> >> compiled with OpenJDK? >>> >> I'm happy to create a jira and (trivial) patch. >>> >> >>> >> >>> >> Thanks. >>> >> >>> >> -- Lars >>> >> >>> > >>> > -- >>> > Arun C. Murthy >>> > Hortonworks Inc. >>> > http://hortonworks.com/ >>> > >>> > >>> >>> >>> >>> -- >>> Alejandro >>> >> >> -- Alejandro