Kannotator not working in IDEA 13


#1

Trying to use the latest KAnnotator in IDEA 13, and I get the following:

com.intellij.ui.ColoredTreeCellRenderer.append(Ljava/lang/String;)V: com.intellij.ui.ColoredTreeCellRenderer.append(Ljava/lang/String;)V

java.lang.NoSuchMethodError: com.intellij.ui.ColoredTreeCellRenderer.append(Ljava/lang/String;)V

     at org.jetbrains.kannotator.plugin.actions.dialog.LibraryCheckboxTreeRenderer.customizeRenderer(LibraryCheckboxTreeRenderer.kt:14)

     at com.intellij.ui.CheckboxTreeBase$CheckboxTreeCellRendererBase.getTreeCellRendererComponent(CheckboxTreeBase.java:350)

     at javax.swing.plaf.basic.BasicTreeUI$NodeDimensionsHandler.getNodeDimensions(BasicTreeUI.java:2718)

     at javax.swing.tree.AbstractLayoutCache.getNodeDimensions(AbstractLayoutCache.java:475)

     at javax.swing.tree.VariableHeightLayoutCache$TreeStateNode.updatePreferredSize(VariableHeightLayoutCache.java:1342)

     at javax.swing.tree.VariableHeightLayoutCache$TreeStateNode.expand(VariableHeightLayoutCache.java:1469)

     at javax.swing.tree.VariableHeightLayoutCache$TreeStateNode.expand(VariableHeightLayoutCache.java:1270)

     at javax.swing.tree.VariableHeightLayoutCache.rebuild(VariableHeightLayoutCache.java:725)

     at javax.swing.tree.VariableHeightLayoutCache.treeStructureChanged(VariableHeightLayoutCache.java:626)

     at javax.swing.plaf.basic.BasicTreeUI$Handler.treeStructureChanged(BasicTreeUI.java:3834)

     at javax.swing.tree.DefaultTreeModel.fireTreeStructureChanged(DefaultTreeModel.java:561)

     at javax.swing.tree.DefaultTreeModel.nodeStructureChanged(DefaultTreeModel.java:347)

     at org.jetbrains.kannotator.plugin.actions.dialog.LibraryItemsTreeController.buildTree(LibraryItemsTreeController.kt:52)

     at org.jetbrains.kannotator.plugin.actions.dialog.InferAnnotationDialog.init(InferAnnotationDialog.java:93)

     at org.jetbrains.kannotator.plugin.actions.dialog.InferAnnotationDialog.<init>(InferAnnotationDialog.java:53)

     at org.jetbrains.kannotator.plugin.actions.AnnotateJarAction.annotateJars(AnnotateJarAction.kt:19)

     at org.jetbrains.kannotator.plugin.actions.AnnotateJarAction.actionPerformed(AnnotateJarAction.kt:15)

     at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:162)

     at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter$1.run(ActionMenuItem.java:261)

     at com.intellij.openapi.wm.impl.FocusManagerImpl.runOnOwnContext(FocusManagerImpl.java:916)

     at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.runOnOwnContext(IdeFocusManagerImpl.java:124)

     at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.actionPerformed(ActionMenuItem.java:231)

     at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)

     at com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:104)

     at com.intellij.ui.plaf.beg.BegMenuItemUI.a(BegMenuItemUI.java:512)

     at com.intellij.ui.plaf.beg.BegMenuItemUI.access$300(BegMenuItemUI.java:44)

     at com.intellij.ui.plaf.beg.BegMenuItemUI$MyMouseInputHandler.mouseReleased(BegMenuItemUI.java:532)

     at java.awt.Component.processMouseEvent(Component.java:6414)

     at javax.swing.JComponent.processMouseEvent(JComponent.java:3275)

     at java.awt.Component.processEvent(Component.java:6179)

     at java.awt.Container.processEvent(Container.java:2084)

     at java.awt.Component.dispatchEventImpl(Component.java:4776)

     at java.awt.Container.dispatchEventImpl(Container.java:2142)

     at java.awt.Component.dispatchEvent(Component.java:4604)

     at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4618)

     at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4279)

     at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4209)

     at java.awt.Container.dispatchEventImpl(Container.java:2128)

     at java.awt.Window.dispatchEventImpl(Window.java:2492)

     at java.awt.Component.dispatchEvent(Component.java:4604)

     at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:717)

     at java.awt.EventQueue.access$400(EventQueue.java:82)

     at java.awt.EventQueue$2.run(EventQueue.java:676)

     at java.awt.EventQueue$2.run(EventQueue.java:674)

     at java.security.AccessController.doPrivileged(Native Method)

     at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)

     at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:97)

     at java.awt.EventQueue$3.run(EventQueue.java:690)

     at java.awt.EventQueue$3.run(EventQueue.java:688)

     at java.security.AccessController.doPrivileged(Native Method)

     at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)

     at java.awt.EventQueue.dispatchEvent(EventQueue.java:687)

     at com.intellij.ide.IdeEventQueue.e(IdeEventQueue.java:696)

     at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:520)

     at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:335)

     at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)

     at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)

     at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)

     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)

     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)

     at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)


#2

We are investigating this issue


#3

https://github.com/JetBrains/intellij-community/commit/25e633cdb23c9652bf7a3b8493921803509d6aaa - this change in API broke binary compatibility.


#4

Please update the KAnnotator plugin, the issue has been fixed. To update go to Preferences -> Plugins -> Right-click KAnnotator -> Update


#5

Thanks. It's now working. However, following instructions in Kotlin Build Tools, I attempt to add the annotations to my gradle script:

apply plugin: 'kotlin' kotlinOptions.annotations = file(project.projectDir.absolutePath + "/annotations")

But get the error:

> Could not find property 'kotlinOptions' on root project 'testproject'.


#6

Nevermind, I found the answer in the comments of that post.

compileKotlin {
  kotlinOptions.annotations = file('path/to/annotations')
}
I'd suggest a documentation update to clarify this.