Cursive and IntelliJ versions

818 views
Skip to first unread message

Colin Fleming

unread,
Jul 31, 2019, 6:59:16 PM7/31/19
to Cursive Group
Hi everyone,

There's been a lot of confusion recently about which IntelliJ version to use with Cursive due to a bad run of platform bugs which have affected it badly. 

The tl;dr is that 2018.3 is the most recent version of IntelliJ which doesn't have serious problems with Cursive, and if you don't feel like dealing with issues that is the one to use. Hopefully 2019.2.1 will fix all of this, and is due in a couple of weeks.

Here's a list of the problems, workarounds, and fixes.

2019.1 introduced a bug in their indexing system affecting Cursive, it looks like this: #2173. The underlying platform issue is IDEA-211736. A fix has been developed but didn't make it in time for 2019.2, and for some reason seems to be worse for a lot of users under 2019.2. I'm testing a dev build JetBrains sent me at the moment, and it's looking good, so it should be in 2019.2.1.

2019.1 also broke caret movement and highlighting of matching braces, which is obviously terrible for Clojure. The original issue was IDEA-210104, and then the highlighting was fixed in a follow-up issue IDEA-211720. There is still one outstanding issue (IDEA-215291), but this is pretty usable in 2019.2 now.

If you're using deps, 2019.2 is totally broken due to IDEA-218954. This wasn't caught before the release due to a lot of delays caused by the change there to break the Java support out into a plugin. Then IDEA-217619 happened, and that was only fixed in the RC build right before the release so 218954 wasn't found in time. The fix should be in 2019.2.1.

