I have committed this change to the trunk.  I reviewed the change, and
ran full set of tests on windows 2000.   Have not explicitly checked
on apple myself, waiting for feedback there - this fix has been tested
by multiple apple users in the past and did fix the problem.  The fix
does not change the behavior on systems where file sync does not
exhibit the problems described in the JIRA entry.

Change: 306963

Suresh Thalamati (JIRA) wrote:

>     [ 
> http://issues.apache.org/jira/browse/DERBY-1?page=comments#action_12331234 ] 
> 
> Suresh Thalamati commented on DERBY-1:
> --------------------------------------
> 
> I was hoping this issue will go away ,  but it seems to have appeared again 
> in jdk1.5.  Although there is a workaround  by
> setting derby.storage.fileSyncTransactionLog=true.  I think for users  who 
> are just   tryingout  Derby , hitting this problem is very annoying.   
> Resubmmitting  the workaround patch(derby1.diff)  for this problem againest 
> main trunk.  This  patch  solves  the problem by  
> Catching  the FileNotFoundException  then  set log write mode to file Sync   
> and then open the log files in plain "rw" mode.
> 
> Although it  is a vendor spefic fix ,  I think  it will really help  users  
> tryingout derby on  Mac.  It would be great  if some one can review the
> patch and reconsider it   for committing into 10.1 and main,  if there are no 
> objections from the community. 
>  
> All  tests passed on WIndow  Xp.   
> 
> My vote +1 . 
>   
> 
> 
> 
> 
>>Can't create a new db on OS X
>>-----------------------------
>>
>>         Key: DERBY-1
>>         URL: http://issues.apache.org/jira/browse/DERBY-1
>>     Project: Derby
>>        Type: Bug
>>  Components: Store
>>    Versions: 10.0.2.0
>> Environment: OS X 10.3.5, Java 1.4.2_05, Dual G5
>>    Reporter: Tom Santos
>>    Assignee: Suresh Thalamati
>> Attachments: derby1.diff
>>
>>This problem does not occur when I use the same jars on Linux.
>>I am unable to create a new database in ij by using the following command:
>>connect 'jdbc:derby:testdb;create=true';
>>I get the following output:
>>ERROR XJ041: Failed to create database 'testdb', see the next exception for 
>>details.
>>ERROR XBM01: Startup failed due to an exception, see next exception for 
>>details.
>>ERROR XJ001: Java exception: 
>>'/Users/tom/dev/java/derby-bin/lib/testdb/log/log1.dat (File exists): 
>>java.io.FileNotFoundException'.
>>All users have write permissions to the directory so it's not getting blocked 
>>there.  I'm not sure what's going on.  I've included the contents of 
>>derby.log below.  I've also included the result of running sysinfo on my 
>>machine below that.
>>----------------------------------------------------------------
>>2004-09-24 20:33:53.762 GMT:
>> Booting Derby version IBM Corp. - Apache Derby - 10.0.2.0 - (30301): 
>> instance c013800d-00ff-3226-5601-00000015bd70
>>on database directory /Users/tom/dev/java/derby-bin/lib/testdb 
>>2004-09-24 20:33:53.821 GMT:
>>Shutting down instance c013800d-00ff-3226-5601-00000015bd70
>>----------------------------------------------------------------
>>2004-09-24 20:33:53.837 GMT Thread[main,5,main] Cleanup action starting
>>ERROR XBM01: Startup failed due to an exception, see next exception for 
>>details.
>>        at 
>> org.apache.derby.iapi.error.StandardException.newException(StandardException.java)
>>        at 
>> org.apache.derby.iapi.services.monitor.Monitor.exceptionStartingModule(Monitor.java)
>>        at org.apache.derby.impl.store.raw.log.LogToFile.boot(LogToFile.java)
>>        at 
>> org.apache.derby.impl.services.monitor.BaseMonitor.boot(BaseMonitor.java)
>>        at 
>> org.apache.derby.impl.services.monitor.TopService.bootModule(TopService.java)
>>        at 
>> org.apache.derby.impl.services.monitor.BaseMonitor.startModule(BaseMonitor.java)
>>        at 
>> org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Monitor.java)
>>        at 
>> org.apache.derby.impl.store.raw.data.BaseDataFileFactory.bootLogFactory(BaseDataFileFactory.java)
>>        at 
>> org.apache.derby.impl.store.raw.data.BaseDataFileFactory.setRawStoreFactory(BaseDataFileFactory.java)
>>        at org.apache.derby.impl.store.raw.RawStore.boot(RawStore.java)
>>        at 
>> org.apache.derby.impl.services.monitor.BaseMonitor.boot(BaseMonitor.java)
>>        at 
>> org.apache.derby.impl.services.monitor.TopService.bootModule(TopService.java)
>>        at 
>> org.apache.derby.impl.services.monitor.BaseMonitor.startModule(BaseMonitor.java)
>>        at 
>> org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Monitor.java)
>>        at 
>> org.apache.derby.impl.store.access.RAMAccessManager.boot(RAMAccessManager.java)
>>        at 
>> org.apache.derby.impl.services.monitor.BaseMonitor.boot(BaseMonitor.java)
>>        at 
>> org.apache.derby.impl.services.monitor.TopService.bootModule(TopService.java)
>>        at 
>> org.apache.derby.impl.services.monitor.BaseMonitor.startModule(BaseMonitor.java)
>>        at 
>> org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Monitor.java)
>>        at 
>> org.apache.derby.impl.db.BasicDatabase.bootStore(BasicDatabase.java)
>>        at org.apache.derby.impl.db.BasicDatabase.boot(BasicDatabase.java)
>>        at 
>> org.apache.derby.impl.services.monitor.BaseMonitor.boot(BaseMonitor.java)
>>        at 
>> org.apache.derby.impl.services.monitor.TopService.bootModule(TopService.java)
>>        at 
>> org.apache.derby.impl.services.monitor.BaseMonitor.bootService(BaseMonitor.java)
>>        at 
>> org.apache.derby.impl.services.monitor.BaseMonitor.createPersistentService(BaseMonitor.java)
>>        at 
>> org.apache.derby.iapi.services.monitor.Monitor.createPersistentService(Monitor.java)
>>        at 
>> org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(EmbedConnection.java)
>>        at 
>> org.apache.derby.impl.jdbc.EmbedConnection.<init>(EmbedConnection.java)
>>        at 
>> org.apache.derby.impl.jdbc.EmbedConnection20.<init>(EmbedConnection20.java)
>>        at 
>> org.apache.derby.impl.jdbc.EmbedConnection30.<init>(EmbedConnection30.java)
>>        at org.apache.derby.jdbc.Driver30.getNewEmbedConnection(Driver30.java)
>>        at org.apache.derby.jdbc.Driver169.connect(Driver169.java)
>>        at java.sql.DriverManager.getConnection(DriverManager.java:512)
>>        at java.sql.DriverManager.getConnection(DriverManager.java:140)
>>        at org.apache.derby.impl.tools.ij.ij.dynamicConnection(ij.java)
>>        at org.apache.derby.impl.tools.ij.ij.ConnectStatement(ij.java)
>>        at org.apache.derby.impl.tools.ij.ij.ijStatement(ij.java)
>>        at org.apache.derby.impl.tools.ij.utilMain.go(utilMain.java)
>>        at org.apache.derby.impl.tools.ij.Main.go(Main.java)
>>        at org.apache.derby.impl.tools.ij.Main.mainCore(Main.java)
>>        at org.apache.derby.impl.tools.ij.Main14.main(Main14.java)
>>        at org.apache.derby.tools.ij.main(ij.java)
>>============= begin nested exception, level (1) ===========
>>java.io.FileNotFoundException: /Users/tom/dev/java/derby-bin/lib/log/log1.dat 
>>(File exists)
>>        at java.io.RandomAccessFile.open(Native Method)
>>        at java.io.RandomAccessFile.<init>(RandomAccessFile.java:204)
>>        at 
>> org.apache.derby.impl.io.DirRandomAccessFile.<init>(DirRandomAccessFile.java)
>>        at 
>> org.apache.derby.impl.io.DirRandomAccessFile4.<init>(DirRandomAccessFile4.java)
>>        at 
>> org.apache.derby.impl.io.DirFile4.getRandomAccessFile(DirFile4.java)
>>        at org.apache.derby.impl.store.raw.log.LogToFile.run(LogToFile.java)
>>        at java.security.AccessController.doPrivileged(Native Method)
>>        at 
>> org.apache.derby.impl.store.raw.log.LogToFile.privRandomAccessFile(LogToFile.java)
>>        at org.apache.derby.impl.store.raw.log.LogToFile.boot(LogToFile.java)
>>        at 
>> org.apache.derby.impl.services.monitor.BaseMonitor.boot(BaseMonitor.java)
>>        at 
>> org.apache.derby.impl.services.monitor.TopService.bootModule(TopService.java)
>>        at 
>> org.apache.derby.impl.services.monitor.BaseMonitor.startModule(BaseMonitor.java)
>>        at 
>> org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Monitor.java)
>>        at 
>> org.apache.derby.impl.store.raw.data.BaseDataFileFactory.bootLogFactory(BaseDataFileFactory.java)
>>        at 
>> org.apache.derby.impl.store.raw.data.BaseDataFileFactory.setRawStoreFactory(BaseDataFileFactory.java)
>>        at org.apache.derby.impl.store.raw.RawStore.boot(RawStore.java)
>>        at 
>> org.apache.derby.impl.services.monitor.BaseMonitor.boot(BaseMonitor.java)
>>        at 
>> org.apache.derby.impl.services.monitor.TopService.bootModule(TopService.java)
>>        at 
>> org.apache.derby.impl.services.monitor.BaseMonitor.startModule(BaseMonitor.java)
>>        at 
>> org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Monitor.java)
>>        at 
>> org.apache.derby.impl.store.access.RAMAccessManager.boot(RAMAccessManager.java)
>>        at 
>> org.apache.derby.impl.services.monitor.BaseMonitor.boot(BaseMonitor.java)
>>        at 
>> org.apache.derby.impl.services.monitor.TopService.bootModule(TopService.java)
>>        at 
>> org.apache.derby.impl.services.monitor.BaseMonitor.startModule(BaseMonitor.java)
>>        at 
>> org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Monitor.java)
>>        at 
>> org.apache.derby.impl.db.BasicDatabase.bootStore(BasicDatabase.java)
>>        at org.apache.derby.impl.db.BasicDatabase.boot(BasicDatabase.java)
>>        at 
>> org.apache.derby.impl.services.monitor.BaseMonitor.boot(BaseMonitor.java)
>>        at 
>> org.apache.derby.impl.services.monitor.TopService.bootModule(TopService.java)
>>        at 
>> org.apache.derby.impl.services.monitor.BaseMonitor.bootService(BaseMonitor.java)
>>        at 
>> org.apache.derby.impl.services.monitor.BaseMonitor.createPersistentService(BaseMonitor.java)
>>        at 
>> org.apache.derby.iapi.services.monitor.Monitor.createPersistentService(Monitor.java)
>>        at 
>> org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(EmbedConnection.java)
>>        at 
>> org.apache.derby.impl.jdbc.EmbedConnection.<init>(EmbedConnection.java)
>>        at 
>> org.apache.derby.impl.jdbc.EmbedConnection20.<init>(EmbedConnection20.java)
>>        at 
>> org.apache.derby.impl.jdbc.EmbedConnection30.<init>(EmbedConnection30.java)
>>        at org.apache.derby.jdbc.Driver30.getNewEmbedConnection(Driver30.java)
>>        at org.apache.derby.jdbc.Driver169.connect(Driver169.java)
>>        at java.sql.DriverManager.getConnection(DriverManager.java:512)
>>        at java.sql.DriverManager.getConnection(DriverManager.java:140)
>>        at org.apache.derby.impl.tools.ij.ij.dynamicConnection(ij.java)
>>        at org.apache.derby.impl.tools.ij.ij.ConnectStatement(ij.java)
>>        at org.apache.derby.impl.tools.ij.ij.ijStatement(ij.java)
>>        at org.apache.derby.impl.tools.ij.utilMain.go(utilMain.java)
>>        at org.apache.derby.impl.tools.ij.Main.go(Main.java)
>>        at org.apache.derby.impl.tools.ij.Main.mainCore(Main.java)
>>        at org.apache.derby.impl.tools.ij.Main14.main(Main14.java)
>>        at org.apache.derby.tools.ij.main(ij.java)
>>============= end nested exception, level (1) ===========
>>Cleanup action completed
>>------------------ Java Information ------------------
>>Java Version:    1.4.2_05
>>Java Vendor:     Apple Computer, Inc.
>>Java home:       
>>/System/Library/Frameworks/JavaVM.framework/Versions/1.4.2/Home
>>Java classpath:  
>>/Users/tom/dev/java/derby-bin/lib/derby.jar:/Users/tom/dev/java/derby-bin/lib/derbytools.jar:/Users/tom/dev/java/derby-bin/lib/derbynet.jar:/Users/tom/dev/java/derby-bin/lib/db2jcc.jar:/Users/tom/dev/java/derby-bin/lib/db2jcc_license_c.jar
>>OS name:         Mac OS X
>>OS architecture: ppc
>>OS version:      10.3.5
>>Java user name:  tom
>>Java user home:  /Users/tom
>>Java user dir:   /Users/tom/dev/java/derby-bin/lib
>>--------- Derby Information --------
>>[/Users/tom/dev/java/derby-bin/lib/derby.jar] 10.0.2.0 - (46005)
>>[/Users/tom/dev/java/derby-bin/lib/derbytools.jar] 10.0.2.0 - (46005)
>>[/Users/tom/dev/java/derby-bin/lib/derbynet.jar] 10.0.2.0 - (46005)
>>[/Users/tom/dev/java/derby-bin/lib/db2jcc.jar] 2.4 - (17)
>>[/Users/tom/dev/java/derby-bin/lib/db2jcc_license_c.jar] 2.4 - (17)
>>------------------------------------------------------
>>----------------- Locale Information -----------------
>>------------------------------------------------------
> 
> 

Reply via email to