openwebbeans-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thomas Andraschko <andraschko.tho...@gmail.com>
Subject Re: Nullpointer in WebContextsService
Date Wed, 02 Mar 2016 12:42:14 GMT
I'm also not sure if we should really log this with warning...

if a user uses
ContextUtils.isContextActive(SessionScoped)
instead
ContextUtils.isContextActive(RequestScoped) &&
ContextUtils.isContextActive(SessionScoped)
the log always appears...


It would change it to:
        ServletRequestContext requestContext = getRequestContext(true);
        if (requestContext == null)
        {
            logger.log(Level.INFO, "Could NOT lazily initialize session
context because NO active request context");
            return;
        }


2016-03-02 13:37 GMT+01:00 Romain Manni-Bucau <rmannibucau@gmail.com>:

> Hi,
>
> it looks accurate, do you want to provide us a patch?
>
> Side note: not managed threads are...not managed so any behavior in those
> threads is up to the implementation (that said a NPE is not super user
> friendly and we can do better there ;)).
>
>
> Romain Manni-Bucau
> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> <http://rmannibucau.wordpress.com> | Github
> <https://github.com/rmannibucau> | LinkedIn
> <https://www.linkedin.com/in/rmannibucau> | Tomitriber
> <http://www.tomitribe.com>
>
> 2016-03-02 13:31 GMT+01:00 Karl Kildén <karl.kilden@gmail.com>:
>
>> Hey guys!
>>
>> I upgraded to TomEE 7-M1 and I have a problem with checking for active
>> contexts. Now this behavior:
>>
>>
>>         ServletRequestContext requestContext = getRequestContext(true);
>>         if (requestContext == null)
>>         {
>>             logger.log(Level.WARNING, "Could NOT lazily initialize
>> session context because NO active request context");
>>         }
>>
>> Only logs it and goes ahead and breaks on NPE on line 815 but before it
>> simply never executed any code if requestContext was null.
>>
>> This is the code in my application that actually uses Deltaspike now for
>> checking:
>>
>> private boolean isActive(Class<? extends Annotation> scope) {
>> return ContextUtils.isContextActive(scope);
>> }
>>
>>
>> Full stacktrace
>>
>>             at
>> org.apache.webbeans.web.context.WebContextsService.lazyStartSessionContext(
>> *WebContextsService.java:815*)
>>
>>             at
>> org.apache.webbeans.web.context.WebContextsService.getSessionContext(
>> *WebContextsService.java:739*)
>>
>>             at
>> org.apache.webbeans.web.context.WebContextsService.getCurrentContext(
>> *WebContextsService.java:277*)
>>
>>             at org.apache.webbeans.container.BeanManagerImpl.getContext(
>> *BeanManagerImpl.java:287*)
>>
>>             at
>> org.apache.webbeans.container.InjectableBeanManager.getContext(
>> *InjectableBeanManager.java:129*)
>>
>>             at
>> org.apache.deltaspike.core.util.ContextUtils.isContextActive(
>> *ContextUtils.java:60*)
>>
>>             at
>> org.apache.deltaspike.core.util.ContextUtils.isContextActive(
>> *ContextUtils.java:46*)
>>
>>             at com.company.ContextLookup.isActive(*ContextLookup.java:23*
>> )
>>
>>
>>
>> My actual use case is that I tag all my entities if I can find out who
>> changed it but in this case it was a background thread.
>>
>>
>> Am I missing something or should I track it in JIRA?
>>
>>
>> cheers
>>
>
>

Mime
View raw message