AssertionError при вызове DropBox getAccountInfo()

У меня странная проблема с DropBox, которой не было на прошлой неделе. Я создал простое консольное приложение Java, чтобы вытаскивать файлы из DropBox и хранить их локально, и это работало, но по какой-то причине сейчас оно не работает. AccessToken и UserID считываются из файла.

MyDBAccessToken = params.get(0);
MyDBUserID      = params.get(1);
MyDBUrlState    = null;

DbxAuthFinish authToken  = new DbxAuthFinish(MyDBAccessToken, MyDBUserID, MyDBUrlState);
DbxRequestConfig config  = new DbxRequestConfig( "JavaTutorial/1.0", Locale.getDefault().toString());
DbxClient MyDBClient     = new DbxClient(config, authToken.accessToken);
System.out.println("Linked to DropBox account: " + MyDBClient.getAccountInfo().displayName + " ID " + MyDBClient.getAccountInfo().userId);

Вот моя трассировка стека

Exception in thread "main" java.lang.AssertionError: bad index: -1, field = "datastores"
at com.dropbox.core.DbxAccountInfo$Quota$1.read(DbxAccountInfo.java:91)
at com.dropbox.core.DbxAccountInfo$Quota$1.read(DbxAccountInfo.java:66)
at com.dropbox.core.json.JsonReader.readField(JsonReader.java:26)
at com.dropbox.core.DbxAccountInfo$1.read(DbxAccountInfo.java:152)
at com.dropbox.core.DbxAccountInfo$1.read(DbxAccountInfo.java:128)
at com.dropbox.core.json.JsonReader.readFully(JsonReader.java:349)
at com.dropbox.core.json.JsonReader.readFully(JsonReader.java:238)
at com.dropbox.core.DbxRequestUtil.readJsonFromResponse(DbxRequestUtil.java:218)
at com.dropbox.core.DbxClient$4.handle(DbxClient.java:275)
at com.dropbox.core.DbxClient$4.handle(DbxClient.java:270)
at com.dropbox.core.DbxRequestUtil.doGet(DbxRequestUtil.java:269)
at com.dropbox.core.DbxClient.doGet(DbxClient.java:1804)
at com.dropbox.core.DbxClient.getAccountInfo(DbxClient.java:270)

person Arcane Automata    schedule 13.09.2013    source источник
comment
Какую версию dropbox-core вы используете?   -  person Jk1    schedule 13.09.2013
comment
Я использовал и 1.7.2, и 1.7.3.   -  person Arcane Automata    schedule 13.09.2013


Ответы (1)


Похоже, что любой JSON, который библиотека пыталась разобрать, был поврежден.

При этом распространение AssertionError из общедоступного API в рабочей среде всегда является ошибкой. Ошибка утверждения в основном означает, что предположение, сделанное автором библиотеки, не всегда верно. Код либо нужно исправить, чтобы предположение всегда было верным, либо следует выкинуть и задокументировать более подходящий подкласс Exception как часть API.

На самом деле, вот проблема в системе отслеживания проблем Dropbox для этой библиотеки.

DbxClient.getAccountInfo завершается ошибкой AssertionError.

Вы можете прокомментировать эту проблему и предоставить более подробную информацию (т. е. трассировку стека и описание того, что вы делали), поскольку заявитель не предоставил ничего.

person Dev    schedule 13.09.2013
comment
Фантастическое спасибо! Я добавил свою информацию в этот отчет - person Arcane Automata; 13.09.2013