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

Exception in thread "main" java.util.concurrent.ExecutionException: java.lang.NumberFormatException: For input string: "20160909030348" #99

Closed gavindsouza closed 2 years ago

gavindsouza commented 2 years ago

While running the latest docker image over my project's requirements.txt, came across a traceback. I traced the failure down to graphql-core==3.1.3 in the requirements file. Turns out this is reproducible with just docker run -it --rm pilosus/pip-license-checker java -jar app.jar graphql-core too.

Traceback

Exception in thread "main" java.util.concurrent.ExecutionException: java.lang.NumberFormatException: For input string: "20160909030348"
    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:2300)
    at clojure.core$future_call$reify__8454.deref(core.clj:6974)
    at clojure.core$deref.invokeStatic(core.clj:2320)
    at clojure.core$deref.invoke(core.clj:2306)
    at clojure.core$map$fn__5866.invoke(core.clj:2753)
    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__5402.invokeStatic(core.clj:137)
    at clojure.core$concat$fn__5493.invoke(core.clj:725)
    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__5402.invokeStatic(core.clj:137)
    at pip_license_checker.core$process_requirements.invokeStatic(core.clj:80)
    at pip_license_checker.core$_main.invokeStatic(core.clj:222)
    at pip_license_checker.core$_main.doInvoke(core.clj:217)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at pip_license_checker.core.main(Unknown Source)
Caused by: java.lang.NumberFormatException: For input string: "20160909030348"
    at java.base/java.lang.NumberFormatException.forInputString(Unknown Source)
    at java.base/java.lang.Integer.parseInt(Unknown Source)
    at java.base/java.lang.Integer.parseInt(Unknown Source)
    at pip_license_checker.version$parse_number.invokeStatic(version.clj:35)
    at pip_license_checker.version$parse_letter_version.invokeStatic(version.clj:50)
    at pip_license_checker.version$validate_version.invokeStatic(version.clj:98)
    at pip_license_checker.version$parse_version.invokeStatic(version.clj:125)
    at pip_license_checker.pypi$get_releases$fn__4439.invoke(pypi.clj:58)
    at clojure.core$map$fn__5866.invoke(core.clj:2755)
    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__5402.invokeStatic(core.clj:137)
    at clojure.core$filter$fn__5893.invoke(core.clj:2809)
    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__5402.invokeStatic(core.clj:137)
    at clojure.core$filter$fn__5893.invoke(core.clj:2809)
    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__5402.invokeStatic(core.clj:137)
    at clojure.core$filter$fn__5893.invoke(core.clj:2809)
    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__5402.invokeStatic(core.clj:137)
    at pip_license_checker.version$filter_versions.invokeStatic(version.clj:436)
    at pip_license_checker.version$get_version.invokeStatic(version.clj:463)
    at pip_license_checker.pypi$get_requirement_version.invokeStatic(pypi.clj:72)
    at pip_license_checker.pypi$requirement__GT_license.invokeStatic(pypi.clj:155)
    at pip_license_checker.pypi$get_parsed_requiements$fn__4479.invoke(pypi.clj:188)
    at clojure.core$pmap$fn__8462$fn__8463.invoke(core.clj:7022)
    at clojure.core$binding_conveyor_fn$fn__5754.invoke(core.clj:2030)
    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 2 years ago

Hey @gavindsouza thanks for reporting. Indeed, there was a problem with parsing some odd package versions found in the history of graphql-core package. It's been fixed in the latest checker's version:

docker run -it --rm pilosus/pip-license-checker:0.33.0 java -jar app.jar 'graphql-core'

I'll close the ticket for now. Feel free to reopen if you still have questions