Details
-
Improvement
-
Status: Resolved
-
Trivial
-
Resolution: Fixed
-
2.15.3
-
None
-
Unknown
Description
When creating a CxfEndpoint, setting a loggingSizeLimit -1 to disable limiting payload logging cause no effect due to the code bellow. CXF own LoggingIn/OutInterceptor code accept -1 as unlimited.
org.apache.camel.component.cxf.CxfEndpoint
if (getLoggingSizeLimit() > 0) { sfb.getFeatures().add(new LoggingFeature(getLoggingSizeLimit())); } else { sfb.getFeatures().add(new LoggingFeature()); }
org.apache.cxf.feature.LoggingFeature
private static final int DEFAULT_LIMIT = AbstractLoggingInterceptor.DEFAULT_LIMIT; private static final LoggingInInterceptor IN = new LoggingInInterceptor(DEFAULT_LIMIT); private static final LoggingOutInterceptor OUT = new LoggingOutInterceptor(DEFAULT_LIMIT); int limit = DEFAULT_LIMIT; public LoggingFeature() {} protected void initializeProvider(InterceptorProvider provider, Bus bus) { if (limit == DEFAULT_LIMIT && inLocation == null && outLocation == null && !prettyLogging) { provider.getInInterceptors().add(IN); provider.getInFaultInterceptors().add(IN); provider.getOutInterceptors().add(OUT); provider.getOutFaultInterceptors().add(OUT); } else { //Creates and uses new Interceptors with specified limit }
org.apache.cxf.interceptor.LoggingInInterceptor
public LoggingInInterceptor(int lim) { this(); limit = lim; } protected void logInputStream(Message message, InputStream is, LoggingMessage buffer, String encoding, String ct) { (...) //only copy up to the limit since that's all we need to log //we can stream the rest IOUtils.copyAtLeast(bis, bos, limit == -1 ? Integer.MAX_VALUE : limit);