Fix #1386

Use Objects.toIdentityString to generate the source if the file name is null.

Comment From: markpollack

not sure what toIdentityString is, but updated the impl and made a protected method for subclass customization of the source metadata description. added tests.

Comment From: markpollack

merged in 05292ac730dc2c413f6ce021367327b3dfe2a73c