source: josm/trunk/patches/base64.patch @ 12697

Last change on this file since 12697 was 8149, checked in by stoecker, 5 years ago

fix #11257 - Remove apache.commons.codecs - patch by Florian Schaefer

File size: 4.8 KB
RevLine 
[8149]1From f44a63833a45ee8f67589334f56549a5d7b72fa4 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Florian=20Sch=C3=A4fer?= <florian@schaeferban.de>
3Date: Sun, 22 Mar 2015 17:39:38 +0100
4Subject: [PATCH] Use Base64-decoder from JAXB instead of Apache/Sun
5
6This removes the dependeny on Apache Commons Codec, which was solely used for Base64 decoding.
7Uses of both org.apache.commons.codec.binary.Base64 and sun.misc.BASE64Decoder are replaced by javax.xml.bind.DatatypeConverter which is part of Java since 1.6.
8---
9 src/com/kitfox/svg/SVGUniverse.java                  |  7 ++++---
10 src/com/kitfox/svg/app/data/Handler.java             |  7 ++++---
11 src/oauth/signpost/signature/OAuthMessageSigner.java | 13 +++----------
12 src/org/openstreetmap/josm/tools/ImageProvider.java  |  4 ++--
13 4 files changed, 13 insertions(+), 18 deletions(-)
14
15diff --git a/src/com/kitfox/svg/SVGUniverse.java b/src/com/kitfox/svg/SVGUniverse.java
16index 9c244dd..1fe4a3d 100644
17--- a/src/com/kitfox/svg/SVGUniverse.java
18+++ b/src/com/kitfox/svg/SVGUniverse.java
19@@ -61,6 +61,7 @@
20 import java.util.logging.Logger;
21 import java.util.zip.GZIPInputStream;
22 import javax.imageio.ImageIO;
23+import javax.xml.bind.DatatypeConverter;
24 import org.xml.sax.EntityResolver;
25 import org.xml.sax.InputSource;
26 import org.xml.sax.SAXException;
27@@ -190,10 +191,9 @@ URL registerImage(URI imageURI)
28 
29             if (content.startsWith("base64"))
30             {
31-                content = content.substring(6);
32                 try
33                 {
34-                    byte[] buf = new sun.misc.BASE64Decoder().decodeBuffer(content);
35+                    byte[] buf = DatatypeConverter.parseBase64Binary(content.substring(6));
36                     ByteArrayInputStream bais = new ByteArrayInputStream(buf);
37                     BufferedImage img = ImageIO.read(bais);
38 
39@@ -213,7 +213,8 @@ URL registerImage(URI imageURI)
40                     loadedImages.put(url, ref);
41 
42                     return url;
43-                } catch (IOException ex)
44+                }
45+                catch (IOException | IllegalArgumentException ex)
46                 {
47                     Logger.getLogger(SVGConst.SVG_LOGGER).log(Level.WARNING,
48                         "Could not decode inline image", ex);
49diff --git a/src/com/kitfox/svg/app/data/Handler.java b/src/com/kitfox/svg/app/data/Handler.java
50index 806dcd9..e35c260 100644
51--- a/src/com/kitfox/svg/app/data/Handler.java
52+++ b/src/com/kitfox/svg/app/data/Handler.java
53@@ -44,6 +44,8 @@
54 import java.util.logging.Level;
55 import java.util.logging.Logger;
56 
57+import javax.xml.bind.DatatypeConverter;
58+
59 /**
60  *
61  * @author kitfox
62@@ -66,12 +68,11 @@ public Connection(URL url)
63 
64             if (content.startsWith("base64,"))
65             {
66-                content = content.substring(7);
67                 try
68                 {
69-                    buf = new sun.misc.BASE64Decoder().decodeBuffer(content);
70+                    buf = DatatypeConverter.parseBase64Binary(content.substring(7));
71                 }
72-                catch (IOException e)
73+                catch (IllegalArgumentException e)
74                 {
75                     Logger.getLogger(SVGConst.SVG_LOGGER).log(Level.WARNING, null, e);
76                 }
77diff --git a/src/oauth/signpost/signature/OAuthMessageSigner.java b/src/oauth/signpost/signature/OAuthMessageSigner.java
78index 8d878ae..e24092d 100644
79--- a/src/oauth/signpost/signature/OAuthMessageSigner.java
80+++ b/src/oauth/signpost/signature/OAuthMessageSigner.java
81@@ -16,26 +16,20 @@
82 
83 import java.io.IOException;
84 import java.io.Serializable;
85+import javax.xml.bind.DatatypeConverter;
86 
87 import oauth.signpost.exception.OAuthMessageSignerException;
88 import oauth.signpost.http.HttpRequest;
89 import oauth.signpost.http.HttpParameters;
90 
91-import org.apache.commons.codec.binary.Base64;
92-
93 public abstract class OAuthMessageSigner implements Serializable {
94 
95     private static final long serialVersionUID = 4445779788786131202L;
96 
97-    private transient Base64 base64;
98-
99     private String consumerSecret;
100 
101     private String tokenSecret;
102 
103-    public OAuthMessageSigner() {
104-        this.base64 = new Base64();
105-    }
106 
107     public abstract String sign(HttpRequest request, HttpParameters requestParameters)
108             throws OAuthMessageSignerException;
109@@ -59,16 +53,15 @@ public void setTokenSecret(String tokenSecret) {
110     }
111 
112     protected byte[] decodeBase64(String s) {
113-        return base64.decode(s.getBytes());
114+        return DatatypeConverter.parseBase64Binary(s);
115     }
116 
117     protected String base64Encode(byte[] b) {
118-        return new String(base64.encode(b));
119+        return DatatypeConverter.printBase64Binary(b);
120     }
121 
122     private void readObject(java.io.ObjectInputStream stream)
123             throws IOException, ClassNotFoundException {
124         stream.defaultReadObject();
125-        this.base64 = new Base64();
126     }
127 }
Note: See TracBrowser for help on using the repository browser.