Hello Dimitris,
I think I have encountered the same issue and I found a solution for it
while working on OFBiz.
See this if it helps:
https://issues.apache.org/jira/browse/OFBIZ-12118
And the solution:
URLConnection connection = url.openConnection();
//
https://issues.apache.org/jira/browse/OFBIZ-12118
connection.setUseCaches(false);
try (InputStream is = connection.getInputStream();){
return readXmlDocument(is, validate, url.toString());
}
The idea is to disable caching from the url connection (the
JarURLConection).
I hope it helps.
Regards,
Eugen
On 18.01.2021 11:22, Dimitrios Piliouras wrote:
> Hi folks,
>
> I'm trying to integrate log4j2 (and its `MapMessage`) with
> tools.logging. Everything was going great until the moment I had to
> depend on this little library, from another project. Everything would
> work on the REPL, but `lein check` was failing with the most bizarre
> IOException (Stream closed) during compilation! I reported/asked about
> this to `duct-core` initially [1] (as it was a duct-based project), but
> it turns out that this doesn't really relate to duct. James
> (@weavejester) was kind enough to attempt to explain this, and he
> basically concluded that (quoting straight from the ticket):
>
> 1. The Clojure classloader opens a stream to read
> |com.elcom.tools.logging.structured| from the jar.
> 2. The |clojure.tools.logging| namespace is then required and loaded.
> 3. Log4j is triggered from |clojure.tools.logging|, which then tries to
> read from the elcom-tools jar again, probably to load in your custom
> logging class or properties file.
> 4. This second read appears to close the first stream to
> |com.elcom.tools.logging.structured|, causing an IO error from the