Return-Path: X-Original-To: apmail-hadoop-hdfs-dev-archive@minotaur.apache.org Delivered-To: apmail-hadoop-hdfs-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 4CE8AD0E9 for ; Sat, 30 Jun 2012 00:12:43 +0000 (UTC) Received: (qmail 31410 invoked by uid 500); 30 Jun 2012 00:12:42 -0000 Delivered-To: apmail-hadoop-hdfs-dev-archive@hadoop.apache.org Received: (qmail 31327 invoked by uid 500); 30 Jun 2012 00:12:42 -0000 Mailing-List: contact hdfs-dev-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: hdfs-dev@hadoop.apache.org Delivered-To: mailing list hdfs-dev@hadoop.apache.org Received: (qmail 31317 invoked by uid 99); 30 Jun 2012 00:12:42 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 30 Jun 2012 00:12:42 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of adi@cloudera.com designates 209.85.160.176 as permitted sender) Received: from [209.85.160.176] (HELO mail-gh0-f176.google.com) (209.85.160.176) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 30 Jun 2012 00:12:36 +0000 Received: by ghbz10 with SMTP id z10so3873812ghb.35 for ; Fri, 29 Jun 2012 17:12:15 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:x-gm-message-state; bh=AHR2Sq55rJlxvWXBbL9X+LhOrcAT4gSMhJAYj1a7jsc=; b=LMfzMj89/t1Z0qo9Cc/iHrA+N9E82GkHCSBzMkSYPOPg5LbI1Yl4yWrwWRoMWFHEPV XGkebq1RSp39Rt+OxHidEjesnbMg5PT0CRWyEns9X+XaHglKdaOhu/ajEZ8uRK6oVUOD yoW9qVRV/nx0flV0SCIyDXOvx9yFeH2rYVOs7sEk4vib5pOBUvx2uvCpegxbpeW6zPxR IUwG1BFUxPrTZR+TVmxlFRhuugy+RfsUGqnKR21L07I92WPLMgBa0r+2hQDjm51muw0C fUroOgzVz1gdvMfwZ+Z1C1BfkUg/rHoPA8SFpZ1QDj6egmjc0i52RoVo8mKsKoN+ZvJu PDqg== MIME-Version: 1.0 Received: by 10.50.184.135 with SMTP id eu7mr505996igc.15.1341015134739; Fri, 29 Jun 2012 17:12:14 -0700 (PDT) Received: by 10.50.153.197 with HTTP; Fri, 29 Jun 2012 17:12:14 -0700 (PDT) In-Reply-To: References: <1340947673.32328.YahooMailNeo@web121702.mail.ne1.yahoo.com> <1341010190.13119.YahooMailNeo@web121702.mail.ne1.yahoo.com> Date: Fri, 29 Jun 2012 17:12:14 -0700 Message-ID: Subject: Re: Hadoop-2 generics compilation error From: Andy Isaacson To: hdfs-dev@hadoop.apache.org Cc: lars hofhansl Content-Type: multipart/alternative; boundary=14dae9340e29be9c5004c3a56a91 X-Gm-Message-State: ALoCoQmASbGOZX3QyBOYt8pATeN6/X4f4zlV0cCQjMIPO01VuPzh2fzoRaqfHND8uM4idLQPqPx+ --14dae9340e29be9c5004c3a56a91 Content-Type: text/plain; charset=ISO-8859-1 Thanks everybody! Good to get this resolved. -andy On Fri, Jun 29, 2012 at 3:53 PM, Alejandro Abdelnur wrote: > yep, just tested with sunjdk, and it works. We still have the > unboxing, but is done when the variable is used as parameter in method > that is expecting a primitive type. > > > > On Fri, Jun 29, 2012 at 3:49 PM, lars hofhansl > wrote: > > SunJDK will correctly infer the reference types, correct? > > If so, changing this to reference types should make both JDKs happy. > > > > -- Lars > > > > ________________________________ > > From: Alejandro Abdelnur > > 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 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 > 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 < > tucu@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 > >>>> 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 > > > > -- > Alejandro > --14dae9340e29be9c5004c3a56a91--