Skip to content

Commit 9262d39

Browse files
committed
error handling fix
1 parent d6c2b05 commit 9262d39

File tree

4 files changed

+40
-24
lines changed

4 files changed

+40
-24
lines changed

java/InkRecognition/android-sample-app/Recognizer/app/src/main/java/CognitiveServices/Ink/Recognition/InkRecognitionDetailsLogger.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,10 @@ private static void displayRecognitionUnit(InkRecognitionUnit recognitionUnit) {
7676

7777
private static void displayInkDrawingProperties(InkDrawing drawing) {
7878

79-
Log.d(TAG, "center: " + drawing.getCenter().x + " " +
80-
drawing.getCenter().y);
79+
if (drawing.getCenter() != null) {
80+
Log.d(TAG, "center: " + drawing.getCenter().x + " " +
81+
drawing.getCenter().y);
82+
}
8183
Log.d(TAG, "rotated angle: "+ drawing.getRotatedAngle());
8284
Log.d(TAG, "confidence: "+ drawing.getConfidence());
8385
for (Shape alternate : drawing.getAlternates()) {

java/InkRecognition/android-sample-app/Recognizer/app/src/main/java/CognitiveServices/Ink/Recognition/InkRecognitionError.java

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,20 @@ public class InkRecognitionError {
2828

2929
InkRecognitionError(JSONObject jsonResponse) {
3030
try {
31-
errorCode = jsonResponse.getString("code");
32-
message = jsonResponse.getString("message");
33-
target = jsonResponse.getString("target");
34-
JSONArray jsonDetails = jsonResponse.getJSONArray("details");
35-
for (int i = 0;
36-
i < jsonDetails.length();
37-
i++) {
38-
details.add(new InkRecognitionError(jsonDetails.getJSONObject(i)));
31+
if (jsonResponse.has("code")) {
32+
errorCode = jsonResponse.getString("code");
33+
message = jsonResponse.getString("message");
34+
target = jsonResponse.getString("target");
35+
JSONArray jsonDetails = jsonResponse.getJSONArray("details");
36+
for (int i = 0;
37+
i < jsonDetails.length();
38+
i++) {
39+
details.add(new InkRecognitionError(jsonDetails.getJSONObject(i)));
40+
}
41+
} else {
42+
errorCode = "RequestError";
43+
message = jsonResponse.getJSONObject("error").getString("message");
44+
target = "Request";
3945
}
4046
}
4147
catch (JSONException e) {

java/InkRecognition/android-sample-app/Recognizer/app/src/main/java/CognitiveServices/Ink/Recognition/InkRecognizer.java

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -135,17 +135,15 @@ protected InkRecognizer doInBackground(InkRecognizer... params) {
135135
if (responseCode == HttpURLConnection.HTTP_OK ||
136136
responseCode == HttpURLConnection.HTTP_BAD_REQUEST) {
137137
InputStreamReader streamReader = new InputStreamReader(restConnection.getInputStream());
138-
BufferedReader reader = new BufferedReader(streamReader);
139-
StringBuilder stringBuilder = new StringBuilder();
140-
String line;
141-
while ((line = reader.readLine()) != null) {
142-
stringBuilder.append(line).append("\n");
143-
}
144-
inkRecognizer.buildResult(stringBuilder.toString(), responseCode);
138+
inkRecognizer.buildResult(getResponseString(streamReader), responseCode);
145139
}
146140
else {
147-
148-
inkRecognizer.buildResult("Error Occurred", responseCode);
141+
String responseError = "{}";
142+
if (responseCode == HttpURLConnection.HTTP_UNAUTHORIZED) {
143+
InputStreamReader streamReader = new InputStreamReader(restConnection.getErrorStream());
144+
responseError = getResponseString(streamReader);
145+
}
146+
inkRecognizer.buildResult(responseError, responseCode);
149147
}
150148
}
151149
catch (Exception e) {
@@ -155,6 +153,17 @@ protected InkRecognizer doInBackground(InkRecognizer... params) {
155153
return inkRecognizer;
156154
}
157155

156+
private String getResponseString(InputStreamReader streamReader) throws Exception
157+
{
158+
BufferedReader reader = new BufferedReader(streamReader);
159+
StringBuilder responseBody = new StringBuilder();
160+
String line;
161+
while ((line = reader.readLine()) != null) {
162+
responseBody.append(line).append("\n");
163+
}
164+
return responseBody.toString();
165+
}
166+
158167
@Override
159168
protected void onPostExecute(InkRecognizer analyzer) {
160169
StringBuilder recognizedWords = new StringBuilder();

java/InkRecognition/android-sample-app/Recognizer/app/src/main/java/CognitiveServices/Ink/Recognition/InkRoot.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -111,11 +111,10 @@ public ArrayList<InkWord> getInkWords()
111111

112112
public ArrayList<InkParagraph> getParagraphs() {
113113
ArrayList<InkParagraph> paragraphs = new ArrayList<>();
114-
Set<Integer> keys = recognizedContainers.keySet();
115-
for (Integer key: keys) {
116-
//noinspection ConstantConditions
117-
if (recognizedContainers.get(key).getCategory() == InkRecognitionUnitCategory.INK_PARAGRAPH) {
118-
paragraphs.add((InkParagraph)recognizedContainers.get(key));
114+
for (Integer key : recognizedContainers.keySet()) {
115+
InkRecognitionUnit entryValue = recognizedContainers.get(key);
116+
if (entryValue.getCategory() == InkRecognitionUnitCategory.INK_PARAGRAPH) {
117+
paragraphs.add((InkParagraph)entryValue);
119118
}
120119
}
121120
return paragraphs;

0 commit comments

Comments
 (0)