https://issues.apache.org/bugzilla/show_bug.cgi?id=53137
Bug #: 53137
Summary: Can't use |bin/rotatelogs in conjunction with
org.apache.jk.config.ApacheConfig
Product: Tomcat 6
Version: 6.0.26
Platform: PC
Status: NEW
Severity: normal
Priority: P2
Component: Connectors
AssignedTo: [email protected]
ReportedBy: [email protected]
Classification: Unclassified
The org.apache.jk.config.ApacheConfig class assumes that the value of the jkLog
parameter is a filename, and attempts to validate it by constructing a File
object.
However the Apache HTTPD which uses the output of this class also allows a pipe
syntax which allows for rolling log files, e.g. JkLogFile="|bin/rotatelogs.exe
logs/mod_jk.%Y-%m-%d.log 86400".
So the ApacheConfig class prevents the use of this valuable feature. It should
do one of two things:
1. Not check directory existence if the pipe "|" syntax is present
or better still:
2. Not check directory existence *at all*. Tomcat doesn't need the directory to
exist. It is Apache HTTPD that needs the logfile directory to exist, not
Tomcat, and failures in the Apache HTTPD configuration should be detected and
logged by Apache HTTPD, not by Tomcat. Note that if Tomcat detects the pipe
syntax it doesn't presently log the error at all, it just displays it on the
very transient startup screen. This is not really much use.
The server.xml required to produce this problem is as follows:
<Listener
className="org.apache.jk.config.ApacheConfig"
configHome="C:/Program Files (x86)/Apache Software Foundation/Apache2.2/"
modJk="modules/mod_jk.so"
jkWorker="ajp13"
jkLog="|bin/rotatelogs.exe logs/mod_jk.%Y-%m-%d.log 86400"
jkDebug="info"
/>
The console output is as follows:
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.lang.RuntimeException: Unable to create path to config file
:C:\
Program Files (x86)\Apache Software Foundation\Apache2.2\|bin\rotatelogs.exe
log
s\mod_jk.%Y-%m-%d.log 86400
at
org.apache.jk.config.BaseJkConfig.getConfigFile(BaseJkConfig.java:429
)
at
org.apache.jk.config.ApacheConfig.initProperties(ApacheConfig.java:23
7)
at org.apache.jk.config.BaseJkConfig.execute(BaseJkConfig.java:134)
at
org.apache.jk.config.BaseJkConfig.lifecycleEvent(BaseJkConfig.java:12
5)
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(Lifecycl
eSupport.java:119)
at
org.apache.catalina.core.StandardServer.start(StandardServer.java:703
)
at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
... 6 more
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]