Thanks for the quick reply and sorry for posting at the wrong place.
For your info, I posted the same question on the OpenJDK mailing list
and they answered as follows:

-----------
These failures are caused by the fact that JDK 6 compiler doesn't
implement type-inference correctly. A lot of effort has been put into
JDK 7 compiler in order to get rid of all these problems (your program
compiles fine in JDK 7). However, some of those inference improvements
require source incompatible changes, which is why we cannot backport
these fixes in the JDK 6 release.
-----------

Kind Regards
Danilo

On 02/21/2012 01:50 PM, Srikanth S Adayapalam wrote:

[Please use newgroups/forums for discussions of this kind, the current list
is
for jdt developers]

The code you have posted compiles fine with javac7. I didn't analyze it
closely
but it would appear the oracle compiler behavior at JDK6 time was incorrect
and
this got fixed in JDK7.