The proposed fix makes fonts with and without fallback components distinguishable (in terms of `equals` method), so that font metrics cache (and other similar code) can handle them separately. This is achieved by adding a new boolean field to `Font` class, specifically denoting fonts with fallback components. The latter ones don't need to pretend to be 'created' fonts anymore, to preserve their `Font2D` handle. It's not possible to use the existing `createdFont` field in `equals` implementation, as JCK requires a 'real' created font (the one obtained using `Font.createFont` method) to be equal to the same font after serialization and deserialization.
------------- Commit messages: - fix Changes: https://git.openjdk.java.net/jdk/pull/7313/files Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=7313&range=00 Issue: https://bugs.openjdk.java.net/browse/JDK-8185261 Stats: 167 lines in 5 files changed: 135 ins; 4 del; 28 mod Patch: https://git.openjdk.java.net/jdk/pull/7313.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/7313/head:pull/7313 PR: https://git.openjdk.java.net/jdk/pull/7313