[
https://issues.apache.org/jira/browse/ARTEMIS-219?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
clebert suconic updated ARTEMIS-219:
------------------------------------
Summary: Back-slash character is not being accepted on windows, causing
issues on startup (was: Absolute paths for persistence directories are not
working on Windows)
> Back-slash character is not being accepted on windows, causing issues on
> startup
> --------------------------------------------------------------------------------
>
> Key: ARTEMIS-219
> URL: https://issues.apache.org/jira/browse/ARTEMIS-219
> Project: ActiveMQ Artemis
> Issue Type: Bug
> Components: Broker
> Affects Versions: 1.0.0
> Reporter: Jeff Mesnil
> Priority: Critical
>
> Use case:
> * Artemis embedded in an application server.
> * Persistence directories configured using absolute paths (e.g. :
> C:\Java\wildfly-10.0.0.CR1-SNAPSHOT\standalone\data\activemq\journal)
> When the server starts, Artemis throws an exception:
> {noformat}
> 2015-09-08 10:16:35,751 ERROR [org.jboss.msc.service.fail] (ServerService
> Thread Pool -- 64) MSC000001: Failed to start service
> jboss.messaging-activemq.default.jms.manager:
> org.jboss.msc.service.StartException in service
> jboss.messaging-activemq.default.jms.manager: WFLYMSGAMQ0033: Failed to start
> service
> at
> org.wildfly.extension.messaging.activemq.jms.JMSService.doStart(JMSService.java:177)
> at
> org.wildfly.extension.messaging.activemq.jms.JMSService.access$000(JMSService.java:60)
> at
> org.wildfly.extension.messaging.activemq.jms.JMSService$1.run(JMSService.java:94)
> at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> at org.jboss.threads.JBossThread.run(JBossThread.java:320)
> Caused by: java.lang.RuntimeException: java.lang.IllegalArgumentException:
> Illegal character in opaque part at index 2:
> C:\Java\wildfly-10.0.0.CR1-SNAPSHOT\standalone\data\activemq\journal
> at
> org.apache.activemq.artemis.core.config.impl.ConfigurationImpl.subFolder(ConfigurationImpl.java:1434)
> at
> org.apache.activemq.artemis.core.config.impl.ConfigurationImpl.getJournalLocation(ConfigurationImpl.java:507)
> at
> org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.checkJournalDirectory(ActiveMQServerImpl.java:1800)
> at
> org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.start(ActiveMQServerImpl.java:381)
> at
> org.apache.activemq.artemis.jms.server.impl.JMSServerManagerImpl.start(JMSServerManagerImpl.java:381)
> at
> org.wildfly.extension.messaging.activemq.jms.JMSService.doStart(JMSService.java:173)
> ... 8 more
> Caused by: java.lang.IllegalArgumentException: Illegal character in opaque
> part at index 2:
> C:\Java\wildfly-10.0.0.CR1-SNAPSHOT\standalone\data\activemq\journal
> at java.net.URI.create(URI.java:852)
> at java.net.URI.resolve(URI.java:1036)
> at
> org.apache.activemq.artemis.core.config.impl.ConfigurationImpl.subFolder(ConfigurationImpl.java:1430)
> ... 13 more
> Caused by: java.net.URISyntaxException: Illegal character in opaque part at
> index 2: C:\Java\wildfly-10.0.0.CR1-SNAPSHOT\standalone\data\activemq\journal
> at java.net.URI$Parser.fail(URI.java:2848)
> at java.net.URI$Parser.checkChars(URI.java:3021)
> at java.net.URI$Parser.parse(URI.java:3058)
> at java.net.URI.<init>(URI.java:588)
> at java.net.URI.create(URI.java:850)
> ... 15 more
> {noformat}
> It is common usage to use absolute paths for these persistence directories in
> the shared store use case. It is no longer possible to do so.
> The configuration will now always be stored in a subfolder based on the
> artemis.instance or user.dir sysprop. In the shared store use case, these sys
> props makes no sense.
> Note that it works in Unix but I'm not sure that's by design. A file://XXX//
> folder will be ignored if it resolves an absolute file path (code in
> ConfigurationImpl#subFolder).
> This is critical for us to be able to use absolute paths to configure Artemis
> persistence. Our app server has its own way to resolve paths and we just need
> to pass the resolved absolute paths to Artemis.
> Using only relative paths will make the configuration of Artemis more complex
> than it already is.
> Possible fix:
> * Detect if the configured directory is absolute before trying to resolve it
> as a relative path
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)