This appears to have already been fixed since a7654ba4324a1cc831fcef3988d9dca767bcdef3. I can compile the trunk right now -- try a fetch+rebase/pull/up again perhaps?
But yes, that value has to be final as the compiler noted. On 21-Nov-2011, at 8:22 PM, Praveen Sripati wrote: > Hi, > > I got the latest code from branch-0.23 and got the below error. Think this > is related to HADOOP-6614. > > [ERROR] > /home/praveensripati/Hadoop/0.23/source/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/RunJar.java:[171,31] > local variable workDir is accessed from within inner class; needs to be > declared final > > The error is around this block > > Runtime.getRuntime().addShutdownHook(new Thread() { > public void run() { > FileUtil.fullyDelete(workDir); > } > }); > > > JLS says > > http://java.sun.com/docs/books/jls/third_edition/html/classes.html > > Any local variable, formal method parameter or exception handler parameter > used but not declared in an inner class must be declared final. Any local > variable, used but not declared in an inner class must be definitely > assigned (ยง16) before the body of the inner class. > > Should workDir be declared as final? > > Thanks, > Praveen