]> source.dussan.org Git - sonarqube.git/commitdiff
Fix some quality flaws
authorJulien HENRY <julien.henry@sonarsource.com>
Fri, 12 Jul 2013 07:23:43 +0000 (09:23 +0200)
committerJulien HENRY <julien.henry@sonarsource.com>
Fri, 12 Jul 2013 07:23:43 +0000 (09:23 +0200)
sonar-batch/src/main/java/org/sonar/batch/bootstrap/DryRunDatabase.java
sonar-batch/src/main/java/org/sonar/batch/bootstrap/ServerClient.java
sonar-plugin-api/src/main/java/org/sonar/api/utils/CoberturaReportParserUtils.java

index e8326e916b1a59839fef54e43ff241f0b1b67bf7..20a8d9ef8f2f83947eda7c4a59cebf85faeabac9 100644 (file)
@@ -89,21 +89,25 @@ public class DryRunDatabase implements BatchComponent {
       }
       LOG.debug("Dry Run database size: {}", FileUtils.byteCountToDisplaySize(FileUtils.sizeOf(toFile)));
     } catch (SonarException e) {
-      Throwable rootCause = Throwables.getRootCause(e);
-      if (rootCause instanceof SocketTimeoutException) {
-        // Pico will unwrap the first runtime exception
-        throw new SonarException(new SonarException(String.format("DryRun database read timed out after %s ms. You can try to increase read timeout with property -D"
-          + CoreProperties.DRY_RUN_READ_TIMEOUT,
-            readTimeout), e));
-      }
-      if (projectKey != null && (rootCause instanceof HttpException) && (((HttpException) rootCause).getResponseCode() == 401)) {
-        // Pico will unwrap the first runtime exception
-        throw new SonarException(new SonarException(String.format("You don't have access rights to project [%s]", projectKey), e));
-      }
+      handleException(readTimeout, projectKey, e);
       throw e;
     }
   }
 
+  private void handleException(int readTimeout, String projectKey, SonarException e) {
+    Throwable rootCause = Throwables.getRootCause(e);
+    if (rootCause instanceof SocketTimeoutException) {
+      // Pico will unwrap the first runtime exception
+      throw new SonarException(new SonarException(String.format("DryRun database read timed out after %s ms. You can try to increase read timeout with property -D"
+        + CoreProperties.DRY_RUN_READ_TIMEOUT,
+          readTimeout), e));
+    }
+    if (projectKey != null && (rootCause instanceof HttpException) && (((HttpException) rootCause).getResponseCode() == 401)) {
+      // Pico will unwrap the first runtime exception
+      throw new SonarException(new SonarException(String.format("You don't have access rights to project [%s]", projectKey), e));
+    }
+  }
+
   private void replaceSettings(String databasePath) {
     settings
         .removeProperty("sonar.jdbc.schema")
index 39edd95d0f1a84e59a1962de6c2e559e388fb1dd..a046369d9202f2025197006778945d29fdeb748a 100644 (file)
@@ -82,7 +82,7 @@ public class ServerClient implements BatchComponent {
     return request(pathStartingWithSlash, wrapHttpException, null);
   }
 
-  public String request(String pathStartingWithSlash, boolean wrapHttpException, Integer timeoutMillis) {
+  public String request(String pathStartingWithSlash, boolean wrapHttpException, @Nullable Integer timeoutMillis) {
     InputSupplier<InputStream> inputSupplier = doRequest(pathStartingWithSlash, timeoutMillis);
     try {
       return IOUtils.toString(inputSupplier.getInput(), "UTF-8");
index 4f4205d2bcf96bb6988f9e0673fb1d1185e2cb0a..2a18e96a4750256a71ab31c4b345db758a61dd2c 100644 (file)
@@ -46,7 +46,7 @@ public class CoberturaReportParserUtils {
   private CoberturaReportParserUtils() {
   }
 
-  public static interface FileResolver {
+  public interface FileResolver {
 
     /**
      * Return a SonarQube file resource from a filename present in Cobertura report
@@ -62,12 +62,8 @@ public class CoberturaReportParserUtils {
       StaxParser parser = new StaxParser(new StaxParser.XmlStreamHandler() {
 
         public void stream(SMHierarchicCursor rootCursor) throws XMLStreamException {
-          try {
-            rootCursor.advance();
-            collectPackageMeasures(rootCursor.descendantElementCursor("package"), context, fileResolver);
-          } catch (ParseException e) {
-            throw new XMLStreamException(e);
-          }
+          rootCursor.advance();
+          collectPackageMeasures(rootCursor.descendantElementCursor("package"), context, fileResolver);
         }
       });
       parser.parse(xmlFile);
@@ -76,7 +72,7 @@ public class CoberturaReportParserUtils {
     }
   }
 
-  private static void collectPackageMeasures(SMInputCursor pack, SensorContext context, final FileResolver fileResolver) throws ParseException, XMLStreamException {
+  private static void collectPackageMeasures(SMInputCursor pack, SensorContext context, final FileResolver fileResolver) throws XMLStreamException {
     while (pack.getNext() != null) {
       Map<String, CoverageMeasuresBuilder> builderByFilename = Maps.newHashMap();
       collectFileMeasures(pack.descendantElementCursor("class"), builderByFilename);
@@ -96,7 +92,7 @@ public class CoberturaReportParserUtils {
     return context.getResource(file) != null;
   }
 
-  private static void collectFileMeasures(SMInputCursor clazz, Map<String, CoverageMeasuresBuilder> builderByFilename) throws ParseException, XMLStreamException {
+  private static void collectFileMeasures(SMInputCursor clazz, Map<String, CoverageMeasuresBuilder> builderByFilename) throws XMLStreamException {
     while (clazz.getNext() != null) {
       String fileName = clazz.getAttrValue("filename");
       CoverageMeasuresBuilder builder = builderByFilename.get(fileName);
@@ -108,11 +104,15 @@ public class CoberturaReportParserUtils {
     }
   }
 
-  private static void collectFileData(SMInputCursor clazz, CoverageMeasuresBuilder builder) throws ParseException, XMLStreamException {
+  private static void collectFileData(SMInputCursor clazz, CoverageMeasuresBuilder builder) throws XMLStreamException {
     SMInputCursor line = clazz.childElementCursor("lines").advance().childElementCursor("line");
     while (line.getNext() != null) {
       int lineId = Integer.parseInt(line.getAttrValue("number"));
-      builder.setHits(lineId, (int) parseNumber(line.getAttrValue("hits"), ENGLISH));
+      try {
+        builder.setHits(lineId, (int) parseNumber(line.getAttrValue("hits"), ENGLISH));
+      } catch (ParseException e) {
+        throw new XmlParserException(e);
+      }
 
       String isBranch = line.getAttrValue("branch");
       String text = line.getAttrValue("condition-coverage");