[ 
https://issues.apache.org/jira/browse/ARTEMIS-219?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14734729#comment-14734729
 ] 

clebert suconic commented on ARTEMIS-219:
-----------------------------------------

This is because we need the data directory relative to artemis.instance. We are 
using URIs.. so if you used / it would work fine.

> Absolute paths for persistence directories are not working on Windows
> ---------------------------------------------------------------------
>
>                 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)

Reply via email to