protected void _reportIncompatibleRootType(Object value, JavaType rootType) throws IOException {
   // One special case: allow primitive/wrapper type coercion
   if (rootType.isPrimitive()) {
     Class<?> wrapperType = ClassUtil.wrapperType(rootType.getRawClass());
     // If it's just difference between wrapper, primitive, let it slide
     if (wrapperType.isAssignableFrom(value.getClass())) {
       return;
     }
   }
   throw JsonMappingException.from(
       this,
       "Incompatible types: declared root type ("
           + rootType
           + ") vs "
           + value.getClass().getName());
 }
 protected void _reportIncompatibleRootType(Object value, JavaType rootType) throws IOException {
   /* 07-Jan-2010, tatu: As per [JACKSON-456] better handle distinction between wrapper types,
    *    primitives
    */
   if (rootType.isPrimitive()) {
     Class<?> wrapperType = ClassUtil.wrapperType(rootType.getRawClass());
     // If it's just difference between wrapper, primitive, let it slide
     if (wrapperType.isAssignableFrom(value.getClass())) {
       return;
     }
   }
   throw JsonMappingException.from(
       this,
       "Incompatible types: declared root type ("
           + rootType
           + ") vs "
           + value.getClass().getName());
 }