diff --git a/CHANGELOG.md b/CHANGELOG.md index e9bc8410..3535f82b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,13 +12,14 @@ A preview of the next release can be installed from - [Support self-contained binaries as uberjars!](https://github.com/babashka/babashka/wiki/Self-contained-executable#uberjar) - Add `java.security.KeyFactory`, `java.security.spec.PKCS8EncodedKeySpec`, `java.net.URISyntaxException` - Fix babashka.process/exec wrt `babashka.process/*defaults*` -- #1632: Partial fix for `(.readPassword (System/console))` +- [#1632](https://github.com/babashka/babashka/issues/1632): Partial fix for `(.readPassword (System/console))` - Enable producing self-contained binaries using [uberjars](https://github.com/babashka/babashka/wiki/Self-contained-executable#uberjar) - Bump httpkit to `2.8.0-beta3` (fixes GraalVM issue with virtual threads) - Bump `deps.clj` and `fs` - Expose `taoensso.timbre.appenders.core` - nREPL: implement `ns-list` op - SCI: optimize `swap!`, `deref` and `reset!` for normal atoms (rather than user-created `IAtom`s) +- Add test for [#1639](https://github.com/babashka/babashka/issues/1639) ## 1.3.185 (2023-09-28) diff --git a/test/babashka/xml_test.clj b/test/babashka/xml_test.clj index b3fde386..7624688d 100644 --- a/test/babashka/xml_test.clj +++ b/test/babashka/xml_test.clj @@ -1,7 +1,7 @@ (ns babashka.xml-test (:require [babashka.test-utils :as test-utils] [clojure.string :as str] - [clojure.test :refer [deftest is testing]])) + [clojure.test :refer [deftest is]])) (def simple-xml-str "data") @@ -15,3 +15,22 @@ (deftest xml-data-readers-test (is (str/includes? (test-utils/bb nil round-trip-prog) simple-xml-str))) + +(deftest virtual-threads-bug-test + (is (str/starts-with? (test-utils/bb nil "(require '[clojure.core.async] + '[clojure.data.xml]) + +(def go-blocks (atom [])) + +(dotimes [_ 100] + (swap! go-blocks conj (clojure.core.async/go (clojure.data.xml/parse + (java.io.ByteArrayInputStream. + (.getBytes \"\" \"UTF-8\")) + :namespace-aware false + :skip-whitespace true)))) + +(doseq [block @go-blocks] + (clojure.core.async/