Hello,
I would like to discuss Adaptable.adaptTo().
This method has annotation CheckForNull.
For example I have some part of code:
Session session = resourceResolver.adaptTo(Session.class); Node node = session.getNode("somepath");
Sonar will have blocker issue - NullPointerException might be thrown as 'session' is nullable here
From one side resourceResolver should always return non null Session (If it return null, that means that something wrong with AEM instance).
From the other side checkfornull force to add additional check that session != null.
Should we add check for null in current situation or not?
Thanks
Solved! Go to Solution.
Views
Replies
Total Likes
I would say, it doesn't require to check for null because if you look at the details about adaptTo() it says "The adapter target or null if the resource cannot adapt to the requested type" it means will only return null if resourceResolver object (if exist) can not map to session (type) and it will be initialized from request anyhow similar as (request.getSession(true/false))
Views
Replies
Total Likes
Checking for a null is not a bad practice and ensures that the object has memory allocated to it.
Views
Replies
Total Likes
Hi Alex,
Maybe it's a bad practice, but I check for null only if there is a real chance to get null returned.
in this case I don't check:
Session session = resourceResolver.adaptTo(Session.class);
But when I'm not sure if resource can be adapted to my model, I check for null:
MyModel myModel = resource.adaptTo(MyModel.class); if (myModel == null) { // do something }
Views
Replies
Total Likes
I would say, it doesn't require to check for null because if you look at the details about adaptTo() it says "The adapter target or null if the resource cannot adapt to the requested type" it means will only return null if resourceResolver object (if exist) can not map to session (type) and it will be initialized from request anyhow similar as (request.getSession(true/false))
Views
Replies
Total Likes
Views
Likes
Replies