[weld-issues] [JBoss JIRA] (WELD-2545) ConcurrentValidator.validateBeanNames and thread-safety
Title: Message Title Matej Novotny commented on WELD-2545 Re: ConcurrentValidator.validateBeanNames and thread-safety Hello Michael Rasmussen I am not sure I can see the problem here. Have you encountered an actual error with this? Looking at the code of ConcurrentValidator.validateBeanNames what is actually parallel is just going over the key set itself via iterator. Implementation of AbstractMultimap.keySet() returns an ImmutableSet.copyOf(map.keySet());, so there is no resizing happening. Add Comment This message was sent by Atlassian Jira (v7.12.1#712002-sha1:609a505) ___ weld-issues mailing list weld-issues@lists.jboss.org https://lists.jboss.org/mailman/listinfo/weld-issues
[weld-issues] [JBoss JIRA] (WELD-2545) ConcurrentValidator.validateBeanNames and thread-safety
Title: Message Title Michael Rasmussen commented on WELD-2545 Re: ConcurrentValidator.validateBeanNames and thread-safety The concurrent iterator calls validateBeanName(name, namedAccessibleBeans, accessibleNamespaces, beanManager) The first line of Validator.validateBeanName calls namedAccessibleBeans.get(name) <-- here a potential resize can happen because of the computeIfAbsent. Add Comment This message was sent by Atlassian Jira (v7.12.1#712002-sha1:609a505) ___ weld-issues mailing list weld-issues@lists.jboss.org https://lists.jboss.org/mailman/listinfo/weld-issues
[weld-issues] [JBoss JIRA] (WELD-2545) ConcurrentValidator.validateBeanNames and thread-safety
Title: Message Title Matej Novotny edited a comment on WELD-2545 Re: ConcurrentValidator.validateBeanNames and thread-safety Hello [~maldivia]I am not sure I can see the problem here. Have you encountered an actual error with this? - Looking at the code of {{ConcurrentValidator.validateBeanNames}} what is actually parallel is just going over the key set itself via iterator. - - Implementation of [{{AbstractMultimap.keySet()}} returns an {{ImmutableSet.copyOf(map.keySet());}}|https://github.com/weld/core/blob/master/impl/src/main/java/org/jboss/weld/util/collections/AbstractMultimap.java#L106], so there is no resizing happening. -I was blind, I can see that {{Validator.validateBeanName()}} still operates on the set. Add Comment This message was sent by Atlassian Jira (v7.12.1#712002-sha1:609a505) ___ weld-issues mailing list weld-issues@lists.jboss.org https://lists.jboss.org/mailman/listinfo/weld-issues
[weld-issues] [JBoss JIRA] (WELD-2545) ConcurrentValidator.validateBeanNames and thread-safety
Title: Message Title Michael Rasmussen edited a comment on WELD-2545 Re: ConcurrentValidator.validateBeanNames and thread-safety The concurrent iterator calls validateBeanName(name, namedAccessibleBeans, accessibleNamespaces, beanManager)The first line of Validator.validateBeanName calls namedAccessibleBeans.get(name) <-- here a potential resize can happen because of the computeIfAbsent. Edit: we've encountered this during our automatic testing of our (JRebel's) integration with weld, but due to it basically having to basically be an exact number of beans, and the flaky nature of concurrency, sometimes hard to reproduce. Add Comment This message was sent by Atlassian Jira (v7.12.1#712002-sha1:609a505) ___ weld-issues mailing list weld-issues@lists.jboss.org https://lists.jboss.org/mailman/listinfo/weld-issues
[weld-issues] [JBoss JIRA] (WELD-2545) ConcurrentValidator.validateBeanNames and thread-safety
Title: Message Title Matej Novotny commented on WELD-2545 Re: ConcurrentValidator.validateBeanNames and thread-safety So what we could do is to use a concurrent version of SetMultimap which is backed by ConcurrentHashMap. Not sure how exactly resizing works there, but I suppose it is accounted for. There was also another change in the affected code as a part of WELD-2322 where a new set was created before invoking Validator.validateBeanName(). Add Comment This message was sent by Atlassian Jira (v7.12.1#712002-sha1:609a505) ___ weld-issues mailing list weld-issues@lists.jboss.org https://lists.jboss.org/mailman/listinfo/weld-issues
[weld-issues] [JBoss JIRA] (WELD-2545) ConcurrentValidator.validateBeanNames and thread-safety
Title: Message Title Matej Novotny updated an issue Weld / WELD-2545 ConcurrentValidator.validateBeanNames and thread-safety Change By: Matej Novotny Fix Version/s: 3.1.0.Beta1 Fix Version/s: 3.1.0.Final Add Comment This message was sent by Atlassian Jira (v7.12.1#712002-sha1:609a505) ___ weld-issues mailing list weld-issues@lists.jboss.org https://lists.jboss.org/mailman/listinfo/weld-issues
[weld-issues] [JBoss JIRA] (WELD-2545) ConcurrentValidator.validateBeanNames and thread-safety
Title: Message Title Matej Novotny assigned an issue to Matej Novotny Weld / WELD-2545 ConcurrentValidator.validateBeanNames and thread-safety Change By: Matej Novotny Assignee: Matej Novotny Add Comment This message was sent by Atlassian Jira (v7.12.1#712002-sha1:609a505) ___ weld-issues mailing list weld-issues@lists.jboss.org https://lists.jboss.org/mailman/listinfo/weld-issues
[weld-issues] [JBoss JIRA] (WELD-2545) ConcurrentValidator.validateBeanNames and thread-safety
Title: Message Title Matej Novotny edited a comment on WELD-2545 Re: ConcurrentValidator.validateBeanNames and thread-safety So what we could do is to use a concurrent version of {{SetMultimap}} which is backed by {{ConcurrentHashMap}}. Not sure how exactly resizing works there, but I suppose it is accounted for.There was also another change in the affected code as a part of WELD-2322 where a new set was created before invoking {{ Validator Beans . validateBeanName() removeDisabledBeans }}. Add Comment This message was sent by Atlassian Jira (v7.12.1#712002-sha1:609a505) ___ weld-issues mailing list weld-issues@lists.jboss.org https://lists.jboss.org/mailman/listinfo/weld-issues
[weld-issues] [JBoss JIRA] (WELD-2545) ConcurrentValidator.validateBeanNames and thread-safety
Title: Message Title Matej Novotny updated an issue Weld / WELD-2545 ConcurrentValidator.validateBeanNames and thread-safety Change By: Matej Novotny Git Pull Request: https://github.com/weld/core/pull/1882 Add Comment This message was sent by Atlassian Jira (v7.12.1#712002-sha1:609a505) ___ weld-issues mailing list weld-issues@lists.jboss.org https://lists.jboss.org/mailman/listinfo/weld-issues
[weld-issues] [JBoss JIRA] (WELD-2545) ConcurrentValidator.validateBeanNames and thread-safety
Title: Message Title Matej Novotny commented on WELD-2545 Re: ConcurrentValidator.validateBeanNames and thread-safety I created a PR with the aforementioned changes. Michael Rasmussen since testing this is tricky, could you please take a look at it and tell me if you think this will do the trick for you? Add Comment This message was sent by Atlassian Jira (v7.12.1#712002-sha1:609a505) ___ weld-issues mailing list weld-issues@lists.jboss.org https://lists.jboss.org/mailman/listinfo/weld-issues
[weld-issues] [JBoss JIRA] (WELD-2545) ConcurrentValidator.validateBeanNames and thread-safety
Title: Message Title Matej Novotny edited a comment on WELD-2545 Re: ConcurrentValidator.validateBeanNames and thread-safety So what we could do is to use a concurrent version of {{SetMultimap}} which is backed by {{ConcurrentHashMap}}. Not sure how exactly resizing works there, but I suppose it is accounted for.There was also another change in the affected code as a part of WELD-2322 where a new set was created before invoking {{Beans.removeDisabledBeans}} - this bit shouldn't matter though as the set will be synchronized and access by at most one thread at a time . Add Comment This message was sent by Atlassian Jira (v7.12.1#712002-sha1:609a505) ___ weld-issues mailing list weld-issues@lists.jboss.org https://lists.jboss.org/mailman/listinfo/weld-issues
[weld-issues] [JBoss JIRA] (WELD-2545) ConcurrentValidator.validateBeanNames and thread-safety
Title: Message Title Michael Rasmussen commented on WELD-2545 Re: ConcurrentValidator.validateBeanNames and thread-safety Matej Novotny a SetMultimap backed by a ConcurrentHashMap should fix this issue yeah. Add Comment This message was sent by Atlassian Jira (v7.12.1#712002-sha1:609a505) ___ weld-issues mailing list weld-issues@lists.jboss.org https://lists.jboss.org/mailman/listinfo/weld-issues
[weld-issues] [JBoss JIRA] (WELD-2545) ConcurrentValidator.validateBeanNames and thread-safety
Title: Message Title Issue was automatically transitioned when Matej Novotny created pull request #1882 in GitHub Weld / WELD-2545 ConcurrentValidator.validateBeanNames and thread-safety Change By: Matej Novotny Status: Open Pull Request Sent Add Comment This message was sent by Atlassian Jira (v7.12.1#712002-sha1:609a505) ___ weld-issues mailing list weld-issues@lists.jboss.org https://lists.jboss.org/mailman/listinfo/weld-issues
[weld-issues] [JBoss JIRA] (WELD-2546) InterceptorLogger.unableToDetermineInterceptedBean() should be probably logged at the INFO level
Title: Message Title Martin Kouba created an issue Weld / WELD-2546 InterceptorLogger.unableToDetermineInterceptedBean() should be probably logged at the INFO level Issue Type: Enhancement Assignee: Unassigned Created: 21/Nov/18 2:57 AM Priority: Optional Reporter: Martin Kouba This message is currently logged at the WARN level. However, CDI interceptors are often used for non-contextual instances (e.g. Java EE components) where Weld simply injects null. I think it would be reasonable to use INFO instead. Add Comment This message was sent by Atlassian Jira (v7.12.1#712002-sha1:609a505)