The class org.apache.log4j.or.jms.MessageRenderer has never been specifically included in the compile sourcedirs in the build.jms target. This has led to some variation in the inclusion of this class in the distributed log4j.jars: log4j 1.0.4 - 1.2.5: MessageRenderer: class present log4j 1.2.6 - 1.2.7: MessageRenderer: class missing log4j 1.2.8: MessageRenderer: class present log4j 1.2.9 - 1.3.x: MessageRenderer: class missing This investigation has highlighted an interesting sequence of events: log4j 1.0.4 - 1.2.5: MessageRenderer was used in org.apache.log4.net.JMSSink which led to its automatic compilation log4j 1.2.6 - 1.2.7: JMSSink modified to not use MessageRenderer, import remains but jdk1.3/target1.1 ignores the reference log4j 1.2.8: : jdk1.4/target1.2 used to build release, more agressive dependency analysis leads to compilation of MessageRenderer log4j 1.2.9: : jdk1.3/target1.1 used to build release, class missing again log4j 1.3.6 alpha6 : jdk1.4/target1.2 used to build release, JMSSink has now had unused import removed so MessageRenderer not compiled This class does not appear to be used in the current log4j codebase but I'm not sure if its supposed to be a part of the public API or not? To ensure its inclusion in the distribution jar the package org.apache.log4j.or.jms should be specifically added to the javac include list in the build.jms target, the includes already exist in the jar targets. Patches are attached for the 1.2.9 and head branches of build.xml
Created attachment 14742 [details] patch to 1.2.9 build.xml
Created attachment 14743 [details] patch to 1.3.x build.xml
Thanks Andy.
Patch applied in both the 1.2 branch and HEAD.
This has been fixed in CVS Head but the problem still remains in the current 1.2.9 release. Reopened for awareness.
Fix should be available in the 1.2.11rc1 release. Please verify. Verification of this bug is a blocking issue for the 1.2.11 release, #35032. Thanks.
Yep, class present and working in 1.2.11rc1. If anyone is interested I have the beginings of a junit test which could be enhanced to validate the output from MessageRenderer against a known value. This currently uses the Mockrunner testing framework from http://mockrunner.sourceforge.net/index.html. Regards Andy