bmhm commented on a change in pull request #240:
URL: https://github.com/apache/shiro/pull/240#discussion_r439930549



##########
File path: 
config/ogdl/src/main/java/org/apache/shiro/config/ogdl/ReflectionBuilder.java
##########
@@ -290,7 +293,9 @@ private String parseBeanId(String lhs) {
         }
 
         //SHIRO-413: init method must be called for constructed objects that 
are Initializable
-        LifecycleUtils.init(objects.values());
+        //SHIRO-778: onInit method on AuthenticatingRealm is called twice
+        objects.keySet().stream().filter(key -> 
!Optional.ofNullable(kvPairs).orElseGet(HashMap::new).keySet().contains(key))
+                .forEach(key -> LifecycleUtils.init(objects.get(key)));

Review comment:
       Ok, I got an better idea anyway.
   At the moment, you are creating a new map for each key of kvPairs is empty! 
That's a lot of overhead!
   
   At least move this part to its own statement on the previous line:
   `Optional.ofNullable(kvPairs).orElseGet(HashMap::new)`.
   
   This will avoid creating 10 new hashmaps of you have 10 keys in objects. And 
it's much easier to read the lambda (if !map.contains)




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to