Skip to content

Commit 46b7558

Browse files
committed
fix: json syntax exceptions
Signed-off-by: alperozturk <[email protected]>
1 parent 49ce39b commit 46b7558

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

app/src/main/java/it/niedermann/owncloud/notes/persistence/CapabilitiesClient.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,10 @@
1313
import androidx.annotation.Nullable;
1414
import androidx.annotation.WorkerThread;
1515

16+
import com.google.gson.JsonSyntaxException;
1617
import com.nextcloud.android.sso.model.SingleSignOnAccount;
1718

19+
import io.reactivex.Observable;
1820
import it.niedermann.owncloud.notes.shared.model.Capabilities;
1921

2022
@WorkerThread
@@ -27,6 +29,8 @@ public class CapabilitiesClient {
2729
@WorkerThread
2830
public static Capabilities getCapabilities(@NonNull Context context, @NonNull SingleSignOnAccount ssoAccount, @Nullable String lastETag, @NonNull ApiProvider apiProvider) throws Throwable {
2931
final var ocsAPI = apiProvider.getOcsAPI(context, ssoAccount);
32+
final var repository = NotesRepository.getInstance(context);
33+
3034
try {
3135
final var response = ocsAPI.getCapabilities(lastETag).blockingSingle();
3236
final var capabilities = response.getResponse().ocs.data;
@@ -37,12 +41,16 @@ public static Capabilities getCapabilities(@NonNull Context context, @NonNull Si
3741
Log.w(TAG, "Response headers of capabilities are null");
3842
}
3943

40-
final var repository = NotesRepository.getInstance(context);
4144
repository.insertCapabilities(capabilities);
42-
4345
return capabilities;
4446
} catch (RuntimeException e) {
4547
final var cause = e.getCause();
48+
49+
if (e instanceof JsonSyntaxException || (cause instanceof JsonSyntaxException)) {
50+
Log.w(TAG, "JSON parse error, likely 304 Not Modified");
51+
return repository.getCapabilities();
52+
}
53+
4654
if (cause != null) {
4755
throw cause;
4856
} else {

0 commit comments

Comments
 (0)