Here is what I know about overload resolution in java:
The process of compiler trying to resolve the method call from given overloaded method
widening beats boxing, boxing beats var-args. In your example, the widening cannot happen, so the boxing it's applied and Integer is unboxed. Nothing unordinary.