JetBrains / sbt-idea-plugin

Develop IntelliJ plugins with Scala and SBT
Apache License 2.0
95 stars 26 forks source link

publishPlugin NullPointerException #89

Closed nevillelyh closed 3 years ago

nevillelyh commented 3 years ago

I got an exception running publishPlugin, any idea what's going on? Manually publishing on the website worked.

Code in question: https://github.com/spotify/scio-idea-plugin/tree/0.1.22

sbt:scio-idea> last publishPlugin
[error] java.lang.NullPointerException
[error]         at scala.xml.NodeSeq.iterator(NodeSeq.scala:53)
[error]         at scala.collection.IterableLike.foreach(IterableLike.scala:74)
[error]         at scala.collection.IterableLike.foreach$(IterableLike.scala:73)
[error]         at scala.collection.AbstractIterable.foreach(Iterable.scala:56)
[error]         at scala.collection.TraversableLike.map(TraversableLike.scala:285)
[error]         at scala.collection.TraversableLike.map$(TraversableLike.scala:278)
[error]         at scala.collection.AbstractTraversable.map(Traversable.scala:108)
[error]         at scala.xml.NodeSeq.text(NodeSeq.scala:160)
[error]         at org.jetbrains.sbtidea.download.plugin.PluginDescriptor$.$anonfun$load$3(PluginDescriptor.scala:56)
[error]         at scala.Option.map(Option.scala:230)
[error]         at org.jetbrains.sbtidea.download.plugin.PluginDescriptor$.load(PluginDescriptor.scala:56)
[error]         at org.jetbrains.sbtidea.download.plugin.PluginDescriptor$.load(PluginDescriptor.scala:38)
[error]         at org.jetbrains.sbtidea.download.plugin.LocalPluginRegistry$.$anonfun$extractPluginMetaData$2(LocalPluginRegistry.scala:143)
[error]         at scala.util.Either.fold(Either.scala:191)
[error]         at org.jetbrains.sbtidea.download.plugin.LocalPluginRegistry$.extractPluginMetaData(LocalPluginRegistry.scala:143)
[error]         at org.jetbrains.sbtidea.Init.$anonfun$projectSettings$28(Init.scala:220)
[error]         at org.jetbrains.sbtidea.Init.$anonfun$projectSettings$28$adapted(Init.scala:202)
[error]         at scala.Function1.$anonfun$compose$1(Function1.scala:49)
[error]         at sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:62)
[error]         at sbt.std.Transform$$anon$4.work(Transform.scala:68)
[error]         at sbt.Execute.$anonfun$submit$2(Execute.scala:282)
[error]         at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:23)
[error]         at sbt.Execute.work(Execute.scala:291)
[error]         at sbt.Execute.$anonfun$submit$1(Execute.scala:282)
[error]         at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:265)
[error]         at sbt.CompletionService$$anon$2.call(CompletionService.scala:64)
[error]         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error]         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[error]         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error]         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[error]         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[error]         at java.lang.Thread.run(Thread.java:748)
[error] (publishPlugin) java.lang.NullPointerException
mutcianm commented 3 years ago

Hi! This happens because sbt-idea-plugin fails to parse until-build attribute from tag idea-version. It's an optional attribute but one recommended to have. As a quick workaround you can specify it in the plugin.xml, while I'm fixing the issue.

P.S. You can also remove jetbrains-bintray resolver from plugins.sbt since sbt-idea-plugin is also published to a built-in sbt plugins resolver repo. And Bintray is going down soon anyway