The cache in TypeSafeObserverResolver, as used by TransactionalObserverNotifier does not have any form of limiting or expiry, which means that it could grow very large and cause an OutOfMemoryError if a large number of distinct qualifier are used. Usually the number of qualifiers is finite (and relatively small), but this is not true if an application uses AnnotationLiteral-derived classes with arbitrary data in the annoation. An example of where this occurs is Solder's ServletEventBridgeListener, which emits events with a qualifier annotation containing the URL path and method. The cache should have some form of limit or expiry, so that it does not grow arbitrarily large.
Jozef Hartinger <jharting> updated the status of jira WELD-1323 to Resolved
Fixed upstream via https://source.jboss.org/viewrep/WeldCore/impl/src/main/java/org/jboss/weld/resolution/TypeSafeResolver.java?r1=ab2975d93a6f8137db557e94e33d91ea74372382&r2=23c4dd19f1f633258047ad11b5a7dfc97acf4c43
Should this be moved to ON_QA?
If this was fixed in some release of Weld that's in the EAP 6.x branch, please move it to ON_QA, setting the Target Release to EAP 6.2.0 and the Target Milestone to ER6. If you know the # of the first ER that had the fix in the build, then use that, but if you don't know then ER6 is fine.
Verified on EAP 6.2.0.ER6