Minor suggestion: `LOGGER.debug(" Text={}", nshape.text)` to not incur `StringBuilder` overhead when debugging is turned off.