The other change in 2019.2 is that it now uses JDK11 by default, instead of JDK8. This has caused a problem where users sometimes see an error like: NoClassDefFoundError: java/sql/Timestamp when resolving their lein projects. This is because Cursive resolves lein projects in-process, so that will use the JDK of IntelliJ itself, not your project JDK. This is generally caused by lein plugins, and can sometimes be resolved by upgrading them to more recent versions which work on recent JDKs. s3-wagon-private is one such dep, and its 1.3.2 release doesn't suffer from this problem. If you can't (or don't want to) update your deps, you can also download a version of IntelliJ running on JDK8. Go to the download page, select "Other versions" and then choose "2019.2 for <platform> with bundled JBR 8". There's no functional difference between the two from a user point of view.

And that's it! I'm sorry for all the inconvenience - fingers crossed that everything will be good again in 2019.2.1.

Cheers,
Colin

dan young

unread,
Jul 31, 2019, 7:46:07 PM7/31/19
to cur...@googlegroups.com
Thank you Colin. You're doing a great job and thank you so much for a great experience when using Clojure/ClojureScript!

Regards

Dano

--
You received this message because you are subscribed to the Google Groups "Cursive" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cursive+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cursive/f819a1cd-f755-46fc-9084-0ef2a028e9e8%40www.fastmail.com.

Yonathan WeldeGebriel

unread,
Aug 6, 2019, 1:44:27 PM8/6/19
to Cursive
Yeah, i too had a hard time dealing with the issues introduced in IJ 2019 releases.
Downgrading to 2018.3 did ease a lot of pain.

Alf Kristian Støyle

unread,
Aug 7, 2019, 10:01:36 AM8/7/19
to Cursive
I've been running IntelliJ preview of 2019.2.1 all day and seems to be working great.

Several of our projects are using deps, by the way.


Cheers,
Alf

Colin Fleming

unread,
Aug 7, 2019, 5:28:09 PM8/7/19
to Cursive Group
Thanks Alf, yes, the deps.edn problems should be fixed there, and hopefully the indexing problem too, although I'm waiting on JetBrains to confirm that that fix is in that build.
--
You received this message because you are subscribed to the Google Groups "Cursive" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cursive+u...@googlegroups.com.

Colin Fleming

unread,
Aug 8, 2019, 6:10:18 PM8/8/19
to Cursive Group
Unfortunately JetBrains have confirmed to me that the indexing fix has not yet been signed off internally, but that should happen this week. Hopefully that means that the fix will still make 2019.2.1.

Sooheon Kim

unread,
Aug 10, 2019, 3:43:00 PM8/10/19
to Cursive
An alternate fix for the JDK 11 issue (if you're using jb toolbox like I am and don't want to manually download) is to just install the latest with JDK 11 and follow instructions here to change the internal JDK version.

Alf Kristian Støyle

unread,
Aug 14, 2019, 2:01:26 AM8/14/19
to Cursive
Been running 2019.2.1 (Preview) for about a week now, and it has worked just fine.

However, this morning after IntelliJ for some reason decided to re-index, it seemed like I may have experienced the indexing problem. That is, no core symbols were resolved. After a re-start of IntelliJ everything seems fine again.

If this was the indexing bug, it is not critical imo, not exactly uncommon to have to do a restart of IntelliJ, every now and then. Probably not good enough for Cursive as a product, but I am not downgrading because of this.

Cheers,
Alf


On Friday, 9 August 2019 00:10:18 UTC+2, Colin Fleming wrote:
Unfortunately JetBrains have confirmed to me that the indexing fix has not yet been signed off internally, but that should happen this week. Hopefully that means that the fix will still make 2019.2.1.



On Wed, Aug 7, 2019, at 9:28 PM, Colin Fleming wrote:
Thanks Alf, yes, the deps.edn problems should be fixed there, and hopefully the indexing problem too, although I'm waiting on JetBrains to confirm that that fix is in that build.

On Wed, Aug 7, 2019, at 2:01 PM, Alf Kristian Støyle wrote:
I've been running IntelliJ preview of 2019.2.1 all day and seems to be working great.

Several of our projects are using deps, by the way.


Cheers,
Alf


On Thursday, 1 August 2019 00:59:16 UTC+2, Colin Fleming wrote:
Hi everyone,

There's been a lot of confusion recently about which IntelliJ version to use with Cursive due to a bad run of platform bugs which have affected it badly. 

The tl;dr is that 2018.3 is the most recent version of IntelliJ which doesn't have serious problems with Cursive, and if you don't feel like dealing with issues that is the one to use. Hopefully 2019.2.1 will fix all of this, and is due in a couple of weeks.

Here's a list of the problems, workarounds, and fixes.

2019.1 introduced a bug in their indexing system affecting Cursive, it looks like this: #2173. The underlying platform issue is IDEA-211736. A fix has been developed but didn't make it in time for 2019.2, and for some reason seems to be worse for a lot of users under 2019.2. I'm testing a dev build JetBrains sent me at the moment, and it's looking good, so it should be in 2019.2.1.

2019.1 also broke caret movement and highlighting of matching braces, which is obviously terrible for Clojure. The original issue was IDEA-210104, and then the highlighting was fixed in a follow-up issue IDEA-211720. There is still one outstanding issue (IDEA-215291), but this is pretty usable in 2019.2 now.

If you're using deps, 2019.2 is totally broken due to IDEA-218954. This wasn't caught before the release due to a lot of delays caused by the change there to break the Java support out into a plugin. Then IDEA-217619 happened, and that was only fixed in the RC build right before the release so 218954 wasn't found in time. The fix should be in 2019.2.1.

The other change in 2019.2 is that it now uses JDK11 by default, instead of JDK8. This has caused a problem where users sometimes see an error like: NoClassDefFoundError: java/sql/Timestamp when resolving their lein projects. This is because Cursive resolves lein projects in-process, so that will use the JDK of IntelliJ itself, not your project JDK. This is generally caused by lein plugins, and can sometimes be resolved by upgrading them to more recent versions which work on recent JDKs. s3-wagon-private is one such dep, and its 1.3.2 release doesn't suffer from this problem. If you can't (or don't want to) update your deps, you can also download a version of IntelliJ running on JDK8. Go to the download page, select "Other versions" and then choose "2019.2 for <platform> with bundled JBR 8". There's no functional difference between the two from a user point of view.

And that's it! I'm sorry for all the inconvenience - fingers crossed that everything will be good again in 2019.2.1.

Cheers,
Colin


--
You received this message because you are subscribed to the Google Groups "Cursive" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cur...@googlegroups.com.


--
You received this message because you are subscribed to the Google Groups "Cursive" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cur...@googlegroups.com.

dan young

unread,
Aug 14, 2019, 7:05:57 PM8/14/19
to cur...@googlegroups.com
Heya All,

Was wondering if anyone has updated to IntelliJ IDEA 2019.1.4 and uses deps.  If so, have you seen any issues with it?

Regards,

Dano


To unsubscribe from this group and stop receiving emails from it, send an email to cursive+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cursive/83dc3aa2-89f6-4ce0-a954-f9d27b6e017d%40googlegroups.com.

Colin Fleming

unread,
Aug 14, 2019, 11:22:41 PM8/14/19
to Cursive Group
Hi Dano,

Deps should be fine in the 2019.1 releases, it's only in 2019.2 that it's problematic.

Cheers,
Colin

dan young

unread,
Aug 15, 2019, 12:36:22 PM8/15/19
to cur...@googlegroups.com
Great, thank you! I'll try the 2019.1.4 update

Colin Fleming

unread,
Aug 17, 2019, 4:57:53 AM8/17/19
to Cursive Group
BTW many of you have noticed that in 2019.2.1 there is still a problem with Deps, resulting in a stacktrace like the following:

com.intellij.serialization.SerializationException: Cannot create instance (beanClass=cursive.deps.DepsAliasData, initArgs=null, project)
at com.intellij.serialization.BeanBinding.createUsingCustomConstructor(BeanBinding.kt:144)
at com.intellij.serialization.BeanBinding.deserialize(BeanBinding.kt:214)
at com.intellij.serialization.PolymorphicBinding.doDeserialize(PolymorphicBinding.kt:53)
at com.intellij.serialization.PolymorphicBinding.deserialize(PolymorphicBinding.kt:19)
at com.intellij.serialization.BeanBinding.readIntoObject(BeanBinding.kt:250)

This is IDEA-220192. Sadly, it's not looking like it will be fixed in 2019.2.1 as far as I can tell.

All the recent deps problems have been caused by the underlying IntelliJ API which I used for the Deps support. It's generally been difficult to work with and unstable, and I've decided to migrate the Deps support off it and base it on the Leiningen integration instead, which is somewhat simpler but is rock solid these days. There are also features I'd like to add and some problems I'd like to fix which I can't because of the inflexibility of the API.

I've started this work and I estimate it'll take another two weeks or so, plus some time getting the rough edges off as always. But then hopefully we won't get these problems again in the future.

Cheers,
Colin

Colin Fleming

unread,
Aug 21, 2019, 4:43:14 PM8/21/19
to Cursive Group
2019.2.1 is out today, and unfortunately it hasn't fixed all the problems.

As far as I am aware, IDEA-220192 is still outstanding, so Deps will still not work. I'm working on migrating the Deps support, and will hopefully have an initial version to test in a week or so.

The indexing issue is also unfortunately not fixed, but the fix has been committed to their release branch and will definitely be in 2019.2.2, which I guess will be in a couple of weeks.

Colin Fleming

unread,
Sep 1, 2019, 11:16:07 PM9/1/19
to Cursive Group
The 2019.2.2 preview is now available at https://confluence.jetbrains.com/display/IDEADEV/IDEA+2019.2+EAP. It should contain the fix to the indexing problem, so if you're affected by that then check it out.

IDEA-220192 is still outstanding so the existing deps integration will not work correctly, but see my previous mail about the new deps integration in case you'd like to test that. 

Dan Campbell

unread,
Sep 13, 2019, 10:38:07 AM9/13/19
to Cursive
Ok, that explains a few things, thanks Colin.


On Wednesday, July 31, 2019 at 6:59:16 PM UTC-4, Colin Fleming wrote:
Reply all
Reply to author
Forward
0 new messages