[jboss-jira] [JBoss JIRA] Updated: (JBAS-8376) JBoss logbridge NPE with java.util.logging.Logger.getAnonymousLogger()

Michael Faber (JIRA) jira-events at lists.jboss.org
Wed Sep 1 02:47:12 EDT 2010


     [ https://jira.jboss.org/browse/JBAS-8376?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael Faber updated JBAS-8376:
--------------------------------

    Attachment: LogBridgeTestCase.jar


Testcase for described Bug.

> JBoss logbridge NPE with java.util.logging.Logger.getAnonymousLogger()
> ----------------------------------------------------------------------
>
>                 Key: JBAS-8376
>                 URL: https://jira.jboss.org/browse/JBAS-8376
>             Project: JBoss Application Server
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: Logging
>    Affects Versions: JBossAS-5.1.0.GA
>         Environment: Tested on a WinXP machine running JBossAS-5.1.0 GA with JDK 1.6.0_19
>            Reporter: Michael Faber
>            Assignee: David Lloyd
>         Attachments: LogBridgeTestCase.jar
>
>
> Using an anonymous logger from the JUL framework a NPE will occur in the initialization of the log4j logger when the publish() method of the JBoss LogBridgeHandler (org.jboss.logbridge.LogbridgeHandler) is used.
> The stacktrace is:
> Exception in thread "main" javax.ejb.EJBException: java.lang.NullPointerException
>     at org.jboss.ejb3.tx.Ejb3TxPolicy.handleExceptionInOurTx(Ejb3TxPolicy.java:77)
>     at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:83)
>     at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:190)
>     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
>     at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
>     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
>     at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42)
>     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
>     at org.jboss.ejb3.security.Ejb3AuthenticationInterceptorv2.invoke(Ejb3AuthenticationInterceptorv2.java:186)
>     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
>     at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:41)
>     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
>     at org.jboss.ejb3.BlockContainerShutdownInterceptor.invoke(BlockContainerShutdownInterceptor.java:67)
>     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
>     at org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor.invoke(CurrentInvocationInterceptor.java:67)
>     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
>     at org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(StatelessContainer.java:421)
>     at org.jboss.ejb3.session.InvokableContextClassProxyHack._dynamicInvoke(InvokableContextClassProxyHack.java:53)
>     at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:91)
>     at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82)
>     at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:891)
>     at org.jboss.remoting.transport.socket.ServerThread.completeInvocation(ServerThread.java:744)
>     at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:697)
>     at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:524)
>     at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:232)
> Caused by: java.lang.NullPointerException
>     at org.apache.log4j.CategoryKey.<init>(CategoryKey.java:31)
>     at org.apache.log4j.Hierarchy.getLogger(Hierarchy.java:261)
>     at org.apache.log4j.Hierarchy.getLogger(Hierarchy.java:242)
>     at org.apache.log4j.LogManager.getLogger(LogManager.java:188)
>     at org.apache.log4j.Logger.getLogger(Logger.java:104)
>     at org.jboss.logbridge.LogBridgeHandler.publish(LogBridgeHandler.java:71)
>     at java.util.logging.Logger.log(Logger.java:458)
>     at java.util.logging.Logger.doLog(Logger.java:480)
>     at java.util.logging.Logger.log(Logger.java:503)
>     at logbridge.test.LogbridgeTestCaseBean.logTest(LogbridgeTestCaseBean.java:24)
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>     at java.lang.reflect.Method.invoke(Method.java:597)
>     at org.jboss.aop.joinpoint.MethodInvocation.invokeTarget(MethodInvocation.java:122)
>     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:111)
>     at org.jboss.ejb3.EJBContainerInvocationWrapper.invokeNext(EJBContainerInvocationWrapper.java:69)
>     at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.invoke(InterceptorSequencer.java:73)
>     at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.aroundInvoke(InterceptorSequencer.java:59)
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>     at java.lang.reflect.Method.invoke(Method.java:597)
>     at org.jboss.aop.advice.PerJoinpointAdvice.invoke(PerJoinpointAdvice.java:174)
>     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
>     at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.fillMethod(InvocationContextInterceptor.java:72)
>     at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor_z_fillMethod_6971605.invoke(InvocationContextInterceptor_z_fillMethod_6971605.java)
>     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
>     at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.setup(InvocationContextInterceptor.java:88)
>     at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor_z_setup_6971605.invoke(InvocationContextInterceptor_z_setup_6971605.java)
>     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
>     at org.jboss.ejb3.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:62)
>     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
>     at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:56)
>     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
>     at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)
>     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
>     at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42)
>     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
>     at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:68)
>     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
>     at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79)
>     at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:190)
>     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
>     at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
>     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
>     at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42)
>     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
>     at org.jboss.ejb3.security.Ejb3AuthenticationInterceptorv2.invoke(Ejb3AuthenticationInterceptorv2.java:186)
>     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
>     at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:41)
>     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
>     at org.jboss.ejb3.BlockContainerShutdownInterceptor.invoke(BlockContainerShutdownInterceptor.java:67)
>     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
>     at org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor.invoke(CurrentInvocationInterceptor.java:67)
>     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
>     at org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(StatelessContainer.java:421)
>     at org.jboss.ejb3.session.InvokableContextClassProxyHack._dynamicInvoke(InvokableContextClassProxyHack.java:53)
>     at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:91)
>     at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82)
>     at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:891)
>     at org.jboss.remoting.transport.socket.ServerThread.completeInvocation(ServerThread.java:744)
>     at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:697)
>     at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:524)
>     at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:232)
>     at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:211)
>     at org.jboss.remoting.Client.invoke(Client.java:1724)
>     at org.jboss.remoting.Client.invoke(Client.java:629)
>     at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:60)
>     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
>     at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:61)
>     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
>     at org.jboss.ejb3.security.client.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:65)
>     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
>     at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:74)
>     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
>     at org.jboss.aspects.remoting.PojiProxy.invoke(PojiProxy.java:62)
>     at $Proxy3.invoke(Unknown Source)
>     at org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandlerBase.invoke(SessionProxyInvocationHandlerBase.java:207)
>     at org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandlerBase.invoke(SessionProxyInvocationHandlerBase.java:164)
>     at $Proxy2.logTest(Unknown Source)
>     at logbridge.test.LogbridgeTestClient.main(LogbridgeTestClient.java:24)
>     at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:72)
>     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
>     at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:61)
>     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
>     at org.jboss.ejb3.security.client.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:65)
>     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
>     at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:74)
>     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
>     at org.jboss.aspects.remoting.PojiProxy.invoke(PojiProxy.java:62)
>     at $Proxy3.invoke(Unknown Source)
>     at org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandlerBase.invoke(SessionProxyInvocationHandlerBase.java:207)
>     at org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandlerBase.invoke(SessionProxyInvocationHandlerBase.java:164)
>     at $Proxy2.logTest(Unknown Source)
>     at logbridge.test.LogbridgeTestClient.main(LogbridgeTestClient.java:24)
> The LogBridgeHandler tries to resolve the name for the targetLogger from the LogRecord name which is null in case of an anonymous logger. Hence the log4j logger can not be initialized correctly.
> I add a jar File containing a small testcase with a StatelessBean using a JUL anonymous logger and a simple client triggering the logging. This should trigger the error described above (tested with a JBoss 5.1.0 default server).

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jboss-jira mailing list