pilosus / pip-license-checker

Check license types for third-party dependencies: permissive, copyleft, proprietory, etc.
https://blog.pilosus.org/posts/2021/09/07/pip-license-checker/
Other
67 stars 3 forks source link

Number format exception due an unknown reason #138

Closed jmfernandez closed 1 year ago

jmfernandez commented 1 year ago

Hi again, after the fix of #136 I have found a strange case which worked with 0.45.0, but it is not working with 0.46.0.

With 0.45.0 next one works:

docker run --rm pilosus/pip-license-checker:0.45.0 java -jar app.jar pycparser==2.21
pycparser:2.21                      BSD License                                             Permissive

but with 0.46.0 it fires a NumberFormatException

docker run --rm pilosus/pip-license-checker:0.46.0 java -jar app.jar pycparser==2.21
Exception in thread "main" java.util.concurrent.ExecutionException: java.lang.NumberFormatException: Invalid number: 08
        at java.base/java.util.concurrent.FutureTask.report(Unknown Source)
        at java.base/java.util.concurrent.FutureTask.get(Unknown Source)
        at clojure.core$deref_future.invokeStatic(core.clj:2317)
        at clojure.core$future_call$reify__8544.deref(core.clj:7041)
        at clojure.core$deref.invokeStatic(core.clj:2337)
        at clojure.core$deref.invoke(core.clj:2323)
        at clojure.core$map$fn__5935.invoke(core.clj:2770)
        at clojure.lang.LazySeq.sval(LazySeq.java:42)
        at clojure.lang.LazySeq.seq(LazySeq.java:58)
        at clojure.lang.RT.seq(RT.java:535)
        at clojure.core$seq__5467.invokeStatic(core.clj:139)
        at clojure.core$concat$fn__5558.invoke(core.clj:727)
        at clojure.lang.LazySeq.sval(LazySeq.java:42)
        at clojure.lang.LazySeq.seq(LazySeq.java:51)
        at clojure.lang.RT.seq(RT.java:535)
        at clojure.core$seq__5467.invokeStatic(core.clj:139)
        at clojure.core$map$fn__5935.invoke(core.clj:2763)
        at clojure.lang.LazySeq.sval(LazySeq.java:42)
        at clojure.lang.LazySeq.seq(LazySeq.java:51)
        at clojure.lang.RT.seq(RT.java:535)
        at clojure.core$seq__5467.invokeStatic(core.clj:139)
        at clojure.core$map$fn__5935.invoke(core.clj:2763)
        at clojure.lang.LazySeq.sval(LazySeq.java:42)
        at clojure.lang.LazySeq.seq(LazySeq.java:51)
        at clojure.lang.RT.seq(RT.java:535)
        at clojure.core$seq__5467.invokeStatic(core.clj:139)
        at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:24)
        at clojure.core.protocols$fn__8236.invokeStatic(protocols.clj:75)
        at clojure.core.protocols$fn__8236.invoke(protocols.clj:75)
        at clojure.core.protocols$fn__8178$G__8173__8191.invoke(protocols.clj:13)
        at clojure.core$reduce.invokeStatic(core.clj:6886)
        at clojure.core$frequencies.invokeStatic(core.clj:7271)
        at pip_license_checker.core$get_totals.invokeStatic(core.clj:50)
        at pip_license_checker.core$get_report.invokeStatic(core.clj:71)
        at pip_license_checker.core$_main.invokeStatic(core.clj:266)
        at pip_license_checker.core$_main.doInvoke(core.clj:255)
        at clojure.lang.RestFn.applyTo(RestFn.java:137)
        at pip_license_checker.core.main(Unknown Source)
Caused by: java.lang.NumberFormatException: Invalid number: 08
        at clojure.lang.LispReader.readNumber(LispReader.java:352)
        at clojure.lang.LispReader.read(LispReader.java:278)
        at clojure.lang.LispReader.read(LispReader.java:216)
        at clojure.lang.LispReader.read(LispReader.java:205)
        at clojure.lang.RT.readString(RT.java:1876)
        at clojure.lang.RT.readString(RT.java:1871)
        at clojure.core$read_string.invokeStatic(core.clj:3816)
        at pip_license_checker.version$parse_number_BANG_.invokeStatic(version.clj:122)
        at pip_license_checker.version$validate_version$fn__4332.invoke(version.clj:189)
        at clojure.core$map$fn__5935.invoke(core.clj:2770)
        at clojure.lang.LazySeq.sval(LazySeq.java:42)
        at clojure.lang.LazySeq.seq(LazySeq.java:51)
        at clojure.lang.RT.seq(RT.java:535)
        at clojure.lang.LazilyPersistentVector.create(LazilyPersistentVector.java:44)
        at clojure.core$vec.invokeStatic(core.clj:379)
        at pip_license_checker.version$validate_version.invokeStatic(version.clj:188)
        at pip_license_checker.version$parse_version.invokeStatic(version.clj:221)
        at pip_license_checker.version$parse_version.invoke(version.clj:202)
        at clojure.lang.AFn.applyToHelper(AFn.java:156)
        at clojure.lang.AFn.applyTo(AFn.java:144)
        at clojure.core$apply.invokeStatic(core.clj:667)
        at pip_license_checker.pypi$api_simple_get_releases$fn__4436.invoke(pypi.clj:91)
        at clojure.core$map$fn__5935.invoke(core.clj:2772)
        at clojure.lang.LazySeq.sval(LazySeq.java:42)
        at clojure.lang.LazySeq.seq(LazySeq.java:51)
        at clojure.lang.RT.seq(RT.java:535)
        at clojure.core$seq__5467.invokeStatic(core.clj:139)
        at clojure.core$filter$fn__5962.invoke(core.clj:2826)
        at clojure.lang.LazySeq.sval(LazySeq.java:42)
        at clojure.lang.LazySeq.seq(LazySeq.java:51)
        at clojure.lang.RT.seq(RT.java:535)
        at clojure.core$seq__5467.invokeStatic(core.clj:139)
        at clojure.core$filter$fn__5962.invoke(core.clj:2826)
        at clojure.lang.LazySeq.sval(LazySeq.java:42)
        at clojure.lang.LazySeq.seq(LazySeq.java:58)
        at clojure.lang.RT.seq(RT.java:535)
        at clojure.core$seq__5467.invokeStatic(core.clj:139)
        at clojure.core$sort.invokeStatic(core.clj:3114)
        at pip_license_checker.version$sort_versions.invokeStatic(version.clj:551)
        at pip_license_checker.version$sort_versions.doInvoke(version.clj:546)
        at clojure.lang.RestFn.invoke(RestFn.java:410)
        at pip_license_checker.version$get_version.invokeStatic(version.clj:567)
        at pip_license_checker.pypi$api_get_project.invokeStatic(pypi.clj:105)
        at pip_license_checker.pypi$requirement__GT_dep.invokeStatic(pypi.clj:200)
        at pip_license_checker.pypi$get_parsed_deps$fn__4467.invoke(pypi.clj:235)
        at clojure.core$pmap$fn__8552$fn__8553.invoke(core.clj:7089)
        at clojure.core$binding_conveyor_fn$fn__5823.invoke(core.clj:2047)
        at clojure.lang.AFn.call(AFn.java:18)
        at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.base/java.lang.Thread.run(Unknown Source)
pilosus commented 1 year ago

@jmfernandez oh, I am sorry for that, I've screwed the prev released. should be fixed now for both cases with the new one 0.46.1, please check

jmfernandez commented 1 year ago

Yes, I can confirm it works 👏🏼

Thanks!