matrix – JordanDecomposition not evaluating

When there are very small differences between entries in a diagonal matrix, sometimes JordanDecomposition does not evaluate and gives an error message:

JordanDecomposition({{1., 0.}, {0., 1. + 2.*10^(-16)}})

(* Out: JordanDecomposition({{1., 0.}, {0., 1.}}) *)

JordanDecomposition::pvec: Unable to find principal vectors for eigenvalue 1.`.

Weirdly, the documentation for this error message says

This message is generated by a failure in the algorithm for computing JordanDecomposition of a symbolic matrix.

although the matrix is clearly numeric. The corresponding symbolic matrix works fine:

JordanDecomposition({{a, 0}, {0, b}})

(* Out: {{{1, 0}, {0, 1}}, {{a, 0}, {0, b}}} *)
  1. Is this a bug?

  2. Is there a workaround?