)]}'
{"java/src/main/java/monasca/api/app/AlarmDefinitionService.java":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"59f2d507062b464ea17f6616ec347b9578fc494d","unresolved":false,"context_lines":[{"line_number":103,"context_line":"    // Assert no alarm exists by the name"},{"line_number":104,"context_line":"    String alarmDefID\u003drepo.exists(tenantId, name);"},{"line_number":105,"context_line":"    if (alarmDefID!\u003dnull)"},{"line_number":106,"context_line":"      throw new EntityExistsException("},{"line_number":107,"context_line":"          \"An alarm definition already exists for project / tenant: %s named: %s\", tenantId, name);"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    assertActionsExist(tenantId, alarmActions, okActions, undeterminedActions);"}],"source_content_type":"text/x-java","patch_set":7,"id":"ba7be1f8_9f4dae40","line":106,"updated":"2015-02-26 18:40:20.000000000","message":"Formatting guide says use brackets","commit_id":"14057d34585245779036d1cbfae6a54399252409"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"59f2d507062b464ea17f6616ec347b9578fc494d","unresolved":false,"context_lines":[{"line_number":240,"context_line":"            undeterminedActions);"},{"line_number":241,"context_line":"    name \u003d name \u003d\u003d null ? oldAlarmDefinition.getName() : name;"},{"line_number":242,"context_line":"    String alarmID\u003d repo.exists(tenantId, name);"},{"line_number":243,"context_line":"    if(alarmID!\u003dnull \u0026\u0026 !alarmID.equalsIgnoreCase(alarmDefId)){"},{"line_number":244,"context_line":"      throw new EntityExistsException("},{"line_number":245,"context_line":"          \"An alarm definition with the same name already exists for project / tenant: %s named: %s\", tenantId, name);"},{"line_number":246,"context_line":"    }"}],"source_content_type":"text/x-java","patch_set":7,"id":"ba7be1f8_1fd37e60","line":243,"updated":"2015-02-26 18:40:20.000000000","message":"Please use the correct formatting","commit_id":"14057d34585245779036d1cbfae6a54399252409"}],"java/src/main/java/monasca/api/infrastructure/persistence/mysql/AlarmDefinitionMySqlRepoImpl.java":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"59f2d507062b464ea17f6616ec347b9578fc494d","unresolved":false,"context_lines":[{"line_number":29,"context_line":"import org.skife.jdbi.v2.Handle;"},{"line_number":30,"context_line":"import org.skife.jdbi.v2.Query;"},{"line_number":31,"context_line":"import org.skife.jdbi.v2.tweak.ResultSetMapper;"},{"line_number":32,"context_line":"import org.skife.jdbi.v2.util.StringMapper;"},{"line_number":33,"context_line":"import org.skife.jdbi.v2.StatementContext;"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"import com.google.common.base.Joiner;"}],"source_content_type":"text/x-java","patch_set":7,"id":"ba7be1f8_3f0be2d6","line":32,"updated":"2015-02-26 18:40:20.000000000","message":"Not used?","commit_id":"14057d34585245779036d1cbfae6a54399252409"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"59f2d507062b464ea17f6616ec347b9578fc494d","unresolved":false,"context_lines":[{"line_number":121,"context_line":"          .createQuery("},{"line_number":122,"context_line":"              \"select id from alarm_definition where tenant_id \u003d :tenantId and name \u003d :name and deleted_at is NULL\")"},{"line_number":123,"context_line":"          .bind(\"tenantId\", tenantId).bind(\"name\", name).first();"},{"line_number":124,"context_line":"      if(map.values().size()!\u003d0){"},{"line_number":125,"context_line":"        return map.get(\"id\").toString();"},{"line_number":126,"context_line":"      }"},{"line_number":127,"context_line":"      else{"}],"source_content_type":"text/x-java","patch_set":7,"id":"ba7be1f8_9ffbeebf","line":124,"updated":"2015-02-26 18:40:20.000000000","message":"please format correctly. Check the whole method","commit_id":"14057d34585245779036d1cbfae6a54399252409"}],"java/src/test/java/monasca/api/app/AlarmDefinitionServiceTest.java":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"4dbc054c6d9efdd4a6d7136758ca27813275ed42","unresolved":false,"context_lines":[{"line_number":510,"context_line":"    when(repo.findById(TENANT_ID, secondAlarmDef.getId())).thenReturn(secondAlarmDef);"},{"line_number":511,"context_line":"    when(repo.findById(TENANT_ID, firstAlarmDef.getId())).thenReturn(firstAlarmDef);"},{"line_number":512,"context_line":"    when(repo.exists(TENANT_ID, \"91% CPU\")).thenReturn(true);"},{"line_number":513,"context_line":"    when(notificationMethodRepo.exists(eq(TENANT_ID), anyString())).thenReturn(true);    "},{"line_number":514,"context_line":"    service.patch(TENANT_ID, secondAlarmDef.getId(), \"91% CPU\", \"foo\", \"LOW\", exprStr, null,"},{"line_number":515,"context_line":"        matchBy, true, alarmActions, okActions, undeterminedActions);"},{"line_number":516,"context_line":""}],"source_content_type":"text/x-java","patch_set":6,"id":"ba7be1f8_0e600bce","line":513,"updated":"2015-02-25 03:27:34.000000000","message":"You have trailing whitespace on this line","commit_id":"a46ca496974da81e06d0cbe307282255c5c255cc"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"59f2d507062b464ea17f6616ec347b9578fc494d","unresolved":false,"context_lines":[{"line_number":490,"context_line":"    // Assert new expressions"},{"line_number":491,"context_line":"    assertTrue(expressions.newAlarmSubExpressions.isEmpty());"},{"line_number":492,"context_line":"  }"},{"line_number":493,"context_line":""},{"line_number":494,"context_line":"  @Test(expectedExceptions \u003d EntityExistsException.class)"},{"line_number":495,"context_line":"  public void testPatchSameName() {"},{"line_number":496,"context_line":"    String exprStr \u003d EXPR1 + \" or \" + EXPR2;"}],"source_content_type":"text/x-java","patch_set":7,"id":"ba7be1f8_5a08a427","line":493,"updated":"2015-02-26 18:40:20.000000000","message":"You don\u0027t have any tests for update","commit_id":"14057d34585245779036d1cbfae6a54399252409"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"59f2d507062b464ea17f6616ec347b9578fc494d","unresolved":false,"context_lines":[{"line_number":510,"context_line":"    when(repo.findById(TENANT_ID, firstAlarmDef.getId())).thenReturn(firstAlarmDef);"},{"line_number":511,"context_line":"    when(repo.exists(TENANT_ID, \"91% CPU\")).thenReturn(\"123\");"},{"line_number":512,"context_line":"    when(notificationMethodRepo.exists(eq(TENANT_ID), anyString())).thenReturn(true);"},{"line_number":513,"context_line":"    service.patch(TENANT_ID, secondAlarmDef.getId(), \"91% CPU\", \"foo\", \"LOW\", exprStr, null,"},{"line_number":514,"context_line":"        matchBy, true, alarmActions, okActions, undeterminedActions);"},{"line_number":515,"context_line":""},{"line_number":516,"context_line":"  }"}],"source_content_type":"text/x-java","patch_set":7,"id":"ba7be1f8_9fd3ee02","line":513,"updated":"2015-02-26 18:40:20.000000000","message":"Change \"91% CPU\" to firstAlarmDef.getName() to make it clearer what you are checking","commit_id":"14057d34585245779036d1cbfae6a54399252409"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"59f2d507062b464ea17f6616ec347b9578fc494d","unresolved":false,"context_lines":[{"line_number":531,"context_line":""},{"line_number":532,"context_line":"    when(repo.findById(TENANT_ID, secondAlarmDef.getId())).thenReturn(secondAlarmDef);"},{"line_number":533,"context_line":"    when(repo.findById(TENANT_ID, firstAlarmDef.getId())).thenReturn(firstAlarmDef);"},{"line_number":534,"context_line":"    when(repo.exists(TENANT_ID, \"92% CPU\")).thenReturn(\"234\");"},{"line_number":535,"context_line":""},{"line_number":536,"context_line":"    Map\u003cString, AlarmSubExpression\u003e oldSubExpressions \u003d new HashMap\u003c\u003e();"},{"line_number":537,"context_line":"    oldSubExpressions.put(\"444\", AlarmSubExpression.of(EXPR1));"}],"source_content_type":"text/x-java","patch_set":7,"id":"ba7be1f8_dff00693","line":534,"updated":"2015-02-26 18:40:20.000000000","message":"Use secondAlarmDef properties instead of constants","commit_id":"14057d34585245779036d1cbfae6a54399252409"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"59f2d507062b464ea17f6616ec347b9578fc494d","unresolved":false,"context_lines":[{"line_number":540,"context_line":""},{"line_number":541,"context_line":"    when(notificationMethodRepo.exists(eq(TENANT_ID), anyString())).thenReturn(true);"},{"line_number":542,"context_line":"    service.patch(TENANT_ID, secondAlarmDef.getId(), \"92% CPU\", \"foo\", \"LOW\", exprStr, null,"},{"line_number":543,"context_line":"        matchBy, true, alarmActions, okActions, undeterminedActions);"},{"line_number":544,"context_line":""},{"line_number":545,"context_line":"  }"},{"line_number":546,"context_line":"}"}],"source_content_type":"text/x-java","patch_set":7,"id":"ba7be1f8_9f412eab","line":543,"updated":"2015-02-26 18:40:20.000000000","message":"Add checking that the result of service.patch matches the name you elect","commit_id":"14057d34585245779036d1cbfae6a54399252409"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"2797efc7580834e81e94ba79871f4fe1cc540d41","unresolved":false,"context_lines":[{"line_number":539,"context_line":"    when(repo.findSubExpressions(eq(\"234\"))).thenReturn(oldSubExpressions);"},{"line_number":540,"context_line":""},{"line_number":541,"context_line":"    when(notificationMethodRepo.exists(eq(TENANT_ID), anyString())).thenReturn(true);"},{"line_number":542,"context_line":"    AlarmDefinition alarmPatched\u003dservice.patch(TENANT_ID, secondAlarmDef.getId(), \"92% CPU\", \"foo\", \"LOW\", exprStr, null,"},{"line_number":543,"context_line":"        matchBy, true, alarmActions, okActions, undeterminedActions);"},{"line_number":544,"context_line":"    assertEquals(alarmPatched.getName(), \"92% CPU\");"},{"line_number":545,"context_line":""}],"source_content_type":"text/x-java","patch_set":9,"id":"9a80dd14_9b0c8944","line":542,"updated":"2015-03-05 16:29:48.000000000","message":"Should be spaces around the \u003d","commit_id":"44dad3f4f9dbc3c226a6365c9f2eb5902f8e486d"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"2797efc7580834e81e94ba79871f4fe1cc540d41","unresolved":false,"context_lines":[{"line_number":545,"context_line":""},{"line_number":546,"context_line":"  }"},{"line_number":547,"context_line":""},{"line_number":548,"context_line":"    public void testUpdateExistingAlarmName() {"},{"line_number":549,"context_line":"        String exprStr \u003d EXPR1 + \" or \" + EXPR2;"},{"line_number":550,"context_line":"        List\u003cString\u003e alarmActions \u003d Arrays.asList(\"1\", \"2\", \"3\");"},{"line_number":551,"context_line":"        List\u003cString\u003e okActions \u003d Arrays.asList(\"2\", \"3\");"}],"source_content_type":"text/x-java","patch_set":9,"id":"9a80dd14_fb72e50f","line":548,"updated":"2015-03-05 16:29:48.000000000","message":"This whole method is over indented","commit_id":"44dad3f4f9dbc3c226a6365c9f2eb5902f8e486d"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"2797efc7580834e81e94ba79871f4fe1cc540d41","unresolved":false,"context_lines":[{"line_number":609,"context_line":"    when(repo.exists(TENANT_ID, \"91% CPU\")).thenReturn(\"123\");"},{"line_number":610,"context_line":"    when(notificationMethodRepo.exists(eq(TENANT_ID), anyString())).thenReturn(true);"},{"line_number":611,"context_line":""},{"line_number":612,"context_line":"    AlarmExpression alarmExpression\u003dnew AlarmExpression(exprStr);"},{"line_number":613,"context_line":"    service.update(TENANT_ID, secondAlarmDef.getId(),alarmExpression,updateCommand);"},{"line_number":614,"context_line":""},{"line_number":615,"context_line":"  }"}],"source_content_type":"text/x-java","patch_set":9,"id":"9a80dd14_7b3fd5d6","line":612,"updated":"2015-03-05 16:29:48.000000000","message":"Should be spaces around the \u003d","commit_id":"44dad3f4f9dbc3c226a6365c9f2eb5902f8e486d"}],"java/src/test/java/monasca/api/infrastructure/persistence/mysql/AlarmDefinitionMySqlRepositoryImplTest.java":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"59f2d507062b464ea17f6616ec347b9578fc494d","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"package monasca.api.infrastructure.persistence.mysql;"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import static org.mockito.Mockito.when;"},{"line_number":18,"context_line":"import static org.testng.Assert.assertEquals;"},{"line_number":19,"context_line":"import static org.testng.Assert.assertFalse;"},{"line_number":20,"context_line":"import static org.testng.Assert.assertNull;"}],"source_content_type":"text/x-java","patch_set":7,"id":"ba7be1f8_3f8e822e","line":17,"updated":"2015-02-26 18:40:20.000000000","message":"Used?","commit_id":"14057d34585245779036d1cbfae6a54399252409"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"59f2d507062b464ea17f6616ec347b9578fc494d","unresolved":false,"context_lines":[{"line_number":238,"context_line":"    assertTrue(repo.findSubAlarmMetricDefinitions(\"asdfasdf\").isEmpty());"},{"line_number":239,"context_line":"  }"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"  @Test(expectedExceptions\u003dNullPointerException.class)"},{"line_number":242,"context_line":"  public void testExists() {"},{"line_number":243,"context_line":"    assertTrue(repo.exists(\"bob\", \"90% CPU\").equalsIgnoreCase(\"123\"));"},{"line_number":244,"context_line":""}],"source_content_type":"text/x-java","patch_set":7,"id":"ba7be1f8_ff986a76","line":241,"updated":"2015-02-26 18:40:20.000000000","message":"You should never get a NullPointerException. This shows your code is wrong","commit_id":"14057d34585245779036d1cbfae6a54399252409"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"59f2d507062b464ea17f6616ec347b9578fc494d","unresolved":false,"context_lines":[{"line_number":240,"context_line":""},{"line_number":241,"context_line":"  @Test(expectedExceptions\u003dNullPointerException.class)"},{"line_number":242,"context_line":"  public void testExists() {"},{"line_number":243,"context_line":"    assertTrue(repo.exists(\"bob\", \"90% CPU\").equalsIgnoreCase(\"123\"));"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    // Negative"},{"line_number":246,"context_line":"    assertFalse(repo.exists(\"bob\", \"999% CPU\").equalsIgnoreCase(\"123\"));"}],"source_content_type":"text/x-java","patch_set":7,"id":"ba7be1f8_9f7e8e17","line":243,"updated":"2015-02-26 18:40:20.000000000","message":"Use assertEquals","commit_id":"14057d34585245779036d1cbfae6a54399252409"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"59f2d507062b464ea17f6616ec347b9578fc494d","unresolved":false,"context_lines":[{"line_number":243,"context_line":"    assertTrue(repo.exists(\"bob\", \"90% CPU\").equalsIgnoreCase(\"123\"));"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    // Negative"},{"line_number":246,"context_line":"    assertFalse(repo.exists(\"bob\", \"999% CPU\").equalsIgnoreCase(\"123\"));"},{"line_number":247,"context_line":"  }"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"  public void shouldFind() {"}],"source_content_type":"text/x-java","patch_set":7,"id":"ba7be1f8_1f929e4b","line":246,"updated":"2015-02-26 18:40:20.000000000","message":"Use assertNull","commit_id":"14057d34585245779036d1cbfae6a54399252409"}]}
