Closed
Description
Sam Brannen opened SPR-14363 and commented
Status Quo
ReflectionTestUtils
invokes toString()
on target objects in order to create messages for exceptions and logging; however, as discussed in #14205, this practice can lead to problems if the invocation of toString()
throws an exception.
The upgrade to Gradle 2.14 in #18934 made it apparent that ReflectionTestUtils.setField()
in fact fails with an exception if the log level for ReflectionTestUtils
is set to DEBUG
. A quick inspection of the rest of the code in ReflectionTestUtils
reveals that all other methods would fail in a similar fashion.
Deliverables
- Ensure that all invocations of
toString()
on target objects withinReflectionTestUtils
are performed defensively (i.e., by catching any exceptions).
Affects: 3.2.17
Issue Links:
- ReflectionTestUtils.setField() should not call toString() on the target [SPR-9571] #14205 ReflectionTestUtils.setField() should not call toString() on the target
- Upgrade build to Gradle 2.14.1 [SPR-14362] #18934 Upgrade build to Gradle 2.14.1
Referenced from: commits 045ee52