hi christian,

thx for moving this discussion to the mailing list!

actually you don't have to check it because it would fail earlier.
due to the basic mechanism you would see an IllegalStateException in
#getInstance, if the cdi implementation isn't configured correctly (this
topic is related to an upcoming discussion).

the only case i can see right now would be caused by a manual call of
#setBeanManager which resets it.
-> imo we have to decide if we allow such a manual call.

in general we should also discuss if we re-use existing exception types (if
it makes sense) or if we create our own types.

regards,
gerhard



2012/1/23 Christian Kaltepoth <[email protected]>

> Hey @all,
>
> yesterday I had a deeper look at the BeanManagerProvider
> implementation and found something that could be improved. I created
> DELTASPIKE-56 (see [1]) for this but it turned out that we should
> discuss this topic on the mailing list.
>
> I saw that getBeanManager() may return null in some rare
> circumstances. Unfortunately this forces everyone calling this method
> to check the result for null. I think most code calling the method
> absolutely requires the BeanManager and cannot proceed without it.
>
> My first idea was to add another method getRequiredBeanManager() that
> doesn't return null if the BeanManager is not available but instead
> throws a meaningful runtime exception. That's what Solder does per
> default. Calling Solder's BeanManagerLocator.getBeanManager() without
> a BeanManager being available will result in a
> BeanManagerUnavailableException (see [2]).
>
> However Mark suggested that throwing an exception should be the
> default behavior. I for myself like Mark's idea.
>
> What do you think?
>
> Christian
>
> [1] https://issues.apache.org/jira/browse/DELTASPIKE-56
> [2]
> https://github.com/seam/solder/blob/master/api/src/main/java/org/jboss/solder/beanManager/BeanManagerLocator.java#L82
>
> --
> Christian Kaltepoth
> Blog: http://chkal.blogspot.com/
> Twitter: http://twitter.com/chkal
>

Reply via email to