OS X Issues

Hi there,

Using os x 10.5.3, java 1.6.0_05, idea 8445, plugin 0.2.16990, Scala 2.7.1 final

A couple of general questions:
1. Is there some easy way of copying and pasting the above info from within IDEA?
2. Should problems be reported here on in JIRA?

Now to the problems:
1. Have to edit Diana-8445.app/Contents/plist.info
a) To remove the java agent options under Java/VMOptions or IDEA crashes (I guess that's a general 8.0 problem)
b) The plugin appears to be compiled for java 1.6, so Java/JVMVersion needs to be 1.6, not 1.5. (or the plugin should be compiled for 1.5)

2. After creating a new Project, then a new Scala File, IDEA crashes completely on Make Project. I believe IDEA is configured correctly as it syntax highlights the source and jumps to source files ok. In fact, compilation appears to complete (there are class files in the output directory). The last thing I see is the dialog showing "clear caches", then IDEA crashes completely (the whole process dies). The log (~/Library/Caches/IntelliJIDEA80/log/idea.log) contains no new entries apart from the shutdown banner.



I think I've found the cause of the crash. The following is output to /var/log/system.log.

It appears it's trying to do a notification via Growl and dying in the process (I guess it's sending a notification that compilation has completed). I'm using a beta of Growl 1.1.3 if that helps (the most common version in the wild is 1.1.2).

Any way of turning off Growl notifications?

I guess this turns out to be another 8.0 issue, not Scala plugin specific. Should I raise an issue elsewhere?

NSRuntime.loadLibrary(/usr/lib/java/libObjCJava.dylib) error.
java.lang.UnsatisfiedLinkError: /usr/lib/java/libObjCJava.A.dylib:
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1822)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1702)
at java.lang.Runtime.load0(Runtime.java:770)
at java.lang.System.load(System.java:1005)
at com.apple.cocoa.foundation.NSRuntime.loadLibrary(NSRuntime.java:127)
at com.apple.cocoa.foundation.NSRuntime.(NSRuntime.java:35) at com.apple.cocoa.foundation.NSObject.(NSObject.java:27) at com.intellij.ui.GrowlNotifications.]]>(GrowlNotifications.java:13)
at com.intellij.ui.GrowlNotifications.getNofications(GrowlNotifications.java:24)
at com.intellij.ui.SystemNotificationsImpl.notify(SystemNotificationsImpl.java:17)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.a(ProgressManagerImpl.java:13)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.access$100(ProgressManagerImpl.java:39)
at com.intellij.openapi.progress.impl.ProgressManagerImpl$7.run(ProgressManagerImpl.java:11)
at com.intellij.openapi.application.impl.ApplicationImpl$5.run(ApplicationImpl.java:7)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:637)
at com.intellij.openapi.application.impl.ApplicationImpl$1$1.run(ApplicationImpl.java:9)
com.apple.launchd[164] (.com.jetbrains.intellij[22868]): Exited with exit code: 255


FYI, I updated Growl to 1.1.3 for the hell of it and it makes no difference. I'll create a post in the IntelliJ EAP forum for this issue


I've opened a thread in the EAP forum here for the Growl problem.



Plugin and IDEA version will be attached to your issue if you use exception analyzer (magic "blame" button in the dialog with exception stacktrace). It's the easiest way to submit exception to our JIRA.
Yes, we compile our plugin using JDK 1.6, but, as I think, it would be easy to build it using 1.5. Could you explain why it was necessary to edit info.plist?


Hi Ilya,

Regarding info.plist, when the JVMVersion is set to 1.5+ (the default), the OS X java launcher seems to select the 1.5 jre to lauch IntelliJ. As the plugin is compiled with 1.6, you get an UnsupportedClassVersionError when the plugin is loaded. Here's a snippet from the log:
java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:675)
at java.lang.ClassLoader.defineClass(ClassLoader.java:520)
at com.intellij.util.lang.UrlClassLoader._defineClass(UrlClassLoader.java:119)
at com.intellij.util.lang.UrlClassLoader.defineClass(UrlClassLoader.java:115)
at com.intellij.util.lang.UrlClassLoader._findClass(UrlClassLoader.java:91)
at com.intellij.ide.plugins.cl.PluginClassLoader.loadClassInsideSelf(PluginClassLoader.java:77)
at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:41)

Modifying it to 1.6+ fixes the problem. However, jdk 1.6 is only available for Intel macs. PPC macs only have 1.5 and Apple doesn't plan to support them (ever). Therefore, the better solution is to compile the plugin with a target of 1.5.

It's also necessary to remove the agent options from the VMOptions entry or 8.0 won't start at all (i.e. it is not related to the Scala plugin itself). I found this out via http://www.jetbrains.net/confluence/display/IDEADEV/Diana+EAP. Note: contrary to the comments, it appears to break under 1.5 on 10.5.3 as well as 1.6.