IDEA Irida integration broken

Questions about YourKit Java Profiler
Post Reply
BasLeijdekkers
Posts: 11
Joined: Wed May 11, 2005 1:41 pm

IDEA Irida integration broken

Post by BasLeijdekkers »

I get the following exception when I try to profile an application using IDEA build 3326 and YourKit version 4.0.10 (evalutation). Possibly something changed in the openapi again? Any chance this is fixed in the EAP that is coming?

Bas

Code: Select all

com.intellij.execution.configurations.JavaParameters.setEnv(Ljava/util/HashMap;)V
java.lang.NoSuchMethodError: com.intellij.execution.configurations.JavaParameters.setEnv(Ljava/util/HashMap;)V
	at com.yourkit.idea45Plugin.MyRunner.patch(a:35)
	at com.intellij.execution.runners.RunStrategy.executeCommandLine(RunStrategy.java:54)
	at com.intellij.execution.runners.RunStrategy.a(RunStrategy.java:28)
	at com.intellij.execution.runners.RunStrategy.access$000(RunStrategy.java:8)
	at com.intellij.execution.runners.RunStrategy$2.run(RunStrategy.java:8)
	at com.intellij.execution.impl.ExecutionManagerImpl$1.run(ExecutionManagerImpl.java:2)
	at com.intellij.openapi.application.impl.LaterInvocatorEx$FlushQueue.run(LaterInvocatorEx.java:12)
	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:148)
	at com.intellij.ide.IdeEventQueue.a(IdeEventQueue.java:71)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:98)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
Vladimir Kondratyev
Posts: 1624
Joined: Tue Aug 10, 2004 7:52 pm

Post by Vladimir Kondratyev »

Thanks you very much for information. We'll investigate the problem.
Anton Katilin
Posts: 6172
Joined: Wed Aug 11, 2004 8:37 am

Post by Anton Katilin »

IJ has broken (again) API compatibility, changing method signature from setEnv(HashMap) to setEnv(Map).

We'll post a bug and/or search for workarounds...
BasLeijdekkers
Posts: 11
Joined: Wed May 11, 2005 1:41 pm

Post by BasLeijdekkers »

Maybe you can use reflection to call the method. I'm guessing it isn't called from within a time critical path in the YourKit plugin, and that's the way I solve api compatibility problems with the openapi.

Bas
Vladimir Kondratyev
Posts: 1624
Joined: Tue Aug 10, 2004 7:52 pm

Post by Vladimir Kondratyev »

Yeah, we are also using reflection... It's a pity that JetBrains doesn't provide any backward compatibility. AFAIK, _numerous_ IDEA API problem could be solved just by additing new methods and deprecating old ones. It's trivial, but not done.

Regards,
Vladimir
Anton Katilin
Posts: 6172
Joined: Wed Aug 11, 2004 8:37 am

Post by Anton Katilin »

Hi,

The build 4.0.11 that fixes the problem is available for download now.

Best regards,
Anton
BasLeijdekkers
Posts: 11
Joined: Wed May 11, 2005 1:41 pm

Post by BasLeijdekkers »

Thanks, build 4.0.11 works.
It is indeed a pity no backward compatibility is provided in IDEA's openapi. But I wonder is Eclipse for example better in that regard? Or Netbeans, JBuilder, JDeveloper? Which provides the most stable api in your opinion?

Best regards,
Bas
Vladimir Kondratyev
Posts: 1624
Joined: Tue Aug 10, 2004 7:52 pm

Post by Vladimir Kondratyev »

IMHO, JBuilder's API stability is perfect. The code which was written for v 5.0 works with latest version 2005. Eclipse is also very good, but it doesn't have the same long history as JBuilder.

Best wishes,
--vladimir
Anton Katilin
Posts: 6172
Joined: Wed Aug 11, 2004 8:37 am

Post by Anton Katilin »

Hi,

Yes, JBuilder's API is very stable. At least we never changed a single line of plugin code to support each next version of JBuilder :) On the other hand, for a long time they virtually add nothing serious in their releases.

NetBeans has changed dramatically from 3.6 to 4.0, so we decided to support only 4.0. Probably API was not that much changed, but has changed the way Run/Debug-like stuff is organized in UI, in actions etc. For us it matters.

Eclipse is stable, and they have added in 3.1 some API that we requested from them. Without it we were bound to use some internal APIs in Eclipse 3.0. But IMO Eclipse's API is no doubt the most complicated and difficult to learn among mentioned IDEs. Overabstracted.

Best regards,
Anton
Post Reply