You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by "Dimitri (JIRA)" <ji...@apache.org> on 2013/04/27 23:56:15 UTC

[jira] [Commented] (OPENEJB-2016) Injecting Principal bean doesn't work

    [ https://issues.apache.org/jira/browse/OPENEJB-2016?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13643809#comment-13643809 ] 

Dimitri commented on OPENEJB-2016:
----------------------------------

Stacktrace follows. If the actual code is needed, please ask me to attach it (though it's trivial).

SEVERE: Servlet.service() for servlet [TestServlet] in context with path [/principal] threw exception
java.lang.NullPointerException
	at org.apache.openejb.core.security.AbstractSecurityService.getCallerPrincipal(AbstractSecurityService.java:250)
	at org.apache.openejb.cdi.ManagedSecurityService.getCurrentPrincipal(ManagedSecurityService.java:37)
	at org.apache.webbeans.ee.common.beans.PrincipalBean.createInstance(PrincipalBean.java:49)
	at org.apache.webbeans.ee.common.beans.PrincipalBean.createInstance(PrincipalBean.java:31)
	at org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:186)
	at org.apache.webbeans.context.DependentContext.getInstance(DependentContext.java:70)
	at org.apache.webbeans.context.AbstractContext.get(AbstractContext.java:132)
	at org.apache.webbeans.container.BeanManagerImpl.getReference(BeanManagerImpl.java:872)
	at org.apache.webbeans.container.BeanManagerImpl.getInjectableReference(BeanManagerImpl.java:753)
	at org.apache.webbeans.inject.AbstractInjectable.inject(AbstractInjectable.java:136)
	at org.apache.webbeans.inject.InjectableField.doInjection(InjectableField.java:59)
	at org.apache.webbeans.component.AbstractInjectionTargetBean.injectField(AbstractInjectionTargetBean.java:387)
	at org.apache.webbeans.component.AbstractInjectionTargetBean.injectFields(AbstractInjectionTargetBean.java:324)
	at org.apache.webbeans.portable.creation.InjectionTargetProducer.inject(InjectionTargetProducer.java:95)
	at org.apache.webbeans.component.InjectionTargetWrapper.inject(InjectionTargetWrapper.java:76)
	at org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:181)
	at org.apache.webbeans.context.creational.BeanInstanceBag.create(BeanInstanceBag.java:81)
	at org.apache.webbeans.context.AbstractContext.getInstance(AbstractContext.java:167)
	at org.apache.webbeans.context.AbstractContext.get(AbstractContext.java:132)
	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:154)
	at org.apache.webbeans.web.intercept.RequestScopedBeanInterceptorHandler.getContextualInstance(RequestScopedBeanInterceptorHandler.java:80)
	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:114)
	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:108)
	at test.UserService_$$_javassist_0.getUsername(UserService_$$_javassist_0.java)
	at test.TestServlet.processRequest(TestServlet.java:47)
	at test.TestServlet.doGet(TestServlet.java:68)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:581)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:722)
                
> Injecting Principal bean doesn't work
> -------------------------------------
>
>                 Key: OPENEJB-2016
>                 URL: https://issues.apache.org/jira/browse/OPENEJB-2016
>             Project: OpenEJB
>          Issue Type: Bug
>    Affects Versions: 4.5.2
>         Environment: OpenJDK 1.7.0_06 (IcedTea 2.3.8.4), i586
>            Reporter: Dimitri
>
> In a web application (without EJBs), a default javax.security.Principal can't be injected (see JSR-299, section 3.6). My initial intention was to inject it into some other managed bean, but, after receiving an NPE, I've tried injecting into a servlet and JAX-RS web service - with the same result. I've tried "@Inject @Default private Principal principal" and "@Inject private Instance<Principal> principal", both methods fail.
> Tested with TomEE 1.5.2 JAX-RS and TomEE 1.5.2 Plus. At the same time, injection succeeds in GlassFish 3.1.2.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira