fix(sitemanage): drop non-existent verbose property on CXF LoggingFeature bean - #204
Merged
Merged
Conversation
…ture bean The cxfLoggingFeature bean in projects/sitemanage/.../sitemanage-beans.xml sets a 'verbose' property on org.apache.cxf.feature.LoggingFeature, but CXF 3.5.11 does not expose a setVerbose setter on that class. The 'verbose' flag was removed when the inner LoggingFeature$Portable class was introduced in 3.5.x; the public setters on LoggingFeature are now only setLimit(int) and setPrettyLogging(boolean) (plus the (String, String, int, boolean, boolean) constructor for inLocation, outLocation, limit, prettyLogging, showBinary). Spring's BeanWrapper throws NotWritablePropertyException at startup when trying to apply the 'verbose' property. That cascades: cxfLoggingFeature bean fails -> rest-jax-rs bean (which references it) fails -> root Spring ApplicationContext fails to refresh -> the Rhythmyx webapp goes UNAVAILABLE. Confirmed against the cxf-core-3.5.11.jar on the runtime classpath; javap on org.apache.cxf.feature.LoggingFeature shows only setLimit and setPrettyLogging. The limit=4096 and prettyLogging=false settings already provide the actual safety controls (cap logged payload bytes, single-line summary format) and remain in place. The analysis doc for the original T2.3 PR has a post-merge revision note documenting the 3.5.x API change so the verbose property doesn't get re-added. Refs #168 > Co-Authored by Mavis Mavis-Code using MiniMax-M3 with agent mavis.
natechadwick
approved these changes
Sep 8, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Drops the non-existent
verboseproperty from thecxfLoggingFeatureSpring bean inprojects/sitemanage/.../sitemanage-beans.xml. Without this fix theRhythmyxwebapp fails to start: Spring throwsNotWritablePropertyExceptionon the bean, the rootApplicationContextfails to refresh, and Jetty reports the context asUNAVAILABLE.Why
org.apache.cxf.feature.LoggingFeaturein CXF 3.5.11 exposes only two setters —setLimit(int)andsetPrettyLogging(boolean)— plus theLoggingFeature(String, String, int, boolean, boolean)constructor (inLocation, outLocation, limit, prettyLogging, showBinary). Theverboseflag was removed when the innerLoggingFeature$Portableclass was introduced in 3.5.x. Thesitemanage-beans.xmlbean added by the T2.3 hardening PR (#169, issue #168) was written against the older 3.4.x API and still setverbose=false. Verified byjavaponcxf-core-3.5.11.jar:Cascade on startup
CI_HomeandEI_Homestart fine because they don't share the root context.What stays
limit=4096andprettyLogging=falseremain in the bean. They were the actual safety controls the original analysis intended:limit=4096caps the bytes the interceptor writes; the rest is truncated.prettyLogging=falsekeeps the output single-line, faster, smaller.The original analysis doc (
docs/.../issues/168-t2-3-cxf-logging-hardening.md) is updated in this PR with a post-merge revision note so theverboseproperty isn't re-added by a future reader.Verification
python3 -c "import xml.etree.ElementTree as ET; ET.parse('.../sitemanage-beans.xml')"-> well-formed.Rhythmyxwebapp reachesAVAILABLE; thecxfLoggingFeature/rest-jax-rs/NotWritablePropertyExceptionchain is gone fromjetty/base/logs/server.log.Out of scope
X1_GENERAL_EXTERNAL_ENTITIES_FEATUREnot recognized,Ignored arg <Arg name="threadpool">) are addressed separately. The X1/X2 noise is fixed in fix(utils): drop dead Xerces-1/Xerces-2 feature URIs from default DocumentBuilderFactory #205 (branchbugfix/135-xerces-x1x2-feature-removal). Thethreadpoolwarning comes from the upstream Jetty 9.4.58 distribution and is pre-existing.Refs #168