Skip to content

Commit e3520c0

Browse files
committed
Revert "CLJ-2783 Update deprecated process of creating URLs in Java 20+"
This reverts commit 882d660.
1 parent b56f951 commit e3520c0

4 files changed

Lines changed: 17 additions & 26 deletions

File tree

src/clj/clojure/java/io.clj

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,14 @@
1212
clojure.java.io
1313
(:require clojure.string)
1414
(:import
15-
(clojure.lang RT)
1615
(java.io Reader InputStream InputStreamReader PushbackReader
1716
BufferedReader File OutputStream
1817
OutputStreamWriter BufferedWriter Writer
1918
FileInputStream FileOutputStream ByteArrayOutputStream
2019
StringReader ByteArrayInputStream
2120
BufferedInputStream BufferedOutputStream
2221
CharArrayReader Closeable)
23-
(java.lang IllegalArgumentException)
24-
(java.net URI URL Socket URLDecoder URLEncoder)))
22+
(java.net URI URL MalformedURLException Socket URLDecoder URLEncoder)))
2523

2624
(set! *warn-on-reflection* true)
2725

@@ -52,11 +50,11 @@
5250

5351
String
5452
(as-file [s] (File. s))
55-
(as-url [s] (RT/toUrl s))
53+
(as-url [s] (URL. s))
5654

5755
File
5856
(as-file [f] f)
59-
(as-url [f] (RT/toUrl f))
57+
(as-url [f] (.toURL (.toURI f)))
6058

6159
URL
6260
(as-url [u] u)
@@ -257,13 +255,13 @@
257255
(assoc default-streams-impl
258256
:make-input-stream (fn [^String x opts]
259257
(try
260-
(make-input-stream (RT/toUrl x) opts)
261-
(catch IllegalArgumentException e
258+
(make-input-stream (URL. x) opts)
259+
(catch MalformedURLException e
262260
(make-input-stream (File. x) opts))))
263261
:make-output-stream (fn [^String x opts]
264262
(try
265-
(make-output-stream (RT/toUrl x) opts)
266-
(catch IllegalArgumentException err
263+
(make-output-stream (URL. x) opts)
264+
(catch MalformedURLException err
267265
(make-output-stream (File. x) opts))))))
268266

269267
(extend Socket

src/clj/clojure/repl/deps.clj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,15 @@
1414
[clojure.java.basis.impl :as basis-impl]
1515
[clojure.tools.deps.interop :as tool])
1616
(:import
17-
[clojure.lang DynamicClassLoader RT]
17+
[clojure.lang DynamicClassLoader]
1818
[java.io File]))
1919

2020
(set! *warn-on-reflection* true)
2121

2222
(defn- add-loader-url
2323
"Add url string or URL to the highest level DynamicClassLoader url set."
2424
[url]
25-
(let [u (if (string? url) (RT/toUrl ^String url) url)
25+
(let [u (if (string? url) (java.net.URL. url) url)
2626
loader (loop [loader (.getContextClassLoader (Thread/currentThread))]
2727
(let [parent (.getParent loader)]
2828
(if (instance? DynamicClassLoader parent)
@@ -48,7 +48,7 @@
4848
{:keys [added] :as _res} (tool/invoke-tool {:tool-alias :deps, :fn 'clojure.tools.deps/resolve-added-libs, :args tool-args})
4949
;_ (clojure.pprint/pprint _res)
5050
paths (mapcat :paths (vals added))
51-
urls (->> paths (map jio/file) (map #(RT/toUrl ^File %)))]
51+
urls (->> paths (map jio/file) (map #(.toURL ^File %)))]
5252
(run! add-loader-url urls)
5353
(basis-impl/update-basis! update :libs merge added)
5454
(let [ret (-> added keys sort vec)]

src/jvm/clojure/lang/RT.java

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,22 @@
1212

1313
package clojure.lang;
1414

15-
import java.net.*;
15+
import java.net.MalformedURLException;
1616
import java.util.concurrent.atomic.AtomicInteger;
1717
import java.util.concurrent.Callable;
1818
import java.util.*;
1919
import java.util.regex.Matcher;
2020
import java.util.regex.Pattern;
2121
import java.io.*;
2222
import java.lang.reflect.Array;
23-
import java.lang.IllegalArgumentException;
2423
import java.math.BigDecimal;
2524
import java.math.BigInteger;
2625
import java.security.AccessController;
2726
import java.security.PrivilegedAction;
27+
import java.net.URL;
28+
import java.net.JarURLConnection;
2829
import java.nio.charset.Charset;
30+
import java.net.URLConnection;
2931

3032
public class RT{
3133

@@ -291,16 +293,8 @@ private Object readResolve() throws ObjectStreamException {
291293

292294
static AtomicInteger id = new AtomicInteger(1);
293295

294-
static public URL toUrl(String url) throws URISyntaxException, MalformedURLException {
295-
return new URI(url).toURL();
296-
}
297-
298-
static public URL toUrl(File file) throws MalformedURLException {
299-
return file.toURI().toURL();
300-
}
301-
302-
static public void addURL(Object url) throws MalformedURLException, URISyntaxException, IllegalArgumentException {
303-
URL u = (url instanceof String) ? toUrl((String) url) : (URL) url;
296+
static public void addURL(Object url) throws MalformedURLException{
297+
URL u = (url instanceof String) ? (new URL((String) url)) : (URL) url;
304298
ClassLoader ccl = Thread.currentThread().getContextClassLoader();
305299
if(ccl instanceof DynamicClassLoader)
306300
((DynamicClassLoader)ccl).addURL(u);

test/clojure/test_clojure/java/io.clj

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
FileInputStream InputStreamReader InputStream
1414
FileOutputStream OutputStreamWriter OutputStream
1515
ByteArrayInputStream ByteArrayOutputStream)
16-
(clojure.lang RT)
1716
(java.net URL URI Socket ServerSocket)))
1817

1918
(defn temp-file
@@ -49,7 +48,7 @@
4948
(slurp read-from :encoding "UTF-8")))
5049
f f
5150
(.getAbsolutePath f) (.getAbsolutePath f)
52-
(RT/toUrl f) (RT/toUrl f)
51+
(.toURL f) (.toURL f)
5352
(.toURI f) (.toURI f)
5453
(FileOutputStream. f) (FileInputStream. f)
5554
(OutputStreamWriter. (FileOutputStream. f) "UTF-8") (reader f :encoding "UTF-8")

0 commit comments

Comments
 (0)