[jira] [Commented] (CXF-8365) LoggingInInterceptor could not be extended / logs only once

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

[jira] [Commented] (CXF-8365) LoggingInInterceptor could not be extended / logs only once

Colm O hEigeartaigh (Jira)

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

Lars Uffmann commented on CXF-8365:

Hello [~ffang] ,

??The expected default behaviour of LoggingInInterceptor is that it should print incoming message once and only once??

I do not argue that requirement. But the way it is actually implemented prevents more then one instance of LoggingInInterceptor to log the message, even when they use different LogEventSender implementations and are added to the interceptor chain up on purpose. Just think about it one more time. Is my latest code snippet is not a legitimate usage of LoggingInInterceptor, which should be supported? Anyway, thanks for your time and patience.




> LoggingInInterceptor could not be extended / logs only once
> -----------------------------------------------------------
>                 Key: CXF-8365
>                 URL: https://issues.apache.org/jira/browse/CXF-8365
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-WS Runtime, logging
>    Affects Versions: 3.4.0
>            Reporter: Lars Uffmann
>            Assignee: Freeman Yue Fang
>            Priority: Major
> Coming with CXF-8257 {{org.apache.cxf.ext.logging.LoggingInInterceptor}} will log a given message only once:
> {code:java}
> public void handleMessage(Message message) throws Fault {
>     if (isLoggingDisabledNow(message)) {
>         return;
>     } else {
>         //ensure only logging once for a certain message
>         //this can prevent message logging again when fault
>         //happen after PRE_INVOKE phase(rewind calls into LoggingInFaultInterceptor)
>         message.put(LIVE_LOGGING_PROP, Boolean.FALSE);
>     }
> {code}
> Filtering is done per message, not per Interceptor instance. We use a custom {{MyLoggingInInterceptor}} which subclasses the {{LoggingInInterceptor}}. (We Subclass in order to use different {{LogEventSender).}} So two distinct interceptor instances are applied to the Endpoint/Bus/Client but the message is logged only in the first invocation.

This message was sent by Atlassian Jira