--- a/langtools/src/share/classes/com/sun/tools/javac/code/Types.java Wed May 11 13:10:57 2011 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/code/Types.java Wed May 11 13:12:11 2011 +0200
@@ -955,7 +955,9 @@
if (t.isPrimitive() != s.isPrimitive())
return allowBoxing && (
isConvertible(t, s, warn)
- || (allowObjectToPrimitiveCast && isConvertible(s, t, warn)));
+ || (allowObjectToPrimitiveCast &&
+ s.isPrimitive() &&
+ isSubtype(boxedClass(s).type, t)));
if (warn != warnStack.head) {
try {
warnStack = warnStack.prepend(warn);