TheRandomLabs / ChangelogGenerator

Generates changelogs for CurseForge modpacks.
MIT License
35 stars 5 forks source link

CurseApi error (v2.0.0-pre3) #30

Closed dr3ams closed 3 years ago

dr3ams commented 3 years ago

C:\Users\Admin>java -jar ChangelogGenerator-2.0.0-pre3.jar old.json new.json

Exception in thread "main" com.squareup.moshi.JsonDataException: com.squareup.moshi.JsonDataException: java.lang.IllegalArgumentException: Expected URL scheme 'http' or 'https' but no colon was found at $.attachments[0].thumbnailUrl at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at java.util.concurrent.ForkJoinTask.getThrowableException(Unknown Source) at java.util.concurrent.ForkJoinTask.reportException(Unknown Source) at java.util.concurrent.ForkJoinTask.invoke(Unknown Source) at java.util.stream.ReduceOps$ReduceOp.evaluateParallel(Unknown Source) at java.util.stream.AbstractPipeline.evaluate(Unknown Source) at java.util.stream.ReferencePipeline.collect(Unknown Source) at com.therandomlabs.curseapi.CurseAPI.parallelMap(CurseAPI.java:575) at com.therandomlabs.curseapi.file.CurseFiles.parallelMap(CurseFiles.java:181) at com.therandomlabs.changeloggenerator.BasicChangelogGenerator.appendFiles(BasicChangelogGenerator.java:162) at com.therandomlabs.changeloggenerator.BasicChangelogGenerator.generate(BasicChangelogGenerator.java:79) at com.therandomlabs.changeloggenerator.Main.main(Main.java:48) Caused by: com.squareup.moshi.JsonDataException: java.lang.IllegalArgumentException: Expected URL scheme 'http' or 'https' but no colon was found at $.attachments[0].thumbnailUrl at com.squareup.moshi.AdapterMethodsFactory$1.fromJson(AdapterMethodsFactory.java:94) at com.squareup.moshi.ClassJsonAdapter$FieldBinding.read(ClassJsonAdapter.java:204) at com.squareup.moshi.ClassJsonAdapter.fromJson(ClassJsonAdapter.java:166) at com.squareup.moshi.internal.NullSafeJsonAdapter.fromJson(NullSafeJsonAdapter.java:40) at com.squareup.moshi.CollectionJsonAdapter.fromJson(CollectionJsonAdapter.java:76) at com.squareup.moshi.CollectionJsonAdapter$3.fromJson(CollectionJsonAdapter.java:63) at com.squareup.moshi.internal.NullSafeJsonAdapter.fromJson(NullSafeJsonAdapter.java:40) at com.squareup.moshi.ClassJsonAdapter$FieldBinding.read(ClassJsonAdapter.java:204) at com.squareup.moshi.ClassJsonAdapter.fromJson(ClassJsonAdapter.java:166) at com.squareup.moshi.internal.NullSafeJsonAdapter.fromJson(NullSafeJsonAdapter.java:40) at retrofit2.converter.moshi.MoshiResponseBodyConverter.convert(MoshiResponseBodyConverter.java:45) at retrofit2.converter.moshi.MoshiResponseBodyConverter.convert(MoshiResponseBodyConverter.java:27) at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:225) at retrofit2.OkHttpCall.execute(OkHttpCall.java:188) at io.github.resilience4j.retrofit.RetrofitCircuitBreaker$CircuitBreakingCall.execute(RetrofitCircuitBreaker.java:114) at com.therandomlabs.curseapi.util.RetrofitUtils.lambda$execute$39f5113e$1(RetrofitUtils.java:98) at io.github.resilience4j.retry.Retry.lambda$decorateCheckedSupplier$3f69f149$1(Retry.java:137) at io.vavr.control.Try.of(Try.java:75) at com.therandomlabs.curseapi.util.RetrofitUtils.execute(RetrofitUtils.java:97) at com.therandomlabs.curseapi.forgesvc.ForgeSvcProvider.project(ForgeSvcProvider.java:78) at com.therandomlabs.curseapi.CurseAPI.lambda$project$0(CurseAPI.java:119) at com.therandomlabs.curseapi.CurseAPI.get(CurseAPI.java:679) at com.therandomlabs.curseapi.CurseAPI.project(CurseAPI.java:119) at com.therandomlabs.curseapi.file.BasicCurseFile$Immutable.project(BasicCurseFile.java:84) at com.therandomlabs.changeloggenerator.BasicChangelogGenerator.lambda$appendFiles$0(BasicChangelogGenerator.java:163) at com.therandomlabs.curseapi.CurseAPI.callCheckedFunction(CurseAPI.java:694) at com.therandomlabs.curseapi.CurseAPI.lambda$parallelMap$17(CurseAPI.java:574) at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) at java.util.TreeMap$KeySpliterator.forEachRemaining(Unknown Source) at java.util.stream.AbstractPipeline.copyInto(Unknown Source) at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) at java.util.stream.ReduceOps$ReduceTask.doLeaf(Unknown Source) at java.util.stream.ReduceOps$ReduceTask.doLeaf(Unknown Source) at java.util.stream.AbstractTask.compute(Unknown Source) at java.util.concurrent.CountedCompleter.exec(Unknown Source) at java.util.concurrent.ForkJoinTask.doExec(Unknown Source) at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(Unknown Source) at java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) at java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) Caused by: java.lang.IllegalArgumentException: Expected URL scheme 'http' or 'https' but no colon was found at okhttp3.HttpUrl$Builder.parse(HttpUrl.java:1332) at okhttp3.HttpUrl.get(HttpUrl.java:917) at com.therandomlabs.curseapi.util.HttpUrlAdapter.fromJSON(HttpUrlAdapter.java:60) at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.squareup.moshi.AdapterMethodsFactory$AdapterMethod.invoke(AdapterMethodsFactory.java:335) at com.squareup.moshi.AdapterMethodsFactory$5.fromJson(AdapterMethodsFactory.java:257) at com.squareup.moshi.AdapterMethodsFactory$1.fromJson(AdapterMethodsFactory.java:90) ... 38 more

TheRandomLabs commented 3 years ago

Could I have old.json and new.json?

dr3ams commented 3 years ago

old_new.zip

TheRandomLabs commented 3 years ago

Thanks, this was an issue with CurseAPI not supporting empty thumbnail URLs.