activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tuomas Kiviaho (JIRA)" <j...@apache.org>
Subject [jira] Created: (AMQ-1883) KahaStore is unable to create lock file when user.dir is manually changed
Date Wed, 13 Aug 2008 13:41:52 GMT
KahaStore is unable to create lock file when user.dir is manually changed
-------------------------------------------------------------------------

                 Key: AMQ-1883
                 URL: https://issues.apache.org/activemq/browse/AMQ-1883
             Project: ActiveMQ
          Issue Type: Bug
          Components: Message Store
    Affects Versions: 5.1.0
         Environment: WinNTFileSystem
jdk 1.6_05
            Reporter: Tuomas Kiviaho


I've been getting the following exception

Caused by: java.io.FileNotFoundException: activemq-data\localhost-kahastore\lock (The system
cannot find the path specified)
	at java.io.RandomAccessFile.open(Native Method)
	at java.io.RandomAccessFile.<init>(RandomAccessFile.java:212)
	at org.apache.activemq.kaha.impl.KahaStore.initialize(KahaStore.java:476)

I assume that changeset 661435 <http://fisheye6.atlassian.com/changelog/activemq?cs=661435>
was aimed to fix the problem following problem:
Error in directory.mkdirs is masked and can result in FileNotFoundException when creating
tmp_storage directory <http://open.iona.com/issues/browse/MB-360> 

I verified that there is no problem in creating the parent directories, but filesystem thinks
that directory doesn't exists after it has been created succesfully. After little more digging
I stumbled upon the following:
File.getAbsolutePath() is incorrect if "user.dir" is set on the command line <http://bugs.sun.com/bugdatabase/view_bug.do;:YfiG?bug_id=4117557>

There is some more information about using canonical form at Mule project <http://mule.mulesource.org/jira/browse/MULE-1112>
and I found out that using getCanonicalFile() does indeed work.

As a patch I suggest that all file/directory related methods at IOHelper would return (canonical)
File instead of String. 

Other not so intrusive possibility would be to change XBeanBrokerService.
KahaStore.<init>(File, String, AtomicLong) line: 103	
StoreFactory.open(File, String) line: 56	
XBeanBrokerService(BrokerService).getTempDataStore() line: 1178	



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message