Thursday, January 19, 2012

Adobe ColdFusion 9 on Mac Lion - Fix for cfdocument and Hanging Admin

First let me start off that I am not a Mac owner and therefore please keep this in mind.


One of the issues with ACF9 on Mac OSX Lion is the use of the java.awt package to get items like the list of available printers.  The AWT package is just a wrapper for a packages that are native on the target operating system.  In this case, there are bugs in the apple.awt.CToolkit class that is the problem on MAC.


We were having an issue with Mach-II 1.9 hanging on MAC Lion recently and we narrowed it done to our use of java.awt.Toolkit.  You can indicate to the JVM that you want to use the sun.awt.* package instead which appears to have fixed the issue for Mach-II 1.9 for Mac OSX Lion users.  The positive side effect is that it fixed the hung "Info" page in the CFIDE as well.


You probably already have headless=true in your jvm.config file, however you need another directive to use a different awt toolkit otherwise the JVM will default the buggy apple.awt toolkit.


Let me know if this fixes other ACF9 issues on Mac OSX Lion like cfdocument.




-Djava.awt.headless=true
-Dawt.toolkit=sun.awt.HToolkit




Update 1: This appears to have fixed generating PDFs using cfdocument as well.


Update 2: I'd like to thank Sumit Verma at Ten24Web for spending 4 hours nailing down that AWT was causing an issue in Mach-II 1.9. This is what led me down the right path to this JVM config argument change.


Update 3: Typically it is "CF9/runtime/bin/jvm.config" where CF9 is the location you installed CF.  Be sure to make a back up copy of the jvm.config in case you foo bar something.

8 comments:

  1. More good news this also allowed me to use cfdocument again for generating PDFs which was the only other issue I was running into on Lion!

    ReplyDelete
  2. Where would the jvm.config file for CF9 be on a Mac? Assume I used the standard location(s) during installation...

    ReplyDelete
  3. Typically it is "CF9/runtime/bin/jvm.config" where CF9 is the location you installed CF. Be sure to make a back up copy of the jvm.config in case you foo bar something.

    ReplyDelete
  4. Thanks for posting this and for doing the legwork! I have been digging into this the past couple weeks and had also narrowed it down to the logic that was pulling the list of printers. I'm excited to give this a try...

    ReplyDelete
  5. Thanks! I have been struggling with this since I upgraded to Lion!

    ReplyDelete
  6. worked like a charm - thanks!

    ReplyDelete
  7. yes thanks! cfdocument for pdf generation is working on Lion...thx!

    ReplyDelete