Skip to content

Commit 20fe7a6

Browse files
committed
Implement SonarCloud quality suggestions #159
1 parent d5e1df7 commit 20fe7a6

File tree

3 files changed

+35
-34
lines changed

3 files changed

+35
-34
lines changed

src/main/java/de/gwdg/metadataqa/api/calculator/solr/QaSolrClient.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ public class QaSolrClient {
2020
protected UniquenessExtractor extractor = new UniquenessExtractor();
2121
protected final Schema schema;
2222

23+
public QaSolrClient() {
24+
this(null, null);
25+
}
26+
2327
public QaSolrClient(SolrClient solrClient, Schema schema) {
2428
this.solrClient = solrClient;
2529
this.schema = schema;

src/main/java/de/gwdg/metadataqa/api/cli/RecordFactory.java

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,14 @@
1717
import java.io.FileInputStream;
1818
import java.io.IOException;
1919
import java.io.InputStreamReader;
20+
import java.nio.charset.StandardCharsets;
2021
import java.nio.file.Files;
2122
import java.nio.file.Path;
2223
import java.nio.file.Paths;
23-
import java.util.logging.Logger;
2424
import java.util.zip.GZIPInputStream;
2525

2626
public class RecordFactory {
2727

28-
private static Logger logger = Logger.getLogger(RecordFactory.class.getCanonicalName());;
29-
3028
private RecordFactory() {}
3129

3230
public static RecordReader getRecordReader(String inputFile,
@@ -35,27 +33,26 @@ public static RecordReader getRecordReader(String inputFile,
3533
throws CsvValidationException, IOException {
3634
final Schema schema = calculator.getSchema();
3735

38-
BufferedReader inputReader;
36+
BufferedReader inputReader = null;
3937
if (gzip) {
4038
FileInputStream fis = new FileInputStream(inputFile);
4139
GZIPInputStream gis = new GZIPInputStream(fis);
42-
InputStreamReader inputStreamReader = new InputStreamReader(gis, "UTF-8");
40+
InputStreamReader inputStreamReader = new InputStreamReader(gis, StandardCharsets.UTF_8);
4341
inputReader = new BufferedReader(inputStreamReader);
4442
} else {
4543
Path inputPath = Paths.get(inputFile);
4644
inputReader = Files.newBufferedReader(inputPath);
4745
}
4846

4947
switch (schema.getFormat()) {
50-
case CSV:
51-
return new CSVRecordReader(inputReader, calculator);
5248
case JSON:
5349
return new JSONRecordReader(inputReader, calculator);
5450
case XML:
55-
XMLRecordReader reader = new XMLRecordReader(inputReader, calculator);
56-
return reader;
51+
return new XMLRecordReader(inputReader, calculator);
52+
case CSV:
53+
default:
54+
return new CSVRecordReader(inputReader, calculator);
5755
}
58-
return new CSVRecordReader(inputReader, calculator);
5956
}
6057

6158
public static ResultWriter getResultWriter(String outputFormat, String outputFile) throws IOException {
@@ -65,27 +62,26 @@ public static ResultWriter getResultWriter(String outputFormat, String outputFil
6562
}
6663

6764
switch (outputFormat) {
68-
case App.CSV:
69-
return new CSVResultWriter(outputFile);
7065
case App.JSON:
7166
case App.NDJSON:
7267
return new JSONResultWriter(outputFile);
7368
case App.CSVJSON:
7469
return new CSVJSONResultWriter(outputFile);
70+
case App.CSV:
71+
default:
72+
return new CSVResultWriter(outputFile);
7573
}
76-
77-
return new CSVResultWriter(outputFile);
7874
}
7975

80-
public static ResultWriter getResultWriter(String outputFormat) throws IOException {
76+
public static ResultWriter getResultWriter(String outputFormat) {
8177
switch (outputFormat) {
82-
case App.CSV:
83-
return new CSVResultWriter();
8478
case App.NDJSON:
8579
return new JSONResultWriter();
8680
case App.CSVJSON:
8781
return new CSVJSONResultWriter();
82+
case App.CSV:
83+
default:
84+
return new CSVResultWriter();
8885
}
89-
return new CSVResultWriter();
9086
}
9187
}

src/main/java/de/gwdg/metadataqa/api/uniqueness/DefaultSolrClient.java

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
package de.gwdg.metadataqa.api.uniqueness;
22

33
import org.apache.solr.client.solrj.SolrServerException;
4-
import org.apache.solr.client.solrj.impl.HttpSolrClient;
4+
import org.apache.solr.client.solrj.impl.BaseHttpSolrClient;
5+
import org.apache.solr.client.solrj.impl.Http2SolrClient;
56
import org.apache.solr.common.SolrInputDocument;
67

78
import java.io.BufferedInputStream;
@@ -29,6 +30,7 @@
2930
public class DefaultSolrClient implements SolrClient, Serializable {
3031

3132
private static final Logger LOGGER = Logger.getLogger(DefaultSolrClient.class.getCanonicalName());
33+
private static final String CONNECTION_ERROR_MESSAGE = "Error with connecting to %s: %s";
3234

3335
private static final String USER_AGENT = "Custom Java application";
3436
private static final int VALUE_LIMIT = 50;
@@ -40,12 +42,12 @@ public class DefaultSolrClient implements SolrClient, Serializable {
4042
private String solrSearchPattern;
4143
private String solrSearchAllPattern;
4244
private SolrConfiguration solrConfiguration;
43-
private HttpSolrClient solr;
45+
private Http2SolrClient solr;
4446
boolean trimId = true;
4547

4648
public DefaultSolrClient(SolrConfiguration solrConfiguration) {
4749
this.solrConfiguration = solrConfiguration;
48-
solr = new HttpSolrClient.Builder(solrConfiguration.getUrl()).build();
50+
solr = new Http2SolrClient.Builder(solrConfiguration.getUrl()).build();
4951
}
5052

5153
public String getSolrSearchResponse(String solrField, String value) {
@@ -77,7 +79,7 @@ public String buildUrl(String solrField, String value) {
7779

7880
private String connect(String url, String solrField, String value) {
7981
URL fragmentPostUrl = null;
80-
String record = null;
82+
String rawSolrResponse = null;
8183
try {
8284
fragmentPostUrl = new URL(url);
8385
HttpURLConnection urlConnection = null;
@@ -90,37 +92,36 @@ private String connect(String url, String solrField, String value) {
9092
try {
9193
if (urlConnection.getResponseCode() == HttpURLConnection.HTTP_OK) {
9294
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
93-
record = readStream(in);
95+
rawSolrResponse = readStream(in);
9496
} else {
9597
int lenght = urlConnection.getContentLength();
98+
String shortenedValue = value.length() < VALUE_LIMIT ? value : value.substring(0, VALUE_LIMIT) + "...";
99+
String solrResponse = lenght == 0 ? "" : readStream(new BufferedInputStream(urlConnection.getInputStream()));
96100
LOGGER.severe(String.format("%s: %s returned code %d. Solr responde: %s",
97-
solrField,
98-
(value.length() < VALUE_LIMIT ? value : value.substring(0, VALUE_LIMIT) + "..."),
99-
urlConnection.getResponseCode(),
100-
(lenght == 0 ? "" : readStream(new BufferedInputStream(urlConnection.getInputStream())))
101+
solrField, shortenedValue, urlConnection.getResponseCode(), solrResponse
101102
));
102103
}
103104
} catch (IOException e) {
104-
LOGGER.severe("Error with connecting to " + url + ": " + e.getMessage());
105+
LOGGER.severe(String.format(CONNECTION_ERROR_MESSAGE, url, e.getMessage()));
105106
}
106107
} catch (IOException e) {
107-
LOGGER.severe("Error with connecting to " + url + ": " + e.getMessage());
108+
LOGGER.severe(String.format(CONNECTION_ERROR_MESSAGE, url, e.getMessage()));
108109
} finally {
109110
if (urlConnection != null) {
110111
urlConnection.disconnect();
111112
}
112113
}
113114
} catch (MalformedURLException e) {
114-
LOGGER.severe("Error with connecting to " + url + ": " + e.getMessage());
115+
LOGGER.severe(String.format(CONNECTION_ERROR_MESSAGE, url, e.getMessage()));
115116
}
116117

117118
// add request header
118-
return record;
119+
return rawSolrResponse;
119120
}
120121

121122
private String readStream(InputStream in) throws IOException {
122123
var rd = new BufferedReader(new InputStreamReader(in, StandardCharsets.UTF_8));
123-
var result = new StringBuffer();
124+
var result = new StringBuilder();
124125
var line = "";
125126
while ((line = rd.readLine()) != null) {
126127
result.append(line);
@@ -173,8 +174,8 @@ public void indexMap(String id, Map<String, List<String>> objectMap) throws IOEx
173174

174175
try {
175176
solr.add(document);
176-
} catch (HttpSolrClient.RemoteSolrException ex) {
177-
LOGGER.log(Level.WARNING, "document", document);
177+
} catch (BaseHttpSolrClient.RemoteSolrException ex) {
178+
LOGGER.log(Level.WARNING, String.format("Solr input document: %s", document.toString()));
178179
LOGGER.log(Level.WARNING, "Commit exception", ex);
179180
}
180181
}

0 commit comments

Comments
 (0)