Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Application not starting when file system path contains whitespace #6

Open
pdaengeli opened this issue Oct 8, 2020 · 2 comments
Open

Comments

@pdaengeli
Copy link

pdaengeli commented Oct 8, 2020

XSLWeb v4.0.0-RC-1 will not launch when the path to the application contains whitespace chars. For v3 this didn't pose a problem.

Test setup: application in /data/demo/xslweb/brea king:

[…]
17:13:08,513 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[global] - File property is set to [/data/demo/xslweb/brea\ king/bin/jetty/jetty-base/../../../home/logs/xslweb.log]
17:13:08,515 |-ERROR in ch.qos.logback.core.rolling.RollingFileAppender[global] - Failed to create parent directories for [/data/demo/xslweb/brea\ king/bin/jetty/jetty-base/../../../home/logs/xslweb.log]
17:13:08,515 |-ERROR in ch.qos.logback.core.rolling.RollingFileAppender[global] - openFile(/data/demo/xslweb/brea\ king/bin/jetty/jetty-base/../../../home/logs/xslweb.log,true) call failed. java.io.FileNotFoundException: /data/demo/xslweb/brea\ king/bin/jetty/jetty-base/../../../home/logs/xslweb.log (No such file or directory)
	at java.io.FileNotFoundException: /data/demo/xslweb/brea\ king/bin/jetty/jetty-base/../../../home/logs/xslweb.log (No such file or directory)
[…]
17:13:08,518 |-ERROR in ch.qos.logback.core.rolling.RollingFileAppender[pipeline] - openFile(/data/demo/xslweb/brea\ king/bin/jetty/jetty-base/../../../home/logs/pipeline.log,true) call failed. java.io.FileNotFoundException: /data/demo/xslweb/brea\ king/bin/jetty/jetty-base/../../../home/logs/pipeline.log (No such file or directory)
[…]
SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
2020-10-08 17:13:08.531:INFO:oejs.session:main: DefaultSessionIdManager workerName=node0
2020-10-08 17:13:08.531:INFO:oejs.session:main: No SessionScavenger set, using defaults
2020-10-08 17:13:08.532:INFO:oejs.session:main: node0 Scavenging every 660000ms
INFO  [main] - Opening XSLWeb Context ...
INFO  [main] - No /xslweb/home in JNDI
INFO  [main] - Using system property xslweb.home: /data/demo/xslweb/brea\ king/bin/jetty/jetty-base/../../../home
ERROR [main] - FATAL: Directory "xslweb.home" not found
ERROR [main] - Could not open XSLWeb Context
nl.armatiek.xslweb.error.XSLWebException: FATAL: Directory "xslweb.home" not found
[…]
ERROR [main] - Could not initialise servlet filter.
java.lang.NullPointerException: null

Starting the application under application in /data/demo/xslweb/working works as expected.

This is admittedly an edge case, but I think it would be good to allow paths containing whitespace or to put a warning in the Installation section of the documentation.

I happened to find this when following a nice tutorial by @pmasereeuw during Declarative Amsterdam 2020.

My platform: Linux 5.4.0-7642-generic x86_64

@maartenkroon
Copy link
Contributor

Hi, thanks for reporting this issue.

I looked into this but I don't have a fix yet. Ik looks like XSLWeb receives the value of the system property "xslweb.home" from the OS with spaces encoded with a backslash. The ready-to-run distributions use the application server Jetty. Jetty is started from the scripts using Jetty's start.jar. The system property "xslweb.home" is set in start.ini. It seems that when start.jar starts the actual Jetty Java process, the system property xslweb.home is passed on the command line without quotes and the OS therefore encodes the spaces with a backslash.

I also tried to pass the system property directly to start.jar, which passes it on the Jetty process, but the problem remains.
I will try to look into the code of start.jar to find out what is going on exactly.

For now I will add a warning to the documentation to install XSLWeb on a path not containing spaces...

@pdaengeli
Copy link
Author

Sorry, I lost sight of this.

If a solution to the problem is too intricate and given that as-is a relatively clear error message is output on the command line, a warning in the documentation seems sufficient.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants