|
54 | 54 |
|
55 | 55 | import oracle.jdbc.OracleTypes; |
56 | 56 |
|
| 57 | +@SuppressWarnings("StringBufferReplaceableByString") |
57 | 58 | public class RealtimeReporterDao { |
58 | 59 | private static final Logger logger = Logger.getLogger(RealtimeReporterDao.class.getName()); |
59 | 60 | private static final int FIRST_VERSION_WITH_REALTIME_REPORTER = 3001004; |
60 | 61 | private final XMLTools xmlTools = new XMLTools(); |
61 | | - private Connection conn; |
62 | | - private JdbcTemplate jdbcTemplate; |
| 62 | + private final Connection conn; |
| 63 | + private final JdbcTemplate jdbcTemplate; |
63 | 64 |
|
64 | 65 | public RealtimeReporterDao(final Connection conn) { |
65 | 66 | this.conn = conn; |
@@ -194,24 +195,21 @@ public String getHtmlCoverage(final String reporterId) { |
194 | 195 | sb.append(" ? := l_reporter.get_lines_cursor();\n"); |
195 | 196 | sb.append("END;"); |
196 | 197 | final String plsql = sb.toString(); |
197 | | - return jdbcTemplate.execute(plsql, new CallableStatementCallback<String>() { |
198 | | - @Override |
199 | | - public String doInCallableStatement(final CallableStatement cs) throws SQLException { |
200 | | - cs.setString(1, reporterId); |
201 | | - cs.registerOutParameter(2, OracleTypes.CURSOR); |
202 | | - cs.execute(); |
203 | | - final StringBuilder sb = new StringBuilder(); |
204 | | - final ResultSet rs = (ResultSet) cs.getObject(2); |
205 | | - while (rs.next()) { |
206 | | - final String text = rs.getString("text"); |
207 | | - if (text != null) { |
208 | | - sb.append(text); |
209 | | - sb.append('\n'); |
210 | | - } |
| 198 | + return jdbcTemplate.execute(plsql, (CallableStatementCallback<String>) cs -> { |
| 199 | + cs.setString(1, reporterId); |
| 200 | + cs.registerOutParameter(2, OracleTypes.CURSOR); |
| 201 | + cs.execute(); |
| 202 | + final StringBuilder sb1 = new StringBuilder(); |
| 203 | + final ResultSet rs = (ResultSet) cs.getObject(2); |
| 204 | + while (rs.next()) { |
| 205 | + final String text = rs.getString("text"); |
| 206 | + if (text != null) { |
| 207 | + sb1.append(text); |
| 208 | + sb1.append('\n'); |
211 | 209 | } |
212 | | - rs.close(); |
213 | | - return sb.toString(); |
214 | 210 | } |
| 211 | + rs.close(); |
| 212 | + return sb1.toString(); |
215 | 213 | }); |
216 | 214 | } |
217 | 215 |
|
@@ -246,14 +244,15 @@ private RealtimeReporterEvent convert(final String itemType, final String text) |
246 | 244 | } |
247 | 245 | } |
248 | 246 |
|
| 247 | + @SuppressWarnings("DuplicatedCode") |
249 | 248 | private RealtimeReporterEvent convertToPreRunEvent(final Document doc) { |
250 | 249 | final PreRunEvent event = new PreRunEvent(); |
251 | 250 | final Node totalNumberOfTestsNode = xmlTools.getNode(doc, "/event/totalNumberOfTests"); |
252 | 251 | String totalNumberOfTestsTextContent = null; |
253 | 252 | if (totalNumberOfTestsNode != null) { |
254 | 253 | totalNumberOfTestsTextContent = totalNumberOfTestsNode.getTextContent(); |
255 | 254 | } |
256 | | - event.setTotalNumberOfTests(Integer.valueOf(totalNumberOfTestsTextContent)); |
| 255 | + event.setTotalNumberOfTests(Integer.valueOf(totalNumberOfTestsTextContent != null ? totalNumberOfTestsTextContent : "0")); |
257 | 256 | final NodeList nodes = xmlTools.getNodeList(doc, "/event/items/*"); |
258 | 257 | for (int i = 0; i < nodes.getLength(); i++) { |
259 | 258 | final Node node = nodes.item(i); |
@@ -326,6 +325,7 @@ private RealtimeReporterEvent convertToPostTestEvent(final Document doc) { |
326 | 325 | return event; |
327 | 326 | } |
328 | 327 |
|
| 328 | + @SuppressWarnings("DuplicatedCode") |
329 | 329 | private void populate(final Suite suite, final Node node) { |
330 | 330 | if (node instanceof Element) { |
331 | 331 | suite.setId(xmlTools.getAttributeValue(node, "id")); |
|
0 commit comments