Plugin 2022.3 causes an IDE Error when a PyPI project has an empty comment
Closed this issue · 1 comments
ZeroPointMax commented
Describe the bug
If the PyPI package comment is empty, Requirements will throw an exception because it cannot decode a null value
kotlinx.serialization.json.internal.JsonDecodingException: Unexpected JSON token at offset 189126: Expected string literal but 'null' literal was found at path: $.releases['0.75.1'][0].comment_text
Use 'coerceInputValues = true' in 'Json {}` builder to coerce nulls to default values.
JSON input: .....l}],"0.75.1":[{"comment_text":null,"digests":{"md5":"c61ad39.....
at kotlinx.serialization.json.internal.JsonExceptionsKt.JsonDecodingException(JsonExceptions.kt:24)
at kotlinx.serialization.json.internal.JsonExceptionsKt.JsonDecodingException(JsonExceptions.kt:32)
at kotlinx.serialization.json.internal.AbstractJsonLexer.fail(AbstractJsonLexer.kt:528)
at kotlinx.serialization.json.internal.AbstractJsonLexer.unexpectedToken(AbstractJsonLexer.kt:205)
at kotlinx.serialization.json.internal.StringJsonLexer.consumeNextToken(StringJsonLexer.kt:74)
at kotlinx.serialization.json.internal.StringJsonLexer.consumeKeyString(StringJsonLexer.kt:85)
at kotlinx.serialization.json.internal.AbstractJsonLexer.consumeString(AbstractJsonLexer.kt:313)
at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeString(StreamingJsonDecoder.kt:292)
at kotlinx.serialization.encoding.AbstractDecoder.decodeStringElement(AbstractDecoder.kt:58)
at ru.meanmail.pypi.serializers.FileInfo$$serializer.deserialize(FileInfo.kt:5)
at ru.meanmail.pypi.serializers.FileInfo$$serializer.deserialize(FileInfo.kt:5)
at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:59)
at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:38)
at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70)
at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableElement(StreamingJsonDecoder.kt:111)
at kotlinx.serialization.encoding.CompositeDecoder$DefaultImpls.decodeSerializableElement$default(Decoding.kt:537)
at kotlinx.serialization.internal.CollectionLikeSerializer.readElement(CollectionSerializers.kt:80)
at kotlinx.serialization.internal.AbstractCollectionSerializer.readElement$default(CollectionSerializers.kt:51)
at kotlinx.serialization.internal.AbstractCollectionSerializer.merge(CollectionSerializers.kt:36)
at kotlinx.serialization.internal.AbstractCollectionSerializer.deserialize(CollectionSerializers.kt:43)
at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:59)
at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:38)
at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70)
at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableElement(StreamingJsonDecoder.kt:111)
at kotlinx.serialization.encoding.CompositeDecoder$DefaultImpls.decodeSerializableElement$default(Decoding.kt:537)
at kotlinx.serialization.internal.MapLikeSerializer.readElement(CollectionSerializers.kt:111)
at kotlinx.serialization.internal.MapLikeSerializer.readElement(CollectionSerializers.kt:84)
at kotlinx.serialization.internal.AbstractCollectionSerializer.readElement$default(CollectionSerializers.kt:51)
at kotlinx.serialization.internal.AbstractCollectionSerializer.merge(CollectionSerializers.kt:36)
at kotlinx.serialization.internal.AbstractCollectionSerializer.deserialize(CollectionSerializers.kt:43)
at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:59)
at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:38)
at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70)
at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableElement(StreamingJsonDecoder.kt:111)
at ru.meanmail.pypi.serializers.PackageInfo$$serializer.deserialize(PackageInfo.kt:5)
at ru.meanmail.pypi.serializers.PackageInfo$$serializer.deserialize(PackageInfo.kt:5)
at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:59)
at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:38)
at kotlinx.serialization.json.Json.decodeFromString(Json.kt:100)
at ru.meanmail.pypi.PyPiKt.loadPackageFromPyPi$lambda-0(PyPi.kt:267)
at com.intellij.util.io.HttpRequests.doProcess(HttpRequests.java:516)
at com.intellij.util.io.HttpRequests.process(HttpRequests.java:498)
at com.intellij.util.io.HttpRequests$RequestBuilderImpl.connect(HttpRequests.java:333)
at ru.meanmail.pypi.PyPiKt.loadPackageFromPyPi(PyPi.kt:49)
at ru.meanmail.pypi.PyPiKt.loadPackage(PyPi.kt:143)
at ru.meanmail.pypi.PyPiKt.getPackageInfo(PyPi.kt:165)
at ru.meanmail.pypi.PyPiKt.getPackageInfo$default(PyPi.kt:151)
at ru.meanmail.pypi.PyPiKt.getVersionsList$lambda-6(PyPi.kt:190)
at com.intellij.openapi.application.impl.ApplicationImpl$2.call(ApplicationImpl.java:328)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:702)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:699)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699)
at java.base/java.lang.Thread.run(Thread.java:833)
To Reproduce
Steps to reproduce the behavior:
- Open IntelliJ or PyCharm with the Requirements Plugin installed
- add
fastapi
oridna
to requirements.txt - Wait for IDE error
Expected behavior
The Requirements Plugin should not produce an error.
Screenshots
IDE
- OS: Windows 10, Ubuntu 22.04
- Product: IntelliJ Ultimate, PyCharm Professional
- Version IU-222.4167.29 - JRE Version: OpenJDK 64-Bit Server VM by JetBrains s.r.o
- Project SDK: Python 3.10
Plugin (please complete the following information. See Main Menu -> File -> Settings -> Plugins):
- Version 2022.3-222
meanmail commented
Fixed in Requirements 2022.3.1-2022.2.2