Bug 155777

Summary: java.io.FileNotFoundException: ecj.db (No such file or directory)
Product: [Fedora] Fedora Reporter: Robin Green <greenrd>
Component: java-1.4.2-gcj-compatAssignee: Andrew Overholt <overholt>
Status: CLOSED RAWHIDE QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: rawhide   
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2005-04-26 18:54:59 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Robin Green 2005-04-22 22:01:43 UTC
Description of problem:
I assume, because this has not been reported by anyone else yet, that this
problem is an artifact of upgrading from rawhide, to FC4test2, to rawhide again.

When I do yum upgrade eclipse-platform I get scriptlet errors like these:

  Cleanup   : libswt3-gtk2                 ####################### [17/21]
java.io.FileNotFoundException: ecj.db (No such file or directory)
   at gnu.java.nio.channels.FileChannelImpl.open(java.lang.String, int)
(/usr/lib/libgcj.so.6.0.0)
   at gnu.java.nio.channels.FileChannelImpl.FileChannelImpl(java.lang.String,
int) (/usr/lib/libgcj.so.6.0.0)
   at java.io.FileInputStream.FileInputStream(java.io.File)
(/usr/lib/libgcj.so.6.0.0)
   at gnu.gcj.runtime.PersistentByteMap.PersistentByteMap(java.io.File,
gnu.gcj.runtime.PersistentByteMap$AccessMode) (/usr/lib/libgcj.so.6.0.0)
   at gnu.java.lang.MainThread.call_main() (/usr/lib/libgcj.so.6.0.0)
   at gnu.java.lang.MainThread.run() (/usr/lib/libgcj.so.6.0.0)
error: %postun(libswt3-gtk2-3.1.0_fc-0.M6.7.i386) scriptlet failed, exit status 123
  Cleanup   : eclipse-platform             ####################### [18/21]
java.io.FileNotFoundException: ecj.db (No such file or directory)
   at gnu.java.nio.channels.FileChannelImpl.open(java.lang.String, int)
(/usr/lib/libgcj.so.6.0.0)
   at gnu.java.nio.channels.FileChannelImpl.FileChannelImpl(java.lang.String,
int) (/usr/lib/libgcj.so.6.0.0)
   at java.io.FileInputStream.FileInputStream(java.io.File)
(/usr/lib/libgcj.so.6.0.0)
   at gnu.gcj.runtime.PersistentByteMap.PersistentByteMap(java.io.File,
gnu.gcj.runtime.PersistentByteMap$AccessMode) (/usr/lib/libgcj.so.6.0.0)
   at gnu.java.lang.MainThread.call_main() (/usr/lib/libgcj.so.6.0.0)
   at gnu.java.lang.MainThread.run() (/usr/lib/libgcj.so.6.0.0)

Version-Release number of selected component (if applicable):
eclipse-platform-3.1.0_fc-0.M6.9

How reproducible:
Always

Steps to Reproduce:
1. Upgrade from previous rawhide version of eclipse-platform
  
Actual results:
See above

Expected results:
No errors

Additional info:

The file /usr/lib/eclipse/mappings/ecj.db indeed does not exist.

Comment 1 Andrew Overholt 2005-04-24 19:49:38 UTC
There is a bug in rebuild-gcj-db that manifests itself when all of the dbs in
`gcj-dbtool -p`.d are removed.  We need to add something to the script to not
attempt to `find` when there is nothing in the directory (or it does not exist).
 Moving to java-1.4.2-gcj-compat.

Comment 2 Robin Green 2005-04-26 18:54:59 UTC
That's not this bug. This turns out to be due to dangling symlinks. Since
symlinks aren't used any more by eclipse-* packages, this should not reoccur.

The fix for existing systems affected by this bug is to run

symlinks -d /usr/lib/gcj-4.0.0/classmap.db.d/

to delete the dangling symlinks.

It may be necessary to run that command again after upgrading eclipse-pde,
because eclipse-pde is not version-locked to eclipse-platform.