Skip to content

Commit e7f7574

Browse files
committed
small adjustments to SynonymService and HTTPRequester to get rid of exceptions in edge cases
1 parent f231311 commit e7f7574

File tree

3 files changed

+18
-4
lines changed

3 files changed

+18
-4
lines changed

src/main/java/me/steffenjacobs/syntacticjsonmatcher/service/SynonymService.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package me.steffenjacobs.syntacticjsonmatcher.service;
22

3+
import java.io.UnsupportedEncodingException;
4+
import java.net.URLEncoder;
35
import java.util.HashMap;
46
import java.util.Map;
57

@@ -28,7 +30,11 @@ public SynonymService() {
2830
private String buildRequest(String word) {
2931
StringBuilder sb = new StringBuilder();
3032
sb.append("https://api.datamuse.com/words?rel_syn=");
31-
sb.append(word);
33+
try {
34+
sb.append(URLEncoder.encode(word, "UTF-8"));
35+
} catch (UnsupportedEncodingException e) {
36+
LOG.error(e.getMessage());
37+
}
3238
return sb.toString();
3339
}
3440

@@ -47,6 +53,10 @@ public Map<String, Integer> findSynonyms(String word) {
4753
String request = buildRequest(word);
4854
String result = httpRequester.sendGet(request);
4955
try {
56+
if (result.isEmpty()) {
57+
synonymCache.put(word, map);
58+
return map;
59+
}
5060
JSONArray json = new JSONArray(result);
5161
if (json.isEmpty()) {
5262
synonymCache.put(word, map);

src/main/java/me/steffenjacobs/syntacticjsonmatcher/util/HTTPRequester.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public String sendGet(String url) {
3333

3434
return response.toString();
3535
} catch (IOException e) {
36-
LOG.error(e.getMessage(), e);
36+
LOG.error(e.getMessage());
3737
return "";
3838
}
3939
}

src/test/java/me/steffenjacobs/syntacticjsonmatcher/service/TestSynonymService.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
import org.junit.Assert;
66
import org.junit.Test;
77

8-
import me.steffenjacobs.syntacticjsonmatcher.service.SynonymService;
9-
108
/** @author Steffen Jacobs */
119
public class TestSynonymService {
1210

@@ -18,4 +16,10 @@ public void testSynonymService() {
1816
Assert.assertTrue(result.get("humidness") > 0);
1917
}
2018

19+
@Test
20+
public void testSynonymService2() {
21+
Map<String, Integer> result = new SynonymService().findSynonyms("air pressure");
22+
Assert.assertTrue(result.isEmpty());
23+
}
24+
2125
}

0 commit comments

Comments
 (0)