From 4660a1bb6a945cef3a18b354c26c2dcf2f08149c Mon Sep 17 00:00:00 2001 From: Stas Vilchik Date: Tue, 16 Dec 2014 15:53:02 +0100 Subject: [PATCH] SONAR-5884 Use rules search to get manual rules --- .../coffee/issue/manual-issue-view.coffee | 12 +- .../main/js/source-viewer/measures-overlay.js | 1 - .../popups/line-actions-popup.js | 3 +- .../source-viewer-create-manual-issue.js | 54 + .../api-rules-search.json | 27 + .../app.json | 62 + .../create-issue.json | 0 .../issues.json | 200 + .../lines.json | 3868 +++++++++++++++++ .../js/tests/e2e/tests/source-viewer-spec.js | 46 - 10 files changed, 4221 insertions(+), 52 deletions(-) create mode 100644 server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue.js create mode 100644 server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue/api-rules-search.json create mode 100644 server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue/app.json rename server/sonar-web/src/main/js/tests/e2e/tests/{source-viewer-spec => source-viewer-create-manual-issue}/create-issue.json (100%) create mode 100644 server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue/issues.json create mode 100644 server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue/lines.json diff --git a/server/sonar-web/src/main/coffee/issue/manual-issue-view.coffee b/server/sonar-web/src/main/coffee/issue/manual-issue-view.coffee index f1945994a15..9627c48ffaf 100644 --- a/server/sonar-web/src/main/coffee/issue/manual-issue-view.coffee +++ b/server/sonar-web/src/main/coffee/issue/manual-issue-view.coffee @@ -20,12 +20,19 @@ define [ 'click .js-cancel': 'cancel' + initialize: -> + @rules = [] + $.get("#{baseUrl}/api/rules/search?repositories=manual&f=name&ps=999999").done (data) => + @rules = data.rules + @render() + + onRender: -> @delegateEvents() @$('[name=rule]').select2 width: '250px' minimumResultsForSearch: 10 - @$('[name=rule]').select2 'open' + @$('[name=rule]').select2 'open' if @rules.length > 0 if key? @key = key.getScope() key.setScope '' @@ -61,7 +68,6 @@ define [ $.post API_ADD_MANUAL_ISSUE, data .done (r) => r = JSON.parse(r) if typeof r == 'string' - console.log r @addIssue r.issue.key .fail (r) => @hideSpinner() @@ -88,4 +94,4 @@ define [ _.extend super, line: @options.line component: @options.component - rules: _.sortBy @options.rules, 'name' + rules: _.sortBy @rules, 'name' diff --git a/server/sonar-web/src/main/js/source-viewer/measures-overlay.js b/server/sonar-web/src/main/js/source-viewer/measures-overlay.js index 9f1a60e9cb8..d0a163b73a7 100644 --- a/server/sonar-web/src/main/js/source-viewer/measures-overlay.js +++ b/server/sonar-web/src/main/js/source-viewer/measures-overlay.js @@ -151,7 +151,6 @@ define([ metrics: domain[1] }; }); - console.log(metrics); that.model.set({ measures: measures, measuresToDisplay: metrics diff --git a/server/sonar-web/src/main/js/source-viewer/popups/line-actions-popup.js b/server/sonar-web/src/main/js/source-viewer/popups/line-actions-popup.js index 1a202329ae3..d16243e7eef 100644 --- a/server/sonar-web/src/main/js/source-viewer/popups/line-actions-popup.js +++ b/server/sonar-web/src/main/js/source-viewer/popups/line-actions-popup.js @@ -28,8 +28,7 @@ define([ component = this.model.key(), manualIssueView = new ManualIssueView({ line: line, - component: component, - rules: this.model.get('manual_rules') + component: component }); manualIssueView.render().$el.appendTo(this.options.row.find('.source-line-code')); manualIssueView.on('add', function (issue) { diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue.js b/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue.js new file mode 100644 index 00000000000..050469da6b3 --- /dev/null +++ b/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue.js @@ -0,0 +1,54 @@ +/* global casper:false */ + +var lib = require('../lib'), + testName = lib.testName('Source Viewer'); + +lib.initMessages(); +lib.changeWorkingDirectory('source-viewer-create-manual-issue'); + + +casper.test.begin(testName('source-viewer-create-manual-issue'), function (test) { + casper + .start(lib.buildUrl('source-viewer'), function () { + lib.setDefaultViewport(); + + lib.mockRequest('/api/l10n/index', '{}'); + lib.mockRequestFromFile('/api/components/app', 'app.json'); + lib.mockRequestFromFile('/api/sources/lines', 'lines.json'); + lib.mockRequestFromFile('/api/issues/search', 'issues.json'); + lib.mockRequestFromFile('/api/issues/create', 'create-issue.json'); + lib.mockRequestFromFile('/api/issues/show', 'create-issue.json'); + lib.mockRequestFromFile('/api/rules/search*', 'api-rules-search.json'); + }) + + .then(function () { + casper.waitForSelector('.source-line-number[data-line-number="3"]'); + }) + + .then(function () { + casper.click('.source-line-number[data-line-number="3"]'); + casper.waitForSelector('.js-add-manual-issue'); + }) + + .then(function () { + casper.click('.js-add-manual-issue'); + casper.waitForSelector('.js-manual-issue-form'); + }) + + .then(function () { + casper.fill('.js-manual-issue-form', { + rule: 'manual:api', + message: 'An issue message' + }, true); + }) + + .then(function () { + casper.waitForSelector('.source-line-code.has-issues[data-line-number="3"]', function () { + test.assertExists('.source-line-code.has-issues[data-line-number="3"]'); + }); + }) + + .run(function () { + test.done(); + }); +}); diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue/api-rules-search.json b/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue/api-rules-search.json new file mode 100644 index 00000000000..9a176d3e06a --- /dev/null +++ b/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue/api-rules-search.json @@ -0,0 +1,27 @@ +{ + "total": 5, + "p": 1, + "ps": 999999, + "rules": [ + { + "key": "manual:api", + "name": "API" + }, + { + "key": "manual:design", + "name": "Design" + }, + { + "key": "manual:error_handling", + "name": "Error handling" + }, + { + "key": "manual:performance", + "name": "Performance" + }, + { + "key": "manual:sql_pitfalls", + "name": "SQL Pitfall" + } + ] +} diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue/app.json b/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue/app.json new file mode 100644 index 00000000000..393598f3034 --- /dev/null +++ b/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue/app.json @@ -0,0 +1,62 @@ +{"key": "org.codehaus.sonar:sonar-batch:src/main/java/org/sonar/batch/index/Cache.java", + "path": "src/main/java/org/sonar/batch/index/Cache.java", + "name": "Cache.java", + "longName": "src/main/java/org/sonar/batch/index/Cache.java", + "q": "FIL", "subProject": "org.codehaus.sonar:sonar-batch", + "subProjectName": "SonarQube :: Batch", + "project": "org.codehaus.sonar:sonar", + "projectName": "SonarQube", + "fav": false, + "canMarkAsFavourite": true, + "canBulkChange": true, + "canCreateManualIssue": true, + "periods": [ + [1, "since previous analysis (2014 Dec 01)", "2014-12-01T18:51:13+0100"], + [2, "over 365 days (2013 Dec 01)", "2013-12-01T00:40:31+0100"], + [3, "since previous version (4.5 - 2014 Sep 03)", "2014-09-03T23:16:52+0200"] + ], + "severities": [ + ["MINOR", "Minor", 1], + ["MAJOR", "Major", 1], + ["INFO", "Info", 4] + ], + "rules": [ + ["common-java:DuplicatedBlocks", "Duplicated blocks", 1], + ["squid:S1192", "String literals should not be duplicated", 1], + ["squid:S1135", "TODO tags should be handled", 4] + ], + "measures": { + "fNcloc": "378", + "fCoverage": "74.3%", + "fDuplicationDensity": "5.8%", + "fDebt": "2h 10min", + "fSqaleRating": "A", + "fSqaleDebtRatio": "1.1%", + "fIssues": "6", + "fMinorIssues": "1", + "fMajorIssues": "1", + "fInfoIssues": "4" + }, + "tabs": ["scm", "coverage", "duplications"], + "manual_rules": [ + { + "key": "manual:api", + "name": "API" + }, + { + "key": "manual:design", + "name": "Design" + }, + { + "key": "manual:error_handling", + "name": "Error handling" + }, + { + "key": "manual:performance", + "name": "Performance" + }, + { + "key": "manual:sql_pitfalls", + "name": "SQL Pitfall" + } + ]} diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/create-issue.json b/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue/create-issue.json similarity index 100% rename from server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/create-issue.json rename to server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue/create-issue.json diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue/issues.json b/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue/issues.json new file mode 100644 index 00000000000..0b1601191ef --- /dev/null +++ b/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue/issues.json @@ -0,0 +1,200 @@ +{"total": 6, "p": 1, "ps": 100, "projects": [ + { + "uuid": "69e57151-be0d-4157-adff-c06741d88879", + "key": "org.codehaus.sonar:sonar", + "id": 2865, + "qualifier": "TRK", + "name": "SonarQube", + "longName": "SonarQube" + } +], "components": [ + { + "uuid": "83379565-7af3-4047-8d1a-ed42b10309b0", + "key": "org.codehaus.sonar:sonar-batch", + "id": 1624, + "enabled": true, + "qualifier": "BRC", + "name": "SonarQube :: Batch", + "longName": "SonarQube :: Batch", + "path": "sonar-batch", + "projectId": 2865, + "subProjectId": 2865 + }, + { + "uuid": "69e57151-be0d-4157-adff-c06741d88879", + "key": "org.codehaus.sonar:sonar", + "id": 2865, + "enabled": true, + "qualifier": "TRK", + "name": "SonarQube", + "longName": "SonarQube" + }, + { + "uuid": "b9615992-2458-4d54-a22f-b91ee7ba5bc5", + "key": "org.codehaus.sonar:sonar-batch:src/main/java/org/sonar/batch/index/Cache.java", + "id": 19983, + "enabled": true, + "qualifier": "FIL", + "name": "Cache.java", + "longName": "src/main/java/org/sonar/batch/index/Cache.java", + "path": "src/main/java/org/sonar/batch/index/Cache.java", + "projectId": 2865, + "subProjectId": 1624 + } +], "issues": [ + { + "key": "20002ec7-b647-44da-bdf5-4d9fbf4b7c58", + "component": "org.codehaus.sonar:sonar-batch:src/main/java/org/sonar/batch/index/Cache.java", + "componentId": 19983, + "project": "org.codehaus.sonar:sonar", + "subProject": "org.codehaus.sonar:sonar-batch", + "rule": "common-java:DuplicatedBlocks", + "status": "CONFIRMED", + "severity": "MAJOR", + "message": "2 duplicated blocks of code.", + "debt": "2h", + "creationDate": "2014-05-01T23:38:31+0200", + "updateDate": "2014-07-01T17:48:47+0200", + "fUpdateAge": "5 months", + "actions": ["comment", "assign", "assign_to_me", "plan", "set_severity"], + "transitions": ["unconfirm", "resolve", "falsepositive"] + }, + { + "key": "71a26f48-a90d-4a76-a745-4f6e6e8b1773", + "component": "org.codehaus.sonar:sonar-batch:src/main/java/org/sonar/batch/index/Cache.java", + "componentId": 19983, + "project": "org.codehaus.sonar:sonar", + "subProject": "org.codehaus.sonar:sonar-batch", + "rule": "squid:S1135", + "status": "CONFIRMED", + "severity": "INFO", + "message": "Complete the task associated to this TODO comment.", + "line": 125, + "author": "simon.brandhof@gmail.com", + "creationDate": "2013-10-10T23:51:33+0200", + "updateDate": "2014-07-29T23:15:18+0200", + "fUpdateAge": "4 months", + "actions": ["comment", "assign", "assign_to_me", "plan", "set_severity"], + "transitions": ["unconfirm", "resolve", "falsepositive"] + }, + { + "key": "75419c88-0e3c-4311-aa47-fe5731e67558", + "component": "org.codehaus.sonar:sonar-batch:src/main/java/org/sonar/batch/index/Cache.java", + "componentId": 19983, + "project": "org.codehaus.sonar:sonar", + "subProject": "org.codehaus.sonar:sonar-batch", + "rule": "squid:S1135", + "status": "CONFIRMED", + "severity": "INFO", + "message": "Complete the task associated to this TODO comment.", + "line": 155, + "author": "simon.brandhof@gmail.com", + "creationDate": "2013-10-10T23:51:33+0200", + "updateDate": "2014-07-29T23:15:18+0200", + "fUpdateAge": "4 months", + "actions": ["comment", "assign", "assign_to_me", "plan", "set_severity"], + "transitions": ["unconfirm", "resolve", "falsepositive"] + }, + { + "key": "01461208-6c1e-4cdf-9f27-b7afa78e76ec", + "component": "org.codehaus.sonar:sonar-batch:src/main/java/org/sonar/batch/index/Cache.java", + "componentId": 19983, + "project": "org.codehaus.sonar:sonar", + "subProject": "org.codehaus.sonar:sonar-batch", + "rule": "squid:S1135", + "status": "CONFIRMED", + "severity": "INFO", + "message": "Complete the task associated to this TODO comment.", + "line": 184, + "author": "simon.brandhof@gmail.com", + "creationDate": "2013-10-10T23:51:33+0200", + "updateDate": "2014-07-29T23:15:18+0200", + "fUpdateAge": "4 months", + "actions": ["comment", "assign", "assign_to_me", "plan", "set_severity"], + "transitions": ["unconfirm", "resolve", "falsepositive"] + }, + { + "key": "e4de6481-7bfb-460a-8b3c-24459f9561d3", + "component": "org.codehaus.sonar:sonar-batch:src/main/java/org/sonar/batch/index/Cache.java", + "componentId": 19983, + "project": "org.codehaus.sonar:sonar", + "subProject": "org.codehaus.sonar:sonar-batch", + "rule": "squid:S1135", + "status": "CONFIRMED", + "severity": "INFO", + "message": "Complete the task associated to this TODO comment.", + "line": 239, + "author": "Simon Brandhof", + "creationDate": "2013-08-09T16:04:33+0200", + "updateDate": "2014-07-29T23:15:18+0200", + "fUpdateAge": "4 months", + "actions": ["comment", "assign", "assign_to_me", "plan", "set_severity"], + "transitions": ["unconfirm", "resolve", "falsepositive"] + }, + { + "key": "59fc17f7-c977-4cb6-8f04-fbe88e4b9186", + "component": "org.codehaus.sonar:sonar-batch:src/main/java/org/sonar/batch/index/Cache.java", + "componentId": 19983, + "project": "org.codehaus.sonar:sonar", + "subProject": "org.codehaus.sonar:sonar-batch", + "rule": "squid:S1192", + "status": "CONFIRMED", + "severity": "MINOR", + "message": "Define a constant instead of duplicating this literal \"Fail to get keys from cache \" 3 times.", + "line": 257, + "debt": "10min", + "author": "simon.brandhof@gmail.com", + "creationDate": "2014-02-20T07:48:16+0100", + "updateDate": "2014-02-24T16:57:34+0100", + "fUpdateAge": "9 months", + "actions": ["comment", "assign", "assign_to_me", "plan", "set_severity"], + "transitions": ["unconfirm", "resolve", "falsepositive"] + } +], "rules": [ + { + "key": "common-java:DuplicatedBlocks", + "name": "Duplicated blocks", + "lang": "java", + "desc": "

An issue is created on a file as soon as there is a block of duplicated code on this file. It gives the number of blocks in the file.

", + "status": "READY", + "langName": "Java" + }, + { + "key": "squid:S1192", + "name": "String literals should not be duplicated", + "lang": "java", + "desc": "

\n Duplicated string literals make the process of refactoring error-prone, since you must be sure to update all occurrences.\n On the other hand, constants can be referenced from many places, but only need to be updated in a single place.\n

\n\n

Non Compliant Code Example

\n\n
\npublic void run() {\n  prepare(\"action1\");                              // Non-Compliant - \"action1\" is duplicated 3 times\n  execute(\"action1\");\n  release(\"action1\");\n}\n\n@SuppressWarning(\"all\")                            // Compliant - annotations are excluded\nprivate void method1() { /* ... */ }\n@SuppressWarning(\"all\")\nprivate void method2() { /* ... */ }\n\npublic String method3(String a) {\n  System.out.println(\"'\" + a + \"'\");               // Compliant - literal \"'\" has less than 5 characters and is excluded\n  return \"\";                                       // Compliant - literal \"\" has less than 5 characters and is excluded\n}\n
\n\n

Compliant Code Example

\n\n
\nprivate static final String ACTION_1 = \"action1\";  // Compliant\n\npublic void run() {\n  prepare(ACTION_1);                               // Compliant\n  execute(ACTION_1);\n  release(ACTION_1);\n}\n
\n\n

Exceptions

\n

To prevent generating some false-positives, literals having less than 5 characters are excluded.

", + "status": "READY", + "langName": "Java" + }, + { + "key": "squid:S1135", + "name": "TODO tags should be handled", + "lang": "java", + "desc": "

\nTODO tags are commonly used to mark places where some more code is required, but which the developer wants to implement later.\nSometimes the developer will not have the time or will simply forget to get back to that tag.\nThis rule is meant to track those tags, and ensure that they do not go unnoticed.\n

\n\n

The following code illustrates this rule:

\n\n
\nvoid doSomething() {\n  // TODO\n}\n
", + "status": "READY", + "langName": "Java" + } +], "users": [ + { + "login": "admin", + "name": "Admin Admin", + "active": true, + "email": "admin@sonarsource.com" + } +], "languages": [ + { + "key": "js", + "name": "JavaScript" + }, + { + "key": "java", + "name": "Java" + } +], "maxResultsReached": false, "paging": { + "pageIndex": 1, + "pageSize": 100, + "total": 6, + "fTotal": "6", + "pages": 1 +}} diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue/lines.json b/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue/lines.json new file mode 100644 index 00000000000..e33d02b2465 --- /dev/null +++ b/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue/lines.json @@ -0,0 +1,3868 @@ +{"sources": [ + { + "line": 1, + "code": "/*", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 2, + "code": " * SonarQube, open source software quality management tool.", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b1436788cfc71b23cc3e3c15400a6c630c914bec", + "scmDate": "2013-04-21T11:58:14+0200" + }, + { + "line": 3, + "code": " * Copyright (C) 2008-2014 SonarSource", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "57ae3026c36ae3b0b71756d6161124b1ae594c53", + "scmDate": "2014-03-11T17:52:41+0100" + }, + { + "line": 4, + "code": " * mailto:contact AT sonarsource DOT com", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 5, + "code": " *", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 6, + "code": " * SonarQube is free software; you can redistribute it and/or", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b1436788cfc71b23cc3e3c15400a6c630c914bec", + "scmDate": "2013-04-21T11:58:14+0200" + }, + { + "line": 7, + "code": " * modify it under the terms of the GNU Lesser General Public", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 8, + "code": " * License as published by the Free Software Foundation; either", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 9, + "code": " * version 3 of the License, or (at your option) any later version.", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 10, + "code": " *", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 11, + "code": " * SonarQube is distributed in the hope that it will be useful,", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b1436788cfc71b23cc3e3c15400a6c630c914bec", + "scmDate": "2013-04-21T11:58:14+0200" + }, + { + "line": 12, + "code": " * but WITHOUT ANY WARRANTY; without even the implied warranty of", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 13, + "code": " * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 14, + "code": " * Lesser General Public License for more details.", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 15, + "code": " *", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 16, + "code": " * You should have received a copy of the GNU Lesser General Public License", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "ce63bd4c293fe7a1fa066d73860bbaf4e1f5a608", + "scmDate": "2013-04-22T09:37:03+0200" + }, + { + "line": 17, + "code": " * along with this program; if not, write to the Free Software Foundation,", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "ce63bd4c293fe7a1fa066d73860bbaf4e1f5a608", + "scmDate": "2013-04-22T09:37:03+0200" + }, + { + "line": 18, + "code": " * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "ce63bd4c293fe7a1fa066d73860bbaf4e1f5a608", + "scmDate": "2013-04-22T09:37:03+0200" + }, + { + "line": 19, + "code": " */", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 20, + "code": "package org.sonar.batch.index;", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 21, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 22, + "code": "import com.google.common.collect.Sets;", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 23, + "code": "import com.persistit.Exchange;", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 24, + "code": "import com.persistit.Key;", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 25, + "code": "import com.persistit.KeyFilter;", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200" + }, + { + "line": 26, + "code": "import com.persistit.exception.PersistitException;", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 27, + "code": "import org.apache.commons.lang.builder.ToStringBuilder;", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 28, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 29, + "code": "import javax.annotation.CheckForNull;", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 30, + "code": "", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "171cd79c0b5152461434951ed5d6e5e58849a7b7", + "scmDate": "2014-04-23T14:41:32+0200" + }, + { + "line": 31, + "code": "import java.util.Iterator;", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 32, + "code": "import java.util.NoSuchElementException;", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200" + }, + { + "line": 33, + "code": "import java.util.Set;", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 34, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 35, + "code": "/**", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 36, + "code": " * <p>", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 37, + "code": " * This cache is not thread-safe, due to direct usage of {@link com.persistit.Exchange}", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 38, + "code": " * </p>", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 39, + "code": " */", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 40, + "code": "public class Cache<V> {", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "6074164392edd3db2dfdfd21d05cd56c19e2b0e6", + "scmDate": "2014-07-25T16:31:45+0200" + }, + { + "line": 41, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 42, + "code": " private final String name;", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 43, + "code": " private final Exchange exchange;", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 44, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 45, + "code": " Cache(String name, Exchange exchange) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200", + "lineHits": 1 + }, + { + "line": 46, + "code": " this.name = name;", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200", + "lineHits": 1 + }, + { + "line": 47, + "code": " this.exchange = exchange;", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200", + "lineHits": 1 + }, + { + "line": 48, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200", + "lineHits": 1 + }, + { + "line": 49, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 50, + "code": " public Cache<V> put(Object key, V value) {", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200" + }, + { + "line": 51, + "code": " resetKey(key);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 52, + "code": " return doPut(value);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 53, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 54, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 55, + "code": " public Cache<V> put(Object firstKey, Object secondKey, V value) {", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200" + }, + { + "line": 56, + "code": " resetKey(firstKey, secondKey);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 57, + "code": " return doPut(value);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 58, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 59, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 60, + "code": " public Cache<V> put(Object firstKey, Object secondKey, Object thirdKey, V value) {", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200" + }, + { + "line": 61, + "code": " resetKey(firstKey, secondKey, thirdKey);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 62, + "code": " return doPut(value);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 63, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 64, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 65, + "code": " public Cache<V> put(Object[] key, V value) {", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200" + }, + { + "line": 66, + "code": " resetKey(key);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 0 + }, + { + "line": 67, + "code": " return doPut(value);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 0 + }, + { + "line": 68, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 69, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 70, + "code": " private Cache<V> doPut(V value) {", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200" + }, + { + "line": 71, + "code": " try {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 72, + "code": " exchange.getValue().put(value);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200", + "lineHits": 1 + }, + { + "line": 73, + "code": " exchange.store();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200", + "lineHits": 1 + }, + { + "line": 74, + "code": " return this;", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200", + "lineHits": 1 + }, + { + "line": 75, + "code": " } catch (Exception e) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200", + "lineHits": 1 + }, + { + "line": 76, + "code": " throw new IllegalStateException(\"Fail to put element in the cache \" + name, e);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200", + "lineHits": 1 + }, + { + "line": 77, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 78, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 79, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 80, + "code": " /**", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 81, + "code": " * Returns the value object associated with keys, or null if not found.", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 82, + "code": " */", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 83, + "code": " public V get(Object key) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 84, + "code": " resetKey(key);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 85, + "code": " return doGet();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 86, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 87, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 88, + "code": " /**", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 89, + "code": " * Returns the value object associated with keys, or null if not found.", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 90, + "code": " */", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 91, + "code": " @CheckForNull", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 92, + "code": " public V get(Object firstKey, Object secondKey) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 93, + "code": " resetKey(firstKey, secondKey);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 94, + "code": " return doGet();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 95, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 96, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 97, + "code": " /**", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 98, + "code": " * Returns the value object associated with keys, or null if not found.", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 99, + "code": " */", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 100, + "code": " @CheckForNull", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 101, + "code": " public V get(Object firstKey, Object secondKey, Object thirdKey) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 102, + "code": " resetKey(firstKey, secondKey, thirdKey);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 103, + "code": " return doGet();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 104, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 105, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 106, + "code": " /**", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 107, + "code": " * Returns the value object associated with keys, or null if not found.", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 108, + "code": " */", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 109, + "code": " @CheckForNull", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 110, + "code": " public V get(Object[] key) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 111, + "code": " resetKey(key);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 0 + }, + { + "line": 112, + "code": " return doGet();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 0 + }, + { + "line": 113, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 114, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 115, + "code": " @SuppressWarnings(\"unchecked\")", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200" + }, + { + "line": 116, + "code": " @CheckForNull", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 117, + "code": " private V doGet() {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 118, + "code": " try {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 119, + "code": " exchange.fetch();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200", + "lineHits": 1 + }, + { + "line": 120, + "code": " if (!exchange.getValue().isDefined()) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200", + "lineHits": 1, + "conditions": 2, + "coveredConditions": 2 + }, + { + "line": 121, + "code": " return null;", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200", + "lineHits": 1 + }, + { + "line": 122, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 123, + "code": " return (V) exchange.getValue().get();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200", + "lineHits": 1 + }, + { + "line": 124, + "code": " } catch (Exception e) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200", + "lineHits": 0 + }, + { + "line": 125, + "code": " // TODO add parameters to message", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e108f5de333cf36aff978aa03940590f9caca9fc", + "scmDate": "2013-10-10T12:18:02+0200" + }, + { + "line": 126, + "code": " throw new IllegalStateException(\"Fail to get element from cache \" + name, e);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200", + "lineHits": 0 + }, + { + "line": 127, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 128, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 129, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 130, + "code": " public boolean containsKey(Object key) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 131, + "code": " resetKey(key);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 132, + "code": " return doContainsKey();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 133, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 134, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 135, + "code": " public boolean containsKey(Object firstKey, Object secondKey) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 136, + "code": " resetKey(firstKey, secondKey);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 137, + "code": " return doContainsKey();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 138, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 139, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 140, + "code": " public boolean containsKey(Object firstKey, Object secondKey, Object thirdKey) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 141, + "code": " resetKey(firstKey, secondKey, thirdKey);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 142, + "code": " return doContainsKey();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 143, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 144, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 145, + "code": " public boolean containsKey(Object[] key) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 146, + "code": " resetKey(key);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 0 + }, + { + "line": 147, + "code": " return doContainsKey();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 0 + }, + { + "line": 148, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 149, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 150, + "code": " private boolean doContainsKey() {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 151, + "code": " try {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e108f5de333cf36aff978aa03940590f9caca9fc", + "scmDate": "2013-10-10T12:18:02+0200" + }, + { + "line": 152, + "code": " exchange.fetch();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e108f5de333cf36aff978aa03940590f9caca9fc", + "scmDate": "2013-10-10T12:18:02+0200", + "lineHits": 1 + }, + { + "line": 153, + "code": " return exchange.isValueDefined();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e108f5de333cf36aff978aa03940590f9caca9fc", + "scmDate": "2013-10-10T12:18:02+0200", + "lineHits": 1 + }, + { + "line": 154, + "code": " } catch (Exception e) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e108f5de333cf36aff978aa03940590f9caca9fc", + "scmDate": "2013-10-10T12:18:02+0200", + "lineHits": 0 + }, + { + "line": 155, + "code": " // TODO add parameters to message", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e108f5de333cf36aff978aa03940590f9caca9fc", + "scmDate": "2013-10-10T12:18:02+0200" + }, + { + "line": 156, + "code": " throw new IllegalStateException(\"Fail to check if element is in cache \" + name, e);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e108f5de333cf36aff978aa03940590f9caca9fc", + "scmDate": "2013-10-10T12:18:02+0200", + "lineHits": 0 + }, + { + "line": 157, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e108f5de333cf36aff978aa03940590f9caca9fc", + "scmDate": "2013-10-10T12:18:02+0200" + }, + { + "line": 158, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e108f5de333cf36aff978aa03940590f9caca9fc", + "scmDate": "2013-10-10T12:18:02+0200" + }, + { + "line": 159, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e108f5de333cf36aff978aa03940590f9caca9fc", + "scmDate": "2013-10-10T12:18:02+0200" + }, + { + "line": 160, + "code": " public boolean remove(Object key) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 161, + "code": " resetKey(key);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 162, + "code": " return doRemove();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 163, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 164, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 165, + "code": " public boolean remove(Object firstKey, Object secondKey) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 166, + "code": " resetKey(firstKey, secondKey);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 167, + "code": " return doRemove();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 168, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 169, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 170, + "code": " public boolean remove(Object firstKey, Object secondKey, Object thirdKey) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 171, + "code": " resetKey(firstKey, secondKey, thirdKey);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 172, + "code": " return doRemove();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 173, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 174, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 175, + "code": " public boolean remove(Object[] key) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 176, + "code": " resetKey(key);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 0 + }, + { + "line": 177, + "code": " return doRemove();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 0 + }, + { + "line": 178, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 179, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 180, + "code": " private boolean doRemove() {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 181, + "code": " try {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 182, + "code": " return exchange.remove();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "6f1161efb92298ace498df544e38f6f97216ec36", + "scmDate": "2013-04-26T15:19:16+0200", + "lineHits": 1 + }, + { + "line": 183, + "code": " } catch (Exception e) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200", + "lineHits": 0 + }, + { + "line": 184, + "code": " // TODO add parameters to message", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e108f5de333cf36aff978aa03940590f9caca9fc", + "scmDate": "2013-10-10T12:18:02+0200" + }, + { + "line": 185, + "code": " throw new IllegalStateException(\"Fail to get element from cache \" + name, e);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200", + "lineHits": 0 + }, + { + "line": 186, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 187, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 188, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 189, + "code": " /**", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 190, + "code": " * Removes everything in the specified group.", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 191, + "code": " *", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 192, + "code": " * @param group The group name.", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 193, + "code": " */", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 194, + "code": " public Cache<V> clear(Object key) {", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200" + }, + { + "line": 195, + "code": " resetKey(key);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 196, + "code": " return doClear();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 197, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 198, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 199, + "code": " public Cache<V> clear(Object firstKey, Object secondKey) {", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200" + }, + { + "line": 200, + "code": " resetKey(firstKey, secondKey);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 201, + "code": " return doClear();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 202, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 203, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 204, + "code": " public Cache<V> clear(Object firstKey, Object secondKey, Object thirdKey) {", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200" + }, + { + "line": 205, + "code": " resetKey(firstKey, secondKey, thirdKey);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 206, + "code": " return doClear();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 207, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 208, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 209, + "code": " public Cache<V> clear(Object[] key) {", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200" + }, + { + "line": 210, + "code": " resetKey(key);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 0 + }, + { + "line": 211, + "code": " return doClear();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 0 + }, + { + "line": 212, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 213, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 214, + "code": " private Cache<V> doClear() {", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200" + }, + { + "line": 215, + "code": " try {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 216, + "code": " Key to = new Key(exchange.getKey());", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 217, + "code": " to.append(Key.AFTER);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 218, + "code": " exchange.removeKeyRange(exchange.getKey(), to);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 219, + "code": " return this;", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200", + "lineHits": 1 + }, + { + "line": 220, + "code": " } catch (Exception e) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200", + "lineHits": 0 + }, + { + "line": 221, + "code": " throw new IllegalStateException(\"Fail to clear values from cache \" + name, e);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 0 + }, + { + "line": 222, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 223, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 224, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 225, + "code": " /**", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 226, + "code": " * Clears the default as well as all group caches.", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 227, + "code": " */", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 228, + "code": " public void clear() {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 229, + "code": " try {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 230, + "code": " exchange.clear();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200", + "lineHits": 1 + }, + { + "line": 231, + "code": " exchange.removeAll();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200", + "lineHits": 1 + }, + { + "line": 232, + "code": " } catch (Exception e) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200", + "lineHits": 0 + }, + { + "line": 233, + "code": " throw new IllegalStateException(\"Fail to clear cache\", e);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200", + "lineHits": 0 + }, + { + "line": 234, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200", + "lineHits": 1 + }, + { + "line": 235, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200", + "lineHits": 1 + }, + { + "line": 236, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 237, + "code": " /**", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 238, + "code": " * Returns the set of cache keys associated with this group.", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 239, + "code": " * TODO implement a lazy-loading equivalent with Iterator/Iterable", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 240, + "code": " *", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 241, + "code": " * @param group The group.", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 242, + "code": " * @return The set of cache keys for this group.", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 243, + "code": " */", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 244, + "code": " @SuppressWarnings(\"rawtypes\")", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200" + }, + { + "line": 245, + "code": " public Set keySet(Object key) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 246, + "code": " try {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 247, + "code": " Set<Object> keys = Sets.newLinkedHashSet();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 248, + "code": " exchange.clear();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200", + "lineHits": 1 + }, + { + "line": 249, + "code": " Exchange iteratorExchange = new Exchange(exchange);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200", + "lineHits": 1 + }, + { + "line": 250, + "code": " iteratorExchange.append(key);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 251, + "code": " iteratorExchange.append(Key.BEFORE);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200", + "lineHits": 1 + }, + { + "line": 252, + "code": " while (iteratorExchange.next(false)) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200", + "lineHits": 1, + "conditions": 2, + "coveredConditions": 2 + }, + { + "line": 253, + "code": " keys.add(iteratorExchange.getKey().indexTo(-1).decode());", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 254, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 255, + "code": " return keys;", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200", + "lineHits": 1 + }, + { + "line": 256, + "code": " } catch (Exception e) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200", + "lineHits": 0 + }, + { + "line": 257, + "code": " throw new IllegalStateException(\"Fail to get keys from cache \" + name, e);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200", + "lineHits": 0 + }, + { + "line": 258, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 259, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 260, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 261, + "code": " @SuppressWarnings(\"rawtypes\")", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200" + }, + { + "line": 262, + "code": " public Set keySet(Object firstKey, Object secondKey) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 263, + "code": " try {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 264, + "code": " Set<Object> keys = Sets.newLinkedHashSet();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 265, + "code": " exchange.clear();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 266, + "code": " Exchange iteratorExchange = new Exchange(exchange);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 267, + "code": " iteratorExchange.append(firstKey);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 268, + "code": " iteratorExchange.append(secondKey);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 269, + "code": " iteratorExchange.append(Key.BEFORE);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 270, + "code": " while (iteratorExchange.next(false)) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1, + "conditions": 2, + "coveredConditions": 2 + }, + { + "line": 271, + "code": " keys.add(iteratorExchange.getKey().indexTo(-1).decode());", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 272, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 273, + "code": " return keys;", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 274, + "code": " } catch (Exception e) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 0 + }, + { + "line": 275, + "code": " throw new IllegalStateException(\"Fail to get keys from cache \" + name, e);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 0 + }, + { + "line": 276, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 277, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 278, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 279, + "code": " /**", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 280, + "code": " * Returns the set of keys associated with this cache.", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 281, + "code": " *", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 282, + "code": " * @return The set containing the keys for this cache.", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 283, + "code": " */", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 284, + "code": " public Set<Object> keySet() {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 285, + "code": " try {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 286, + "code": " Set<Object> keys = Sets.newLinkedHashSet();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 287, + "code": " exchange.clear();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 288, + "code": " Exchange iteratorExchange = new Exchange(exchange);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 289, + "code": " iteratorExchange.append(Key.BEFORE);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 290, + "code": " while (iteratorExchange.next(false)) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1, + "conditions": 2, + "coveredConditions": 2 + }, + { + "line": 291, + "code": " keys.add(iteratorExchange.getKey().indexTo(-1).decode());", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 292, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 293, + "code": " return keys;", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 294, + "code": " } catch (Exception e) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 0 + }, + { + "line": 295, + "code": " throw new IllegalStateException(\"Fail to get keys from cache \" + name, e);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 0 + }, + { + "line": 296, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 297, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 298, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 299, + "code": " /**", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200" + }, + { + "line": 300, + "code": " * Lazy-loading values for given keys", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "171cd79c0b5152461434951ed5d6e5e58849a7b7", + "scmDate": "2014-04-23T14:41:32+0200" + }, + { + "line": 301, + "code": " */", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "171cd79c0b5152461434951ed5d6e5e58849a7b7", + "scmDate": "2014-04-23T14:41:32+0200" + }, + { + "line": 302, + "code": " public Iterable<V> values(Object firstKey, Object secondKey) {", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "171cd79c0b5152461434951ed5d6e5e58849a7b7", + "scmDate": "2014-04-23T14:41:32+0200" + }, + { + "line": 303, + "code": " try {", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "171cd79c0b5152461434951ed5d6e5e58849a7b7", + "scmDate": "2014-04-23T14:41:32+0200" + }, + { + "line": 304, + "code": " exchange.clear();", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "171cd79c0b5152461434951ed5d6e5e58849a7b7", + "scmDate": "2014-04-23T14:41:32+0200", + "lineHits": 1 + }, + { + "line": 305, + "code": " exchange.append(firstKey).append(secondKey).append(Key.BEFORE);", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "171cd79c0b5152461434951ed5d6e5e58849a7b7", + "scmDate": "2014-04-23T14:41:32+0200", + "lineHits": 1 + }, + { + "line": 306, + "code": " Exchange iteratorExchange = new Exchange(exchange);", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "171cd79c0b5152461434951ed5d6e5e58849a7b7", + "scmDate": "2014-04-23T14:41:32+0200", + "lineHits": 1 + }, + { + "line": 307, + "code": " KeyFilter filter = new KeyFilter().append(KeyFilter.simpleTerm(firstKey)).append(KeyFilter.simpleTerm(secondKey));", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200", + "lineHits": 1 + }, + { + "line": 308, + "code": " return new ValueIterable<V>(iteratorExchange, filter);", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200", + "lineHits": 1 + }, + { + "line": 309, + "code": " } catch (Exception e) {", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "171cd79c0b5152461434951ed5d6e5e58849a7b7", + "scmDate": "2014-04-23T14:41:32+0200", + "lineHits": 0 + }, + { + "line": 310, + "code": " throw failToGetValues(e);", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "904b462c56317b1fb5a616534bd58aa9c9097d0b", + "scmDate": "2014-06-20T14:13:01+0200", + "lineHits": 0 + }, + { + "line": 311, + "code": " }", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "171cd79c0b5152461434951ed5d6e5e58849a7b7", + "scmDate": "2014-04-23T14:41:32+0200" + }, + { + "line": 312, + "code": " }", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "904b462c56317b1fb5a616534bd58aa9c9097d0b", + "scmDate": "2014-06-20T14:13:01+0200" + }, + { + "line": 313, + "code": "", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "904b462c56317b1fb5a616534bd58aa9c9097d0b", + "scmDate": "2014-06-20T14:13:01+0200" + }, + { + "line": 314, + "code": " private IllegalStateException failToGetValues(Exception e) {", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "904b462c56317b1fb5a616534bd58aa9c9097d0b", + "scmDate": "2014-06-20T14:13:01+0200" + }, + { + "line": 315, + "code": " return new IllegalStateException(\"Fail to get values from cache \" + name, e);", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "904b462c56317b1fb5a616534bd58aa9c9097d0b", + "scmDate": "2014-06-20T14:13:01+0200", + "lineHits": 0 + }, + { + "line": 316, + "code": " }", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "171cd79c0b5152461434951ed5d6e5e58849a7b7", + "scmDate": "2014-04-23T14:41:32+0200" + }, + { + "line": 317, + "code": "", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "171cd79c0b5152461434951ed5d6e5e58849a7b7", + "scmDate": "2014-04-23T14:41:32+0200" + }, + { + "line": 318, + "code": " /**", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "171cd79c0b5152461434951ed5d6e5e58849a7b7", + "scmDate": "2014-04-23T14:41:32+0200" + }, + { + "line": 319, + "code": " * Lazy-loading values for a given key", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 320, + "code": " */", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200" + }, + { + "line": 321, + "code": " public Iterable<V> values(Object firstKey) {", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200" + }, + { + "line": 322, + "code": " try {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 323, + "code": " exchange.clear();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200", + "lineHits": 1 + }, + { + "line": 324, + "code": " exchange.append(firstKey).append(Key.BEFORE);", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200", + "lineHits": 1 + }, + { + "line": 325, + "code": " Exchange iteratorExchange = new Exchange(exchange);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200", + "lineHits": 1 + }, + { + "line": 326, + "code": " KeyFilter filter = new KeyFilter().append(KeyFilter.simpleTerm(firstKey));", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200", + "lineHits": 1 + }, + { + "line": 327, + "code": " return new ValueIterable<V>(iteratorExchange, filter);", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200", + "lineHits": 1 + }, + { + "line": 328, + "code": " } catch (Exception e) {", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "46395126b184c343df5471a147cdb48133f59f6f", + "scmDate": "2014-04-23T14:41:32+0200", + "lineHits": 0 + }, + { + "line": 329, + "code": " throw failToGetValues(e);", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "904b462c56317b1fb5a616534bd58aa9c9097d0b", + "scmDate": "2014-06-20T14:13:01+0200", + "lineHits": 0 + }, + { + "line": 330, + "code": " }", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "46395126b184c343df5471a147cdb48133f59f6f", + "scmDate": "2014-04-23T14:41:32+0200" + }, + { + "line": 331, + "code": " }", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "46395126b184c343df5471a147cdb48133f59f6f", + "scmDate": "2014-04-23T14:41:32+0200" + }, + { + "line": 332, + "code": "", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "46395126b184c343df5471a147cdb48133f59f6f", + "scmDate": "2014-04-23T14:41:32+0200" + }, + { + "line": 333, + "code": " /**", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "46395126b184c343df5471a147cdb48133f59f6f", + "scmDate": "2014-04-23T14:41:32+0200" + }, + { + "line": 334, + "code": " * Lazy-loading values", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200" + }, + { + "line": 335, + "code": " */", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200" + }, + { + "line": 336, + "code": " public Iterable<V> values() {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 337, + "code": " try {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 338, + "code": " exchange.clear().append(Key.BEFORE);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 339, + "code": " Exchange iteratorExchange = new Exchange(exchange);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200", + "lineHits": 1 + }, + { + "line": 340, + "code": " KeyFilter filter = new KeyFilter().append(KeyFilter.ALL);", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200", + "lineHits": 1 + }, + { + "line": 341, + "code": " return new ValueIterable<V>(iteratorExchange, filter);", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200", + "lineHits": 1 + }, + { + "line": 342, + "code": " } catch (Exception e) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200", + "lineHits": 0 + }, + { + "line": 343, + "code": " throw failToGetValues(e);", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "904b462c56317b1fb5a616534bd58aa9c9097d0b", + "scmDate": "2014-06-20T14:13:01+0200", + "lineHits": 0 + }, + { + "line": 344, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 345, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 346, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 347, + "code": " public Iterable<Entry<V>> entries() {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 348, + "code": " exchange.clear().to(Key.BEFORE);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200", + "lineHits": 1 + }, + { + "line": 349, + "code": " KeyFilter filter = new KeyFilter().append(KeyFilter.ALL);", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200", + "lineHits": 1 + }, + { + "line": 350, + "code": " return new EntryIterable<V>(new Exchange(exchange), filter);", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200", + "lineHits": 1 + }, + { + "line": 351, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 352, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 353, + "code": " public Iterable<Entry<V>> entries(Object firstKey) {", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200" + }, + { + "line": 354, + "code": " exchange.clear().append(firstKey).append(Key.BEFORE);", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200", + "lineHits": 1 + }, + { + "line": 355, + "code": " KeyFilter filter = new KeyFilter().append(KeyFilter.simpleTerm(firstKey));", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200", + "lineHits": 1 + }, + { + "line": 356, + "code": " return new EntryIterable<V>(new Exchange(exchange), filter);", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200", + "lineHits": 1 + }, + { + "line": 357, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 358, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 359, + "code": " private void resetKey(Object key) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 360, + "code": " exchange.clear();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 361, + "code": " exchange.append(key);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 362, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 363, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 364, + "code": " private void resetKey(Object first, Object second) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 365, + "code": " exchange.clear();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 366, + "code": " exchange.append(first).append(second);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 367, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 368, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 369, + "code": " private void resetKey(Object first, Object second, Object third) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 370, + "code": " exchange.clear();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 371, + "code": " exchange.append(first).append(second).append(third);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 372, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 373, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 374, + "code": " private void resetKey(Object[] keys) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 375, + "code": " exchange.clear();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 0 + }, + { + "line": 376, + "code": " for (Object o : keys) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 0, + "conditions": 2, + "coveredConditions": 0 + }, + { + "line": 377, + "code": " exchange.append(o);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 0 + }, + { + "line": 378, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 379, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200", + "lineHits": 0 + }, + { + "line": 380, + "code": "", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "7b301db8c7e3000ff2a04fce5534e45e7d973a1f", + "scmDate": "2014-04-25T11:17:09+0200" + }, + { + "line": 381, + "code": " //", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200" + }, + { + "line": 382, + "code": " // LAZY ITERATORS AND ITERABLES", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200" + }, + { + "line": 383, + "code": " //", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200" + }, + { + "line": 384, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200" + }, + { + "line": 385, + "code": " private static class ValueIterable<T> implements Iterable<T> {", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "6074164392edd3db2dfdfd21d05cd56c19e2b0e6", + "scmDate": "2014-07-25T16:31:45+0200" + }, + { + "line": 386, + "code": " private final Iterator<T> iterator;", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200" + }, + { + "line": 387, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200" + }, + { + "line": 388, + "code": " private ValueIterable(Exchange exchange, KeyFilter keyFilter) {", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200", + "lineHits": 1 + }, + { + "line": 389, + "code": " this.iterator = new ValueIterator<T>(exchange, keyFilter);", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200", + "lineHits": 1 + }, + { + "line": 390, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200", + "lineHits": 1 + }, + { + "line": 391, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200" + }, + { + "line": 392, + "code": " @Override", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200" + }, + { + "line": 393, + "code": " public Iterator<T> iterator() {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200" + }, + { + "line": 394, + "code": " return iterator;", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200", + "lineHits": 1 + }, + { + "line": 395, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200" + }, + { + "line": 396, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200" + }, + { + "line": 397, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200" + }, + { + "line": 398, + "code": " private static class ValueIterator<T> implements Iterator<T> {", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "6074164392edd3db2dfdfd21d05cd56c19e2b0e6", + "scmDate": "2014-07-25T16:31:45+0200" + }, + { + "line": 399, + "code": " private final Exchange exchange;", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200" + }, + { + "line": 400, + "code": " private final KeyFilter keyFilter;", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200" + }, + { + "line": 401, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200" + }, + { + "line": 402, + "code": " private ValueIterator(Exchange exchange, KeyFilter keyFilter) {", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200", + "lineHits": 1 + }, + { + "line": 403, + "code": " this.exchange = exchange;", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200", + "lineHits": 1, + "duplicated": true + }, + { + "line": 404, + "code": " this.keyFilter = keyFilter;", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200", + "lineHits": 1, + "duplicated": true + }, + { + "line": 405, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200", + "lineHits": 1, + "duplicated": true + }, + { + "line": 406, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200", + "duplicated": true + }, + { + "line": 407, + "code": " @Override", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200", + "duplicated": true + }, + { + "line": 408, + "code": " public boolean hasNext() {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200", + "duplicated": true + }, + { + "line": 409, + "code": " try {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200", + "duplicated": true + }, + { + "line": 410, + "code": " return exchange.hasNext(keyFilter);", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200", + "lineHits": 1, + "duplicated": true + }, + { + "line": 411, + "code": " } catch (PersistitException e) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200", + "lineHits": 0, + "duplicated": true + }, + { + "line": 412, + "code": " throw new IllegalStateException(e);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200", + "lineHits": 0, + "duplicated": true + }, + { + "line": 413, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200", + "duplicated": true + }, + { + "line": 414, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200", + "duplicated": true + }, + { + "line": 415, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200", + "duplicated": true + }, + { + "line": 416, + "code": " @SuppressWarnings(\"unchecked\")", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200", + "duplicated": true + }, + { + "line": 417, + "code": " @Override", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200", + "duplicated": true + }, + { + "line": 418, + "code": " public T next() {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200" + }, + { + "line": 419, + "code": " try {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 420, + "code": " exchange.next(keyFilter);", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200", + "lineHits": 1 + }, + { + "line": 421, + "code": " } catch (PersistitException e) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 0 + }, + { + "line": 422, + "code": " throw new IllegalStateException(e);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 0 + }, + { + "line": 423, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 424, + "code": " if (exchange.getValue().isDefined()) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200", + "lineHits": 1, + "conditions": 2, + "coveredConditions": 1 + }, + { + "line": 425, + "code": " return (T) exchange.getValue().get();", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200", + "lineHits": 1 + }, + { + "line": 426, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200" + }, + { + "line": 427, + "code": " throw new NoSuchElementException();", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200", + "lineHits": 0 + }, + { + "line": 428, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200" + }, + { + "line": 429, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200" + }, + { + "line": 430, + "code": " @Override", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200" + }, + { + "line": 431, + "code": " public void remove() {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", + "scmDate": "2013-05-29T14:27:38+0200" + }, + { + "line": 432, + "code": " throw new UnsupportedOperationException(\"Removing an item is not supported\");", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "34cce8e330192c56a159a856ebd8072d38299087", + "scmDate": "2014-02-24T14:21:50+0100", + "lineHits": 0 + }, + { + "line": 433, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 434, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 435, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 436, + "code": " private static class EntryIterable<T> implements Iterable<Entry<T>> {", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "6074164392edd3db2dfdfd21d05cd56c19e2b0e6", + "scmDate": "2014-07-25T16:31:45+0200" + }, + { + "line": 437, + "code": " private final EntryIterator<T> it;", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 438, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 439, + "code": " private EntryIterable(Exchange exchange, KeyFilter keyFilter) {", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200", + "lineHits": 1 + }, + { + "line": 440, + "code": " it = new EntryIterator<T>(exchange, keyFilter);", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200", + "lineHits": 1 + }, + { + "line": 441, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200", + "lineHits": 1 + }, + { + "line": 442, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 443, + "code": " @Override", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 444, + "code": " public Iterator<Entry<T>> iterator() {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 445, + "code": " return it;", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200", + "lineHits": 1 + }, + { + "line": 446, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 447, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 448, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 449, + "code": " private static class EntryIterator<T> implements Iterator<Entry<T>> {", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "6074164392edd3db2dfdfd21d05cd56c19e2b0e6", + "scmDate": "2014-07-25T16:31:45+0200" + }, + { + "line": 450, + "code": " private final Exchange exchange;", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 451, + "code": " private final KeyFilter keyFilter;", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200" + }, + { + "line": 452, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 453, + "code": " private EntryIterator(Exchange exchange, KeyFilter keyFilter) {", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200", + "lineHits": 1 + }, + { + "line": 454, + "code": " this.exchange = exchange;", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200", + "lineHits": 1, + "duplicated": true + }, + { + "line": 455, + "code": " this.keyFilter = keyFilter;", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200", + "lineHits": 1, + "duplicated": true + }, + { + "line": 456, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200", + "lineHits": 1, + "duplicated": true + }, + { + "line": 457, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200", + "duplicated": true + }, + { + "line": 458, + "code": " @Override", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200", + "duplicated": true + }, + { + "line": 459, + "code": " public boolean hasNext() {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200", + "duplicated": true + }, + { + "line": 460, + "code": " try {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200", + "duplicated": true + }, + { + "line": 461, + "code": " return exchange.hasNext(keyFilter);", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200", + "lineHits": 1, + "duplicated": true + }, + { + "line": 462, + "code": " } catch (PersistitException e) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200", + "lineHits": 0, + "duplicated": true + }, + { + "line": 463, + "code": " throw new IllegalStateException(e);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200", + "lineHits": 0, + "duplicated": true + }, + { + "line": 464, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200", + "duplicated": true + }, + { + "line": 465, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200", + "duplicated": true + }, + { + "line": 466, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200", + "duplicated": true + }, + { + "line": 467, + "code": " @SuppressWarnings(\"unchecked\")", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200", + "duplicated": true + }, + { + "line": 468, + "code": " @Override", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200", + "duplicated": true + }, + { + "line": 469, + "code": " public Entry<T> next() {", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200" + }, + { + "line": 470, + "code": " try {", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200" + }, + { + "line": 471, + "code": " exchange.next(keyFilter);", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200", + "lineHits": 1 + }, + { + "line": 472, + "code": " } catch (PersistitException e) {", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200", + "lineHits": 0 + }, + { + "line": 473, + "code": " throw new IllegalStateException(e);", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200", + "lineHits": 0 + }, + { + "line": 474, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200", + "lineHits": 1 + }, + { + "line": 475, + "code": " if (exchange.getValue().isDefined()) {", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200", + "lineHits": 1, + "conditions": 2, + "coveredConditions": 1 + }, + { + "line": 476, + "code": " T value = (T) exchange.getValue().get();", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200", + "lineHits": 1 + }, + { + "line": 477, + "code": " Key key = exchange.getKey();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200", + "lineHits": 1 + }, + { + "line": 478, + "code": " Object[] array = new Object[key.getDepth()];", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 479, + "code": " for (int i = 0; i < key.getDepth(); i++) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1, + "conditions": 2, + "coveredConditions": 2 + }, + { + "line": 480, + "code": " array[i] = key.indexTo(i - key.getDepth()).decode();", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 481, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 482, + "code": " return new Entry<T>(array, value);", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200", + "lineHits": 1 + }, + { + "line": 483, + "code": " }", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200" + }, + { + "line": 484, + "code": " throw new NoSuchElementException();", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", + "scmDate": "2014-05-01T00:00:12+0200", + "lineHits": 0 + }, + { + "line": 485, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 486, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 487, + "code": " @Override", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 488, + "code": " public void remove() {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 489, + "code": " throw new UnsupportedOperationException(\"Removing an item is not supported\");", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "34cce8e330192c56a159a856ebd8072d38299087", + "scmDate": "2014-02-24T14:21:50+0100", + "lineHits": 0 + }, + { + "line": 490, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 491, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 492, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 493, + "code": " public static class Entry<V> {", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "6074164392edd3db2dfdfd21d05cd56c19e2b0e6", + "scmDate": "2014-07-25T16:31:45+0200" + }, + { + "line": 494, + "code": " private final Object[] key;", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 495, + "code": " private final V value;", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 496, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 497, + "code": " Entry(Object[] key, V value) {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100", + "lineHits": 1 + }, + { + "line": 498, + "code": " this.key = key;", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200", + "lineHits": 1 + }, + { + "line": 499, + "code": " this.value = value;", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200", + "lineHits": 1 + }, + { + "line": 500, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200", + "lineHits": 1 + }, + { + "line": 501, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 502, + "code": " public Object[] key() {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 503, + "code": " return key;", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200", + "lineHits": 1 + }, + { + "line": 504, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 505, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 506, + "code": " @CheckForNull", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 507, + "code": " public V value() {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", + "scmDate": "2014-02-20T07:23:08+0100" + }, + { + "line": 508, + "code": " return value;", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200", + "lineHits": 1 + }, + { + "line": 509, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 510, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 511, + "code": " @Override", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 512, + "code": " public String toString() {", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 513, + "code": " return ToStringBuilder.reflectionToString(this);", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200", + "lineHits": 0 + }, + { + "line": 514, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 515, + "code": " }", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", + "scmDate": "2013-04-17T10:35:23+0200" + }, + { + "line": 516, + "code": "", + "scmAuthor": "julien.henry@sonarsource.com", + "scmRevision": "43fc31f75a2de06b23faefb0d2bbf1dd97290232", + "scmDate": "2014-05-05T16:43:19+0200" + }, + { + "line": 517, + "code": "}", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + }, + { + "line": 518, + "code": "", + "scmAuthor": "simon.brandhof@gmail.com", + "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", + "scmDate": "2013-04-16T17:26:34+0200" + } +]} diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec.js b/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec.js index 97f3fa9c47f..8a686a1bcc8 100644 --- a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec.js +++ b/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec.js @@ -165,49 +165,3 @@ casper.test.begin(testName('Test File'), function (test) { // test.done(); // }); //}); - - -casper.test.begin(testName('Create Manual Issue'), function (test) { - casper - .start(lib.buildUrl('source-viewer'), function () { - lib.setDefaultViewport(); - - lib.mockRequest('/api/l10n/index', '{}'); - lib.mockRequestFromFile('/api/components/app', 'app.json'); - lib.mockRequestFromFile('/api/sources/lines', 'lines.json'); - lib.mockRequestFromFile('/api/issues/search', 'issues.json'); - lib.mockRequestFromFile('/api/issues/create', 'create-issue.json'); - lib.mockRequestFromFile('/api/issues/show', 'create-issue.json'); - }) - - .then(function () { - casper.waitForSelector('.source-line-number[data-line-number="3"]'); - }) - - .then(function () { - casper.click('.source-line-number[data-line-number="3"]'); - casper.waitForSelector('.js-add-manual-issue'); - }) - - .then(function () { - casper.click('.js-add-manual-issue'); - casper.waitForSelector('.js-manual-issue-form'); - }) - - .then(function () { - casper.fill('.js-manual-issue-form', { - rule: 'manual:api', - message: 'An issue message' - }, true); - }) - - .then(function () { - casper.waitForSelector('.source-line-code.has-issues[data-line-number="3"]', function () { - test.assertExists('.source-line-code.has-issues[data-line-number="3"]'); - }); - }) - - .run(function () { - test.done(); - }); -}); -- 2.39.5