the testcase doesn't reproduce it. Here is why:
Converter converter = application.createConverter("javax.faces.Number");
BEFORE your change, it would return a Double, with the Value 333.111, which is correct.
Now, it returns a BigDecimal, which is more correct, but still the value is 333.111 (as wanted)
But... when the bean value is actually BigDecimal, it (the Double object) would be converted into a BigDecmial,
by EL engine with something like:
this... would cause the problem. Therefore I provided these two simple tests in my first comment:
-new java.math.BigDecimal(new Double(333.111).toString())
-new java.math.BigDecimal(new Double(333.111).doubleValue())
the last is "wrong" in the sense of why the bug was filed... (means a value like 333.110984654754...)
So you can reproduce it an application such as:
Where "number" property is actually BigDecimal and... the converter actually returns a double (which WAS the case).
Is this more clear ?