[ 
https://issues.apache.org/jira/browse/SLING-3049?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Chetan Mehrotra updated SLING-3049:
-----------------------------------

    Attachment: SLING-3049.patch

Patch which locally patches the 
{{ch.qos.logback.classic.spi.PackagingDataCalculator}} to make use of 
FrameworkUtil to determine class packaging data.

-- To make use of org.osgi.framework.FrameworkUtil had to bump OSGi related 
dependency to 4.2.0
-- Animal Sniffer is disabled as it is causing issue (details) later

Also a feature request is opened [1] with patch on Logback project [2]. Once it 
is included in Logback then this local hack/patch can be removed

Post this change a exception stack trace looks like 

{noformat}
10.09.2013 11:38:09.378 *INFO* [1419778576@qtp-76237284-0] 
org.apache.sling.examples.logback.ExceptionServlet Exception to log
java.lang.RuntimeException: null
        at 
org.apache.sling.examples.logback.ExceptionServlet.doGet(ExceptionServlet.java:26)
 [org.apache.sling.examples.logback:0.0.1.SNAPSHOT]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) 
[org.apache.felix.http.jetty:2.2.1.R1174788]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 
[org.apache.felix.http.jetty:2.2.1.R1174788]
        at 
org.apache.felix.http.base.internal.handler.ServletHandler.doHandle(ServletHandler.java:96)
 [org.apache.felix.http.jetty:2.2.1.R1174788]
        at 
org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:79)
 [org.apache.felix.http.jetty:2.2.1.R1174788]
        at 
org.apache.felix.http.base.internal.dispatch.ServletPipeline.handle(ServletPipeline.java:42)
 [org.apache.felix.http.jetty:2.2.1.R1174788]
        at 
org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:49)
 [org.apache.felix.http.jetty:2.2.1.R1174788]
        at 
org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33)
 [org.apache.felix.http.jetty:2.2.1.R1174788]
        at 
org.apache.felix.http.base.internal.dispatch.FilterPipeline.dispatch(FilterPipeline.java:48)
 [org.apache.felix.http.jetty:2.2.1.R1174788]
        at 
org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:39)
 [org.apache.felix.http.jetty:2.2.1.R1174788]
        at 
org.apache.felix.http.base.internal.DispatcherServlet.service(DispatcherServlet.java:67)
 [org.apache.felix.http.jetty:2.2.1.R1174788]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 
[org.apache.felix.http.jetty:2.2.1.R1174788]
        at 
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) 
[org.apache.felix.http.jetty:2.2.1.R1174788]
        at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390) 
[org.apache.felix.http.jetty:2.2.1.R1174788]
        at 
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 
[org.apache.felix.http.jetty:2.2.1.R1174788]
        at 
org.mortbay.jetty.handler.ContextHandler.__handle(ContextHandler.java:765) 
[org.apache.felix.http.jetty:2.2.1.R1174788]
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java) 
[org.apache.felix.http.jetty:2.2.1.R1174788]
        at 
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
[org.apache.felix.http.jetty:2.2.1.R1174788]
        at org.mortbay.jetty.Server.handle(Server.java:326) 
[org.apache.felix.http.jetty:2.2.1.R1174788]
        at 
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 
[org.apache.felix.http.jetty:2.2.1.R1174788]
        at 
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:926)
 [org.apache.felix.http.jetty:2.2.1.R1174788]
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549) 
[org.apache.felix.http.jetty:2.2.1.R1174788]
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) 
[org.apache.felix.http.jetty:2.2.1.R1174788]
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 
[org.apache.felix.http.jetty:2.2.1.R1174788]
        at 
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) 
[org.apache.felix.http.jetty:2.2.1.R1174788]
        at 
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) 
[org.apache.felix.http.jetty:2.2.1.R1174788]
{noformat}

[1] http://jira.qos.ch/browse/LOGBACK-899
[2] https://github.com/qos-ch/logback/pull/146

                
> Make Logback Stacktrace Packaging data support OSGi aware
> ---------------------------------------------------------
>
>                 Key: SLING-3049
>                 URL: https://issues.apache.org/jira/browse/SLING-3049
>             Project: Sling
>          Issue Type: Improvement
>          Components: Commons
>            Reporter: Chetan Mehrotra
>              Labels: logback
>         Attachments: SLING-3049.patch
>
>
> Logback provides a useful feature where it dumps the Class packaging Data 
> along with the stacktrace [1]. This provides a quick view of the location 
> from where classes in a given stacktrace are coming. Its default logic does 
> not work properly in OSGi env. Hence it would be useful to patch its logic to 
> become OSGi aware
> [1] http://logback.qos.ch/reasonsToSwitch.html#packagingData

--
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

Reply via email to