]
James Perkins commented on WFCORE-4474:
---------------------------------------
So what happens is that the second command resets the {{relative-to}} attribute to
{{undefined}}. This is because "C:\\server.log" is determined to be a absolute
path. The only way to fix this would be to remove the {{FileCorrector}}, but that would be
a fairly big change in behavior IMO.
Missing path validation of a log file while update path
--------------------------------------------------------
Key: WFCORE-4474
URL:
https://issues.jboss.org/browse/WFCORE-4474
Project: WildFly Core
Issue Type: Bug
Components: Logging
Affects Versions: 9.0.0.Beta4
Reporter: Vratislav Marek
Assignee: James Perkins
Priority: Major
After the first successful set of a valid path, you can set an invalid path.
It is can be relative to that while "relative-to" parameter is overridden, the
validator doesn't validate it.
Discovered on Windows.
A code block is divided, but it is holding sequence to reproduce.
_This works as expected._
{code:bash}
[standalone@localhost:9990 /]
/subsystem=logging/periodic-rotating-file-handler=FILE:write-attribute(name=file,value={path=C:/server.log})
{
"outcome" => "failed",
"failure-description" => "WFLYCTL0158: Operation handler failed:
java.nio.file.InvalidPathException: Illegal char <
:> at index 61:
D:\\Tests\\clear\\wildfly-17.0.0.Beta1-SNAPSHOT\\standalone\\log\\C:/server.log",
"rolled-back" => true
}
[standalone@localhost:9990 /]
/subsystem=logging/periodic-rotating-file-handler=FILE:write-attribute(name=file,value={path=C:\server.log})
{
"outcome" => "failed",
"failure-description" => "WFLYCTL0158: Operation handler failed:
java.nio.file.InvalidPathException: Illegal char <
:> at index 61:
D:\\Tests\\clear\\wildfly-17.0.0.Beta1-SNAPSHOT\\standalone\\log\\C:server.log",
"rolled-back" => true
}
{code}
_Still works as expected. But After this successful write-attribute command, it that
changing._
{code:bash}
[standalone@localhost:9990 /]
/subsystem=logging/periodic-rotating-file-handler=FILE:write-attribute(name=file,value={path=C:\\server.log})
{"outcome" => "success"}
{code}
*Now there is a problem, it that not works as expected. The validator accepts invalid
path.*
{code:bash}
[standalone@localhost:9990 /]
/subsystem=logging/periodic-rotating-file-handler=FILE:write-attribute(name=file,value={path=C:/server.log})
{"outcome" => "success"}
[standalone@localhost:9990 /]
/subsystem=logging/periodic-rotating-file-handler=FILE:write-attribute(name=file,value={path=C:server.log})
{"outcome" => "success"}
{code}
_But not accept all invalid paths._
{code:bash}
[standalone@localhost:9990 /]
/subsystem=logging/periodic-rotating-file-handler=FILE:write-attribute(name=file,value={path=C:*server.log})
{
"outcome" => "failed",
"failure-description" => "WFLYCTL0158: Operation handler failed:
java.nio.file.InvalidPathException: Illegal char <
*> at index 2: C:*server.log",
"rolled-back" => true
}
{code}
_Verification if the unsuccessful update changes something. But not._
{code:bash}
[standalone@localhost:9990 /]
/subsystem=logging/periodic-rotating-file-handler=FILE:write-attribute(name=file,value={path=C:/server.log})
{"outcome" => "success"}
[standalone@localhost:9990 /]
/subsystem=logging/periodic-rotating-file-handler=FILE:write-attribute(name=file,value={path=C:server.log})
{"outcome" => "success"}
[standalone@localhost:9990 /]
/subsystem=logging/periodic-rotating-file-handler=FILE:write-attribute(name=file,value={path=C:\\server.log})
{"outcome" => "success"}
{code}
_Verification if is really set in the property value. Yes_
{code:bash}
[standalone@localhost:9990 /]
/subsystem=logging/periodic-rotating-file-handler=FILE:read-attribute(name=file)
{
"outcome" => "success",
"result" => {"path" => "C:\\server.log"}
}
[standalone@localhost:9990 /]
/subsystem=logging/periodic-rotating-file-handler=FILE:write-attribute(name=file,value={path=C:server.log})
{"outcome" => "success"}
[standalone@localhost:9990 /]
/subsystem=logging/periodic-rotating-file-handler=FILE:read-attribute(name=file)
{
"outcome" => "success",
"result" => {"path" => "C:server.log"}
}
[standalone@localhost:9990 /]
/subsystem=logging/periodic-rotating-file-handler=FILE:write-attribute(name=file,value={path=C:/server.log})
{"outcome" => "success"}
[standalone@localhost:9990 /]
/subsystem=logging/periodic-rotating-file-handler=FILE:read-attribute(name=file)
{
"outcome" => "success",
"result" => {"path" => "C:/server.log"}
}
[standalone@localhost:9990 /]
/subsystem=logging/periodic-rotating-file-handler=FILE:write-attribute(name=file,value={path=C:\server.log})
{"outcome" => "success"}
[standalone@localhost:9990 /]
/subsystem=logging/periodic-rotating-file-handler=FILE:read-attribute(name=file)
{
"outcome" => "success",
"result" => {"path" => "C:server.log"}
}
{code}