summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAustin Kirk <askirk@umich.edu>2017-05-04 13:48:17 -0400
committerAustin Kirk <askirk@umich.edu>2017-05-04 13:48:17 -0400
commitd5e41294c8156f1f7a5a17c96d2ef602169a8108 (patch)
tree63bde25faaf5e746cec59a3d8e4aa9ae0bccb856
parente81bb1e909c8355c44d48b0f9a3fca9e7d5ebe5c (diff)
downloadsdl_android-d5e41294c8156f1f7a5a17c96d2ef602169a8108.tar.gz
Add null checks in Mime.java class
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/trace/Mime.java69
1 files changed, 43 insertions, 26 deletions
diff --git a/sdl_android/src/main/java/com/smartdevicelink/trace/Mime.java b/sdl_android/src/main/java/com/smartdevicelink/trace/Mime.java
index 026f31721..b72201df5 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/trace/Mime.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/trace/Mime.java
@@ -7,6 +7,10 @@ public class Mime {
private static String m_base64Chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
public static String base64Encode(String str) {
+ if(str == null){
+ return null;
+ }
+
String b64String = "";
try {
byte[] strBytes = str.getBytes("US-ASCII");
@@ -18,48 +22,61 @@ public class Mime {
}
public static String base64Encode(byte bytesToEncode[]) {
- return base64Encode(bytesToEncode, 0, bytesToEncode.length);
+ if(bytesToEncode != null){
+ return base64Encode(bytesToEncode, 0, bytesToEncode.length);
+ }
+ return null;
}
public static String base64Encode(byte bytesToEncode[], int offset, int length) {
+ if(bytesToEncode == null){
+ return null;
+ }
+
StringBuilder sb = new StringBuilder();
int idxin = 0;
int b64idx = 0;
- for (idxin=offset;idxin < offset + length;idxin++) {
- switch ((idxin-offset) % 3) {
+ try {
+
+ for (idxin = offset; idxin < offset + length; idxin++) {
+ switch ((idxin - offset) % 3) {
+ case 0:
+ b64idx = (bytesToEncode[idxin] >> 2) & 0x3f;
+ break;
+ case 1:
+ b64idx = (bytesToEncode[idxin] >> 4) & 0x0f;
+ b64idx |= ((bytesToEncode[idxin - 1] << 4) & 0x30);
+ break;
+ case 2:
+ b64idx = (bytesToEncode[idxin] >> 6) & 0x03;
+ b64idx |= ((bytesToEncode[idxin - 1] << 2) & 0x3c);
+ sb.append(m_base64Chars.charAt(b64idx));
+ b64idx = bytesToEncode[idxin] & 0x3f;
+ break;
+ }
+ sb.append(m_base64Chars.charAt(b64idx));
+ }
+
+ switch ((idxin - offset) % 3) {
case 0:
- b64idx = (bytesToEncode[idxin] >> 2) & 0x3f;
break;
case 1:
- b64idx = (bytesToEncode[idxin] >> 4) & 0x0f;
- b64idx |= ((bytesToEncode[idxin-1] << 4)& 0x30);
+ b64idx = (bytesToEncode[idxin - 1] << 4) & 0x30;
+ sb.append(m_base64Chars.charAt(b64idx));
+ sb.append("==");
break;
case 2:
- b64idx = (bytesToEncode[idxin] >> 6) & 0x03;
- b64idx |= ((bytesToEncode[idxin-1] << 2)& 0x3c);
+ b64idx = ((bytesToEncode[idxin - 1] << 2) & 0x3c);
sb.append(m_base64Chars.charAt(b64idx));
- b64idx = bytesToEncode[idxin] & 0x3f;
+ sb.append('=');
break;
}
- sb.append(m_base64Chars.charAt(b64idx));
- }
- switch ((idxin-offset) % 3) {
- case 0:
- break;
- case 1:
- b64idx = (bytesToEncode[idxin-1] << 4) & 0x30;
- sb.append(m_base64Chars.charAt(b64idx));
- sb.append("==");
- break;
- case 2:
- b64idx = ((bytesToEncode[idxin-1] << 2)& 0x3c);
- sb.append(m_base64Chars.charAt(b64idx));
- sb.append('=');
- break;
- }
- return sb.toString();
+ return sb.toString();
+ }catch (ArrayIndexOutOfBoundsException e){
+ return null;
+ }
}
} \ No newline at end of file