// Wrap to ensure that we only clone values if the client attempts to modify // the map or retrieve values that might, themselves, be mutable props =newValueProtectingMap<QName, Serializable>(props, NodePropertyValue.IMMUTABLE_CLASSES);
True, the above method is called from within nodeService.getProperties(nodeRef); I was just trying to show the inclusion of properties in the source code, just to show you that all the auditable properties are returned for sure.
I am not really sure what's wrong in your case. But as mentioned earlier, there is no way nodeService.getProperties(nodeRef) would not return cm:creator and other auditable info. It should return auditable properties as long as they are available. Can you check the nodeRef in node browser to see if all the auditable metadata is available? These props are by default applied when you create/update a node as long as you have not disabled the auditable aspect using behavior filter. Share the screen shot of node browser if possible.
I did a test at my end too and i can see the properties:
final Map<QName, Serializable> allProps = nodeService.getProperties(nodeRef);
First you need to make sure these properties are available or not. Check the node browser for the particular node you are trying. Also check if this is the case for all the nodes or just one nodeRef that you are trying.
If you are not seeing the auditable properties on all the nodes then probably check if you have implemented any behavior onCreateNode where auditable aspect is disabled. This could be a possible reason why auditable properties are not available on the nodes.
This is how auditable aspect could be disabled on an event: