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
still-open reader.
Note that this only occurs when the classloader is trying to load from a
jar. The moment the files are cached in the |target| directory,
everything works fine.
Reproducing this requires that you download the two zips from the link
below, install `elcom-tools` locally, and then doing `lein check` on
`elcom-auth`.
I do have a workaround at this point, but at the same time, I'd love to
understand what exactly is happening here. Many thanks in advance for
any insights...
Kind regards,
Dimitris
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups "Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to clojure+unsubscr...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/clojure/ad7d3814-6c3e-0007-c8bf-14497dbcc132%40gmail.com.