Skip to content

Commit 29a1573

Browse files
Random code cleanup for Storage (#758)
1 parent 534e5b3 commit 29a1573

File tree

13 files changed

+45
-93
lines changed

13 files changed

+45
-93
lines changed

firebase-storage/api.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,6 @@ package com.google.firebase.storage {
6868
method @com.google.firebase.storage.StorageException.ErrorCode public int getErrorCode();
6969
method public int getHttpResultCode();
7070
method public boolean getIsRecoverableException();
71-
method @NonNull public String getMessage();
7271
field public static final int ERROR_BUCKET_NOT_FOUND = -13011; // 0xffffcd2d
7372
field public static final int ERROR_CANCELED = -13040; // 0xffffcd10
7473
field public static final int ERROR_INVALID_CHECKSUM = -13031; // 0xffffcd19

firebase-storage/src/androidTest/java/com/google/firebase/storage/IntegrationTest.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -134,15 +134,15 @@ public void updateMetadata() throws ExecutionException, InterruptedException {
134134

135135
@Test
136136
public void pagedListFiles() throws ExecutionException, InterruptedException {
137-
Task<ListResult> listTask = storageClient.getReference(randomPrefix).list(2);
137+
Task<ListResult> listTask = getReference().list(2);
138138
ListResult listResult = Tasks.await(listTask);
139139

140140
assertThat(listResult.getItems())
141141
.containsExactly(getReference("download.dat"), getReference("metadata.dat"));
142142
assertThat(listResult.getPrefixes()).isEmpty();
143143
assertThat(listResult.getPageToken()).isNotEmpty();
144144

145-
listTask = storageClient.getReference(randomPrefix).list(2, listResult.getPageToken());
145+
listTask = getReference().list(2, listResult.getPageToken());
146146
listResult = Tasks.await(listTask);
147147

148148
assertThat(listResult.getItems()).isEmpty();
@@ -152,7 +152,7 @@ public void pagedListFiles() throws ExecutionException, InterruptedException {
152152

153153
@Test
154154
public void listAllFiles() throws ExecutionException, InterruptedException {
155-
Task<ListResult> listTask = storageClient.getReference(randomPrefix).listAll();
155+
Task<ListResult> listTask = getReference().listAll();
156156
ListResult listResult = Tasks.await(listTask);
157157

158158
assertThat(listResult.getPrefixes()).containsExactly(getReference("prefix"));
@@ -161,6 +161,11 @@ public void listAllFiles() throws ExecutionException, InterruptedException {
161161
assertThat(listResult.getPageToken()).isNull();
162162
}
163163

164+
@NonNull
165+
private StorageReference getReference() {
166+
return storageClient.getReference(randomPrefix);
167+
}
168+
164169
@NonNull
165170
private StorageReference getReference(String filename) {
166171
return storageClient.getReference(randomPrefix + "/" + filename);

firebase-storage/src/main/java/com/google/firebase/storage/ListResult.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ public List<StorageReference> getItems() {
8989
}
9090

9191
/**
92-
* Returns a token that can be used to resume a previous {@code list()} operation. ${@code null}
92+
* Returns a token that can be used to resume a previous {@code list()} operation. {@code null}
9393
* indicates that there are no more results.
9494
*
9595
* @return A page token if more results are available.

firebase-storage/src/main/java/com/google/firebase/storage/StorageException.java

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -42,22 +42,22 @@ public class StorageException extends FirebaseException {
4242

4343
private final int errorCode;
4444
private final int httpResultCode;
45-
private String detailMessage;
4645
private Throwable cause;
4746

4847
StorageException(@ErrorCode int errorCode, Throwable inner, int httpResultCode) {
49-
this.detailMessage = getErrorMessageForCode(errorCode);
48+
super(getErrorMessageForCode(errorCode));
49+
5050
this.cause = inner;
5151
this.errorCode = errorCode;
5252
this.httpResultCode = httpResultCode;
5353
Log.e(
5454
TAG,
5555
"StorageException has occurred.\n"
56-
+ detailMessage
56+
+ getErrorMessageForCode(errorCode)
5757
+ "\n Code: "
58-
+ Integer.toString(this.errorCode)
58+
+ this.errorCode
5959
+ " HttpResult: "
60-
+ Integer.toString(this.httpResultCode));
60+
+ this.httpResultCode);
6161
if (cause != null) {
6262
Log.e(TAG, cause.getMessage(), cause);
6363
}
@@ -155,16 +155,6 @@ static String getErrorMessageForCode(int errorCode) {
155155
}
156156
}
157157

158-
/**
159-
* Returns the detail message which was provided when this {@code Throwable} was created. Returns
160-
* {@code null} if no message was provided at creation time.
161-
*/
162-
@NonNull
163-
@Override
164-
public String getMessage() {
165-
return detailMessage;
166-
}
167-
168158
/** Returns the cause of this {@code Throwable}, or {@code null} if there is no cause. */
169159
@Nullable
170160
@Override

firebase-storage/src/main/java/com/google/firebase/storage/StorageMetadata.java

Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,11 @@
1616

1717
import android.net.Uri;
1818
import android.text.TextUtils;
19-
import android.util.Log;
2019
import androidx.annotation.NonNull;
2120
import androidx.annotation.Nullable;
2221
import com.google.android.gms.common.internal.Preconditions;
2322
import com.google.firebase.storage.internal.Slashes;
2423
import com.google.firebase.storage.internal.Util;
25-
import java.io.UnsupportedEncodingException;
2624
import java.util.Collections;
2725
import java.util.HashMap;
2826
import java.util.Iterator;
@@ -256,18 +254,12 @@ public StorageReference getReference() {
256254
if (TextUtils.isEmpty(bucket) || TextUtils.isEmpty(path)) {
257255
return null;
258256
}
259-
Uri uri;
260-
try {
261-
uri =
262-
new Uri.Builder()
263-
.scheme("gs")
264-
.authority(bucket)
265-
.encodedPath(Slashes.preserveSlashEncode(path))
266-
.build();
267-
} catch (UnsupportedEncodingException e) {
268-
Log.e(TAG, "Unable to create a valid default Uri. " + bucket + path, e);
269-
throw new IllegalStateException(e);
270-
}
257+
Uri uri =
258+
new Uri.Builder()
259+
.scheme("gs")
260+
.authority(bucket)
261+
.encodedPath(Slashes.preserveSlashEncode(path))
262+
.build();
271263

272264
return new StorageReference(uri, mStorage);
273265
}
@@ -276,7 +268,7 @@ public StorageReference getReference() {
276268
}
277269

278270
@NonNull
279-
JSONObject createJSONObject() throws JSONException {
271+
JSONObject createJSONObject() {
280272
Map<String, Object> jsonData = new HashMap<>();
281273

282274
if (mContentType.isUserProvided()) {
@@ -347,11 +339,11 @@ private void parseJSON(JSONObject jsonObject) throws JSONException {
347339
mMetadata.mGeneration = jsonObject.optString(GENERATION_KEY);
348340
mMetadata.mPath = jsonObject.optString(NAME_KEY);
349341
mMetadata.mBucket = jsonObject.optString(BUCKET_KEY);
350-
mMetadata.mMetadataGeneration = (jsonObject.optString(META_GENERATION_KEY));
351-
mMetadata.mCreationTime = (jsonObject.optString(TIME_CREATED_KEY));
352-
mMetadata.mUpdatedTime = (jsonObject.optString(TIME_UPDATED_KEY));
353-
mMetadata.mSize = (jsonObject.optLong(SIZE_KEY));
354-
mMetadata.mMD5Hash = (jsonObject.optString(MD5_HASH_KEY));
342+
mMetadata.mMetadataGeneration = jsonObject.optString(META_GENERATION_KEY);
343+
mMetadata.mCreationTime = jsonObject.optString(TIME_CREATED_KEY);
344+
mMetadata.mUpdatedTime = jsonObject.optString(TIME_UPDATED_KEY);
345+
mMetadata.mSize = jsonObject.optLong(SIZE_KEY);
346+
mMetadata.mMD5Hash = jsonObject.optString(MD5_HASH_KEY);
355347

356348
if (jsonObject.has(CUSTOM_METADATA_KEY) && !jsonObject.isNull(CUSTOM_METADATA_KEY)) {
357349
JSONObject customMetadata = jsonObject.getJSONObject(CUSTOM_METADATA_KEY);

firebase-storage/src/main/java/com/google/firebase/storage/StorageReference.java

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
import java.io.File;
3434
import java.io.IOException;
3535
import java.io.InputStream;
36-
import java.io.UnsupportedEncodingException;
3736
import java.net.URL;
3837
import java.util.ArrayList;
3938
import java.util.List;
@@ -85,18 +84,8 @@ public StorageReference child(@NonNull String pathString) {
8584
!TextUtils.isEmpty(pathString), "childName cannot be null or empty");
8685

8786
pathString = Slashes.normalizeSlashes(pathString);
88-
Uri child;
89-
try {
90-
child =
91-
mStorageUri
92-
.buildUpon()
93-
.appendEncodedPath(Slashes.preserveSlashEncode(pathString))
94-
.build();
95-
} catch (UnsupportedEncodingException e) {
96-
Log.e(TAG, "Unable to create a valid default Uri. " + pathString, e);
97-
98-
throw new IllegalArgumentException("childName");
99-
}
87+
Uri child =
88+
mStorageUri.buildUpon().appendEncodedPath(Slashes.preserveSlashEncode(pathString)).build();
10089
return new StorageReference(child, mFirebaseStorage);
10190
}
10291

firebase-storage/src/main/java/com/google/firebase/storage/UpdateMetadataTask.java

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -50,17 +50,9 @@ public UpdateMetadataTask(
5050

5151
@Override
5252
public void run() {
53-
final NetworkRequest request;
54-
try {
55-
request =
56-
new UpdateMetadataNetworkRequest(
57-
mStorageRef.getStorageUri(), mStorageRef.getApp(), mNewMetadata.createJSONObject());
58-
} catch (final JSONException e) {
59-
Log.e(TAG, "Unable to create the request from metadata.", e);
60-
61-
mPendingResult.setException(StorageException.fromException(e));
62-
return;
63-
}
53+
final NetworkRequest request =
54+
new UpdateMetadataNetworkRequest(
55+
mStorageRef.getStorageUri(), mStorageRef.getApp(), mNewMetadata.createJSONObject());
6456

6557
mSender.sendWithExponentialBackoff(request);
6658
if (request.isResultSuccess()) {

firebase-storage/src/main/java/com/google/firebase/storage/UploadTask.java

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -258,19 +258,12 @@ private void beginResumableUpload() {
258258
if (TextUtils.isEmpty(mimeType)) {
259259
mimeType = APPLICATION_OCTET_STREAM;
260260
}
261-
NetworkRequest startRequest;
262-
try {
263-
startRequest =
264-
new ResumableUploadStartRequest(
265-
mStorageRef.getStorageUri(),
266-
mStorageRef.getApp(),
267-
mMetadata != null ? mMetadata.createJSONObject() : null,
268-
mimeType);
269-
} catch (JSONException e) {
270-
Log.e(TAG, "Unable to create a network request from metadata", e);
271-
mException = e;
272-
return;
273-
}
261+
NetworkRequest startRequest =
262+
new ResumableUploadStartRequest(
263+
mStorageRef.getStorageUri(),
264+
mStorageRef.getApp(),
265+
mMetadata != null ? mMetadata.createJSONObject() : null,
266+
mimeType);
274267

275268
if (!sendWithRetry(startRequest)) {
276269
return;

firebase-storage/src/main/java/com/google/firebase/storage/internal/Slashes.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import androidx.annotation.NonNull;
2020
import androidx.annotation.Nullable;
2121
import com.google.android.gms.common.internal.Preconditions;
22-
import java.io.UnsupportedEncodingException;
2322

2423
/**
2524
* Utility methods for Firebase Storage.
@@ -34,10 +33,9 @@ public class Slashes {
3433
*
3534
* @param s The String to convert
3635
* @return A partially URL encoded string where slashes are preserved.
37-
* @throws UnsupportedEncodingException
3836
*/
3937
@NonNull
40-
public static String preserveSlashEncode(@Nullable String s) throws UnsupportedEncodingException {
38+
public static String preserveSlashEncode(@Nullable String s) {
4139
if (TextUtils.isEmpty(s)) {
4240
return "";
4341
}

firebase-storage/src/main/java/com/google/firebase/storage/network/GetNetworkRequest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
import android.net.Uri;
1818
import androidx.annotation.NonNull;
1919
import com.google.firebase.FirebaseApp;
20-
import java.io.UnsupportedEncodingException;
2120
import java.util.Collections;
2221

2322
/** A network request that returns bytes of a gcs object. */
@@ -40,7 +39,7 @@ protected String getAction() {
4039

4140
@Override
4241
@NonNull
43-
protected String getQueryParameters() throws UnsupportedEncodingException {
42+
protected String getQueryParameters() {
4443
return getPostDataString(
4544
Collections.singletonList("alt"), Collections.singletonList("media"), true);
4645
}

firebase-storage/src/main/java/com/google/firebase/storage/network/ListNetworkRequest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import androidx.annotation.NonNull;
2020
import androidx.annotation.Nullable;
2121
import com.google.firebase.FirebaseApp;
22-
import java.io.UnsupportedEncodingException;
2322
import java.util.ArrayList;
2423
import java.util.List;
2524

@@ -52,7 +51,7 @@ protected String getURL() {
5251

5352
@Override
5453
@Nullable
55-
protected String getQueryParameters() throws UnsupportedEncodingException {
54+
protected String getQueryParameters() {
5655
List<String> keys = new ArrayList<>();
5756
List<String> values = new ArrayList<>();
5857

firebase-storage/src/main/java/com/google/firebase/storage/network/NetworkRequest.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,9 @@
3737
import java.io.InputStream;
3838
import java.io.InputStreamReader;
3939
import java.io.OutputStream;
40-
import java.io.UnsupportedEncodingException;
4140
import java.net.HttpURLConnection;
4241
import java.net.SocketException;
4342
import java.net.URL;
44-
import java.net.URLEncoder;
4543
import java.util.HashMap;
4644
import java.util.List;
4745
import java.util.Map;
@@ -196,7 +194,7 @@ protected int getOutputRawSize() {
196194
* @return query parameters in string form.
197195
*/
198196
@Nullable
199-
protected String getQueryParameters() throws UnsupportedEncodingException {
197+
protected String getQueryParameters() {
200198
return null;
201199
}
202200

@@ -508,8 +506,7 @@ public boolean isResultSuccess() {
508506
return resultCode >= 200 && resultCode < 300;
509507
}
510508

511-
String getPostDataString(@Nullable List<String> keys, List<String> values, boolean encode)
512-
throws UnsupportedEncodingException {
509+
String getPostDataString(@Nullable List<String> keys, List<String> values, boolean encode) {
513510
if (keys == null || keys.size() == 0) {
514511
return null;
515512
}
@@ -523,9 +520,9 @@ String getPostDataString(@Nullable List<String> keys, List<String> values, boole
523520
result.append("&");
524521
}
525522

526-
result.append(encode ? URLEncoder.encode(keys.get(i), "UTF-8") : keys.get(i));
523+
result.append(encode ? Uri.encode(keys.get(i), "UTF-8") : keys.get(i));
527524
result.append("=");
528-
result.append(encode ? URLEncoder.encode(values.get(i), "UTF-8") : values.get(i));
525+
result.append(encode ? Uri.encode(values.get(i), "UTF-8") : values.get(i));
529526
}
530527

531528
return result.toString();

firebase-storage/src/main/java/com/google/firebase/storage/network/ResumableUploadStartRequest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import androidx.annotation.Nullable;
2121
import com.google.firebase.FirebaseApp;
2222
import com.google.firebase.storage.internal.Slashes;
23-
import java.io.UnsupportedEncodingException;
2423
import java.util.ArrayList;
2524
import java.util.List;
2625
import org.json.JSONObject;
@@ -60,7 +59,7 @@ protected String getAction() {
6059

6160
@Override
6261
@NonNull
63-
protected String getQueryParameters() throws UnsupportedEncodingException {
62+
protected String getQueryParameters() {
6463
List<String> keys = new ArrayList<>();
6564
List<String> values = new ArrayList<>();
6665

0 commit comments

Comments
 (0)