The presence of a profile without a key can be verified with getProfileDocCollection.
If the profile with the key, then using getProfileDocument has old and serious problem - profile is stored on disk, that by logic of the application can be very undesirable.
This can be implemented with optional parameter for methods:
@GetProfileField should also not save profile.
P.S. Still ask to unify getProfileDocument in Java with the same method in the LS - make a parameter profilekey as optional.