2

先週は経験していなかった奇妙なことが DropBox で発生しています。DropBox からファイルを取得してローカルに保存する単純な Java コンソール アプリを作成しましたが、これは機能していましたが、何らかの理由で現在は失敗しています。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)
4

1 に答える 1

2

ライブラリが解析しようとしていた JSON が破損していたようです。

そうは言ってもAssertionError、本番環境でパブリック API から伝播されることは常にバグです。アサーション エラーとは、基本的に、ライブラリの作成者が作成した仮定が常に正しいとは限らないことを意味します。仮定が常に真になるようにコードを修正するか、より関連性の高いExceptionサブクラスをスローして API の一部として文書化する必要があります。

実際、これはそのライブラリの Dropbox イシュー トラッカーの問題です。

DbxClient.getAccountInfo が AssertionError で失敗します。

問題の提出者は何も提供していないため、その問題についてコメントし、詳細 (つまり、スタック トレースと何をしていたかの説明) を提供することをお勧めします。

于 2013-09-13T18:22:52.953 に答える