Details
-
Bug
-
Status: Resolved
-
Resolution: Fixed
-
1.7
-
None
-
Operating System: Mac OS X 10.4
Platform: Macintosh
Description
Overview:
The Mac OS X application bundle for Squiggle (a GUI front-end for Batik) refuses to run if it is installed in a path containing spaces, and possibly some other odd characters. However, it does not produce any error messages; it just doesn't start.
Steps to Reproduce:
1. Create a folder whose name contains one or more spaces.
2. Download the Mac OS X disk image from
http://xmlgraphics.apache.org/batik/download.cgi#Download+a+distribution
3. Most OS X native browsers will mount the disk image automatically. If your browser is a ported browser that doesn't do this, find the downloaded disk image and double-click on it to mount it.
4. Install the Squiggle application by dragging it from the disk image to the folder created in step 1, or to a sub-folder of a folder whose name contains one or more spaces.
5. Un-mount (eject) the disk image.
6. Double-click on the installed Squiggle application to launch it.
7. When the computer displays the message '“Squiggle” is an application which was downloaded from the Internet. Are you sure you want to open it?' click Open.
Actual Results:
The Squiggle icon that appeared in the Dock in step 7 disappears. On subsequent attempted launches (when the computer does not ask for confirmation) the icon appears very briefly in the Dock and then disappears. No splash screens etc appear. The following is written to the Console (which can be read by opening /Applications/Utilities/Console.app):
Dec 18 15:45:25 Beetle [0x0-0x135135].org.apache.batik[77397]: usage: dirname path
Dec 18 15:45:25 Beetle [0x0-0x135135].org.apache.batik[77397]: Unable to access jarfile /../Resources/batik-squiggle.jar
Dec 18 15:45:25 Beetle com.apple.launchd[158] ([0x0-0x135135].org.apache.batik[77397]): Exited with exit code: 1
Expected Results:
The Squiggle application should launch, display a splash screen and continue to run, and its icon should remain in the Dock until the user desires the application to quit.
Build Date & Platform:
Build 2008-01-06 on Mac OS 10.5.8
Additional Builds and Platforms:
This only affects the Mac OS X application. The JAR file works just fine.
Additional Information:
I know how to fix this.
Inside the Mac OS X application bundle (applications on OS X are really just folders whose name ends in '.app') there is a file at Squiggle.app/Contents/MacOS/Squiggle. It is an executable shell script that is run when the user double-clicks on the application. It attempts to start up the JAR located at Squiggle.app/Contents/Resources/batik-squiggle.jar. It is this file that contains the bug. This script reads as follows:
#!/bin/sh
JAVA=/usr/bin/java
[ -e "$JAVA_HOME/bin/java" ] && JAVA="$JAVA_HOME/bin/java"
"$JAVA" -Dcom.apple.mrj.application.apple.menu.about.name=Squiggle -jar "`dirname $0`/../Resources/batik-squiggle.jar"
The problem is in the last line. The script should read as follows:
#!/bin/sh
JAVA=/usr/bin/java
[ -e "$JAVA_HOME/bin/java" ] && JAVA="$JAVA_HOME/bin/java"
"$JAVA" -Dcom.apple.mrj.application.apple.menu.about.name=Squiggle -jar "`dirname \"$0\"`/../Resources/batik-squiggle.jar"
I have also attached the corrected script.