diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 2e68137fa9d..0fe065958d0 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -57,10 +57,8 @@ jobs:
item:
- { runner: github-ubuntu-latest-m, profile: without-sonarqube-project }
- { runner: github-ubuntu-latest-m, profile: only-sonarqube-project }
- - { runner: github-ubuntu-latest-m, profile: only-guava-project, java_version: 17, sonar-runtime: "LATEST_RELEASE[2025.4]" }
- { runner: github-windows-latest-m, profile: without-sonarqube-project }
- { runner: github-windows-latest-m, profile: only-sonarqube-project }
- - { runner: github-windows-latest-m, profile: only-guava-project, java_version: 17, sonar-runtime: "LATEST_RELEASE[2025.4]" }
name: Ruling QA
needs:
- build
@@ -79,9 +77,7 @@ jobs:
with:
version: 2025.7.12
- name: Select Java Version
- env:
- JAVA_VERSION: ${{ matrix.item.java_version || '21' }}
- run: mise use "java@${{ env.JAVA_VERSION }}"
+ run: mise use java@21
- name: Configure Maven
uses: SonarSource/ci-github-actions/config-maven@v1
with:
@@ -99,10 +95,9 @@ jobs:
env:
MAVEN_OPTS: "-Xmx3g"
GITHUB_TOKEN: ${{ fromJSON(steps.secrets.outputs.vault).GITHUB_TOKEN }}
- SONAR_RUNTIME: ${{ matrix.item.sonar-runtime || 'LATEST_RELEASE' }}
run: |
cd its/ruling
- mvn package --batch-mode "-Pit-ruling,${{ matrix.item.profile }}" "-Dsonar.runtimeVersion=${{ env.SONAR_RUNTIME }}" -Dmaven.test.redirectTestOutputToFile=false -B -e -V -Dparallel=methods -DuseUnlimitedThreads=true
+ mvn package --batch-mode "-Pit-ruling,${{ matrix.item.profile }}" -Dsonar.runtimeVersion=LATEST_RELEASE -Dmaven.test.redirectTestOutputToFile=false -B -e -V -Dparallel=methods -DuseUnlimitedThreads=true
plugin-qa:
strategy:
diff --git a/its/ruling/pom.xml b/its/ruling/pom.xml
index cb98756d78d..ca1417c2325 100644
--- a/its/ruling/pom.xml
+++ b/its/ruling/pom.xml
@@ -108,7 +108,7 @@
org.apache.maven.plugins
maven-surefire-plugin
- !org.sonar.java.it.JavaRulingTest#sonarqube_server,!org.sonar.java.it.JavaRulingTest#guava
+ !org.sonar.java.it.JavaRulingTest#sonarqube_server
@@ -128,20 +128,6 @@
-
- only-guava-project
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
-
- org.sonar.java.it.JavaRulingTest#guava
-
-
-
-
-
diff --git a/its/ruling/src/test/java/org/sonar/java/it/JavaRulingTest.java b/its/ruling/src/test/java/org/sonar/java/it/JavaRulingTest.java
index 7b700429d49..5eb61a12e97 100644
--- a/its/ruling/src/test/java/org/sonar/java/it/JavaRulingTest.java
+++ b/its/ruling/src/test/java/org/sonar/java/it/JavaRulingTest.java
@@ -185,8 +185,8 @@ public void guava() throws Exception {
String projectName = "guava";
MavenBuild build = test_project("com.google.guava:guava", projectName);
build
- // by default guava is compatible with java 6, however this is not supported with JDK 17
- .setProperty("java.version", "1.7")
+ // by default guava is compatible with java 6, however this is not supported with JDK 21
+ .setProperty("java.version", "1.8")
.setProperty("maven.javadoc.skip", "true")
// use batch
.setProperty("sonar.java.experimental.batchModeSizeInKB", "8192");
diff --git a/its/ruling/src/test/resources/guava/java-S109.json b/its/ruling/src/test/resources/guava/java-S109.json
index 0e8446a7fab..5fc80631914 100644
--- a/its/ruling/src/test/resources/guava/java-S109.json
+++ b/its/ruling/src/test/resources/guava/java-S109.json
@@ -80,8 +80,8 @@
260
],
"com.google.guava:guava:src/com/google/common/collect/Collections2.java": [
-317,
-524
+316,
+523
],
"com.google.guava:guava:src/com/google/common/collect/EnumHashBiMap.java": [
122,
diff --git a/its/ruling/src/test/resources/guava/java-S1108.json b/its/ruling/src/test/resources/guava/java-S1108.json
index 782326c3565..80d4446c4a1 100644
--- a/its/ruling/src/test/resources/guava/java-S1108.json
+++ b/its/ruling/src/test/resources/guava/java-S1108.json
@@ -218,10 +218,10 @@
32
],
"com.google.guava:guava:src/com/google/common/collect/Collections2.java": [
-111,
-113,
-127,
-129
+110,
+112,
+126,
+128
],
"com.google.guava:guava:src/com/google/common/collect/ComputingConcurrentHashMap.java": [
112,
diff --git a/its/ruling/src/test/resources/guava/java-S1120.json b/its/ruling/src/test/resources/guava/java-S1120.json
index 906095ddef7..81c393ad31a 100644
--- a/its/ruling/src/test/resources/guava/java-S1120.json
+++ b/its/ruling/src/test/resources/guava/java-S1120.json
@@ -3451,104 +3451,104 @@
49
],
"com.google.guava:guava:src/com/google/common/collect/Collections2.java": [
-59,
-93,
-96,
-108,
-110,
-112,
-114,
-124,
-126,
-128,
-130,
+58,
+92,
+95,
+107,
+109,
+111,
+113,
+123,
+125,
+127,
+129,
+133,
134,
-135,
-139,
-144,
-150,
+138,
+143,
+149,
+155,
156,
-157,
-164,
-169,
-171,
-179,
-184,
-189,
-194,
-199,
-204,
-209,
-215,
-220,
-245,
+163,
+168,
+170,
+178,
+183,
+188,
+193,
+198,
+203,
+208,
+214,
+219,
+244,
+247,
248,
-249,
-253,
-259,
-264,
-269,
-274,
-291,
-298,
+252,
+258,
+263,
+268,
+273,
+290,
+297,
+304,
305,
-306,
-316,
-324,
-359,
-412,
+315,
+323,
+358,
+411,
+414,
415,
-416,
-421,
-437,
-441,
-444,
-447,
-455,
-462,
-467,
-472,
+420,
+436,
+440,
+443,
+446,
+454,
+461,
+466,
+471,
+476,
477,
-478,
-486,
-490,
-492,
-496,
+485,
+489,
+491,
+495,
+501,
502,
-503,
-511,
-513,
+510,
+512,
+523,
524,
525,
-526,
-533,
+532,
+534,
535,
-536,
-565,
+564,
+567,
568,
-569,
-572,
-577,
-582,
-587,
+571,
+576,
+581,
+586,
+591,
592,
-593,
-601,
+600,
+604,
605,
-606,
-612,
+611,
+622,
623,
-624,
-632,
-638,
-642,
-644,
+631,
+637,
+641,
+643,
+647,
648,
-649,
-663,
+662,
+671,
672,
-673,
-681
+680
],
"com.google.guava:guava:src/com/google/common/collect/ComparatorOrdering.java": [
31,
diff --git a/its/ruling/src/test/resources/guava/java-S1135.json b/its/ruling/src/test/resources/guava/java-S1135.json
index 2592dc76ecb..4aa71b8d1fc 100644
--- a/its/ruling/src/test/resources/guava/java-S1135.json
+++ b/its/ruling/src/test/resources/guava/java-S1135.json
@@ -74,7 +74,7 @@
167
],
"com.google.guava:guava:src/com/google/common/collect/Collections2.java": [
-89
+88
],
"com.google.guava:guava:src/com/google/common/collect/ComputingConcurrentHashMap.java": [
353
diff --git a/its/ruling/src/test/resources/guava/java-S1166.json b/its/ruling/src/test/resources/guava/java-S1166.json
index 8f8a6318ef3..be641101d5b 100644
--- a/its/ruling/src/test/resources/guava/java-S1166.json
+++ b/its/ruling/src/test/resources/guava/java-S1166.json
@@ -34,10 +34,10 @@
60
],
"com.google.guava:guava:src/com/google/common/collect/Collections2.java": [
-111,
-113,
-127,
-129
+110,
+112,
+126,
+128
],
"com.google.guava:guava:src/com/google/common/collect/ConcurrentHashMultiset.java": [
244
diff --git a/its/ruling/src/test/resources/guava/java-S1213.json b/its/ruling/src/test/resources/guava/java-S1213.json
index 7c1cf15f291..5de6a28c0c4 100644
--- a/its/ruling/src/test/resources/guava/java-S1213.json
+++ b/its/ruling/src/test/resources/guava/java-S1213.json
@@ -318,7 +318,7 @@
52
],
"com.google.guava:guava:src/com/google/common/collect/Collections2.java": [
-327
+326
],
"com.google.guava:guava:src/com/google/common/collect/ComparatorOrdering.java": [
64
diff --git a/its/ruling/src/test/resources/guava/java-S1309.json b/its/ruling/src/test/resources/guava/java-S1309.json
index 2bd73804191..4019839ef83 100644
--- a/its/ruling/src/test/resources/guava/java-S1309.json
+++ b/its/ruling/src/test/resources/guava/java-S1309.json
@@ -73,7 +73,7 @@
358
],
"com.google.guava:guava:src/com/google/common/collect/Collections2.java": [
-170
+169
],
"com.google.guava:guava:src/com/google/common/collect/ComparisonChain.java": [
79
diff --git a/its/ruling/src/test/resources/guava/java-S135.json b/its/ruling/src/test/resources/guava/java-S135.json
index f5363378b14..1405bc4a6ea 100644
--- a/its/ruling/src/test/resources/guava/java-S135.json
+++ b/its/ruling/src/test/resources/guava/java-S135.json
@@ -15,7 +15,7 @@
203
],
"com.google.guava:guava:src/com/google/common/collect/Collections2.java": [
-641
+640
],
"com.google.guava:guava:src/com/google/common/collect/ImmutableSet.java": [
153
diff --git a/its/ruling/src/test/resources/guava/java-S139.json b/its/ruling/src/test/resources/guava/java-S139.json
index 1df4d6f3e5f..5f061fbcffc 100644
--- a/its/ruling/src/test/resources/guava/java-S139.json
+++ b/its/ruling/src/test/resources/guava/java-S139.json
@@ -121,7 +121,7 @@
358
],
"com.google.guava:guava:src/com/google/common/collect/Collections2.java": [
-170
+169
],
"com.google.guava:guava:src/com/google/common/collect/ComputingConcurrentHashMap.java": [
69
diff --git a/its/ruling/src/test/resources/guava/java-S1604.json b/its/ruling/src/test/resources/guava/java-S1604.json
new file mode 100644
index 00000000000..e7881e1d44d
--- /dev/null
+++ b/its/ruling/src/test/resources/guava/java-S1604.json
@@ -0,0 +1,176 @@
+{
+"com.google.guava:guava:src/com/google/common/base/Converter.java": [
+180
+],
+"com.google.guava:guava:src/com/google/common/base/Optional.java": [
+297
+],
+"com.google.guava:guava:src/com/google/common/base/Splitter.java": [
+148,
+179,
+230,
+294
+],
+"com.google.guava:guava:src/com/google/common/cache/CacheBuilder.java": [
+183
+],
+"com.google.guava:guava:src/com/google/common/cache/LocalCache.java": [
+2327,
+3547
+],
+"com.google.guava:guava:src/com/google/common/cache/LongAddables.java": [
+38,
+45
+],
+"com.google.guava:guava:src/com/google/common/cache/RemovalListeners.java": [
+45,
+48
+],
+"com.google.guava:guava:src/com/google/common/collect/Collections2.java": [
+302
+],
+"com.google.guava:guava:src/com/google/common/collect/FilteredEntryMultimap.java": [
+398
+],
+"com.google.guava:guava:src/com/google/common/collect/Interners.java": [
+46
+],
+"com.google.guava:guava:src/com/google/common/collect/Iterables.java": [
+1014
+],
+"com.google.guava:guava:src/com/google/common/collect/Iterators.java": [
+1296
+],
+"com.google.guava:guava:src/com/google/common/collect/MapConstraints.java": [
+227,
+485
+],
+"com.google.guava:guava:src/com/google/common/collect/Maps.java": [
+1863,
+1874,
+1888,
+1922,
+3098
+],
+"com.google.guava:guava:src/com/google/common/collect/Multimaps.java": [
+519,
+1202,
+1702
+],
+"com.google.guava:guava:src/com/google/common/collect/Multisets.java": [
+305
+],
+"com.google.guava:guava:src/com/google/common/collect/MutableClassToInstanceMap.java": [
+64
+],
+"com.google.guava:guava:src/com/google/common/collect/Range.java": [
+117,
+129
+],
+"com.google.guava:guava:src/com/google/common/collect/RegularImmutableTable.java": [
+114
+],
+"com.google.guava:guava:src/com/google/common/collect/StandardTable.java": [
+721,
+794
+],
+"com.google.guava:guava:src/com/google/common/collect/Tables.java": [
+240,
+390,
+419,
+429,
+592
+],
+"com.google.guava:guava:src/com/google/common/collect/TreeBasedTable.java": [
+321
+],
+"com.google.guava:guava:src/com/google/common/escape/Escaper.java": [
+90
+],
+"com.google.guava:guava:src/com/google/common/eventbus/Subscriber.java": [
+76
+],
+"com.google.guava:guava:src/com/google/common/io/CharSource.java": [
+442
+],
+"com.google.guava:guava:src/com/google/common/net/MediaType.java": [
+406,
+744
+],
+"com.google.guava:guava:src/com/google/common/reflect/ClassPath.java": [
+64
+],
+"com.google.guava:guava:src/com/google/common/reflect/MutableTypeToInstanceMap.java": [
+124
+],
+"com.google.guava:guava:src/com/google/common/reflect/TypeToken.java": [
+701
+],
+"com.google.guava:guava:src/com/google/common/reflect/Types.java": [
+61
+],
+"com.google.guava:guava:src/com/google/common/util/concurrent/AbstractExecutionThreadService.java": [
+45,
+50,
+145
+],
+"com.google.guava:guava:src/com/google/common/util/concurrent/AbstractIdleService.java": [
+40,
+50,
+64,
+95
+],
+"com.google.guava:guava:src/com/google/common/util/concurrent/AbstractScheduledService.java": [
+205,
+210,
+232,
+304
+],
+"com.google.guava:guava:src/com/google/common/util/concurrent/AggregateFuture.java": [
+138
+],
+"com.google.guava:guava:src/com/google/common/util/concurrent/AtomicLongMap.java": [
+294
+],
+"com.google.guava:guava:src/com/google/common/util/concurrent/Callables.java": [
+44,
+94
+],
+"com.google.guava:guava:src/com/google/common/util/concurrent/Futures.java": [
+1168,
+1494,
+1569,
+1662,
+1749
+],
+"com.google.guava:guava:src/com/google/common/util/concurrent/FuturesGetChecked.java": [
+253
+],
+"com.google.guava:guava:src/com/google/common/util/concurrent/JdkFutureAdapters.java": [
+160
+],
+"com.google.guava:guava:src/com/google/common/util/concurrent/MoreExecutors.java": [
+204,
+754,
+856
+],
+"com.google.guava:guava:src/com/google/common/util/concurrent/Runnables.java": [
+31
+],
+"com.google.guava:guava:src/com/google/common/util/concurrent/ServiceManager.java": [
+598
+],
+"com.google.guava:guava:src/com/google/common/util/concurrent/Striped.java": [
+199,
+214,
+236,
+252,
+283
+],
+"com.google.guava:guava:src/com/google/common/util/concurrent/ThreadFactoryBuilder.java": [
+161
+],
+"com.google.guava:guava:src/com/google/common/util/concurrent/WrappingExecutorService.java": [
+67
+]
+}
diff --git a/its/ruling/src/test/resources/guava/java-S1610.json b/its/ruling/src/test/resources/guava/java-S1610.json
new file mode 100644
index 00000000000..08bb97c9146
--- /dev/null
+++ b/its/ruling/src/test/resources/guava/java-S1610.json
@@ -0,0 +1,50 @@
+{
+"com.google.guava:guava:src/com/google/common/cache/CacheLoader.java": [
+53
+],
+"com.google.guava:guava:src/com/google/common/collect/DiscreteDomain.java": [
+46
+],
+"com.google.guava:guava:src/com/google/common/collect/ForwardingImmutableList.java": [
+27
+],
+"com.google.guava:guava:src/com/google/common/collect/ForwardingImmutableMap.java": [
+27
+],
+"com.google.guava:guava:src/com/google/common/collect/ForwardingImmutableSet.java": [
+27
+],
+"com.google.guava:guava:src/com/google/common/collect/TreeTraverser.java": [
+54
+],
+"com.google.guava:guava:src/com/google/common/eventbus/Dispatcher.java": [
+37
+],
+"com.google.guava:guava:src/com/google/common/io/ByteSink.java": [
+47
+],
+"com.google.guava:guava:src/com/google/common/io/CharSink.java": [
+49
+],
+"com.google.guava:guava:src/com/google/common/reflect/TypeCapture.java": [
+29
+],
+"com.google.guava:guava:src/com/google/common/util/concurrent/AbstractFuture.java": [
+834
+],
+"com.google.guava:guava:src/com/google/common/util/concurrent/AbstractScheduledService.java": [
+112
+],
+"com.google.guava:guava:src/com/google/common/util/concurrent/GwtFuturesCatchingSpecialization.java": [
+27
+],
+"com.google.guava:guava:src/com/google/common/util/concurrent/RateLimiter.java": [
+405
+],
+"com.google.guava:guava:src/com/google/common/util/concurrent/Service.java": [
+255
+],
+"com.google.guava:guava:src/com/google/common/util/concurrent/ServiceManager.java": [
+146
+]
+}
diff --git a/its/ruling/src/test/resources/guava/java-S1696.json b/its/ruling/src/test/resources/guava/java-S1696.json
index 6aa65ca0078..da26d69b702 100644
--- a/its/ruling/src/test/resources/guava/java-S1696.json
+++ b/its/ruling/src/test/resources/guava/java-S1696.json
@@ -3,8 +3,8 @@
565
],
"com.google.guava:guava:src/com/google/common/collect/Collections2.java": [
-113,
-129
+112,
+128
],
"com.google.guava:guava:src/com/google/common/collect/ForwardingSortedMap.java": [
143
diff --git a/its/ruling/src/test/resources/guava/java-S1774.json b/its/ruling/src/test/resources/guava/java-S1774.json
index e4de2d8d5c8..ddb0a56f582 100644
--- a/its/ruling/src/test/resources/guava/java-S1774.json
+++ b/its/ruling/src/test/resources/guava/java-S1774.json
@@ -185,7 +185,7 @@
51
],
"com.google.guava:guava:src/com/google/common/collect/Collections2.java": [
-306
+305
],
"com.google.guava:guava:src/com/google/common/collect/ComparisonChain.java": [
122,
diff --git a/its/ruling/src/test/resources/guava/java-S1941.json b/its/ruling/src/test/resources/guava/java-S1941.json
index 2097d7dc984..3d102b3b046 100644
--- a/its/ruling/src/test/resources/guava/java-S1941.json
+++ b/its/ruling/src/test/resources/guava/java-S1941.json
@@ -3,7 +3,7 @@
636
],
"com.google.guava:guava:src/com/google/common/collect/Collections2.java": [
-633
+632
],
"com.google.guava:guava:src/com/google/common/collect/ImmutableListMultimap.java": [
375
diff --git a/its/ruling/src/test/resources/guava/java-S2039.json b/its/ruling/src/test/resources/guava/java-S2039.json
index bb20ec71dae..d591068bbc0 100644
--- a/its/ruling/src/test/resources/guava/java-S2039.json
+++ b/its/ruling/src/test/resources/guava/java-S2039.json
@@ -306,21 +306,21 @@
36
],
"com.google.guava:guava:src/com/google/common/collect/Collections2.java": [
+134,
135,
-136,
+248,
249,
-250,
-327,
+326,
+415,
416,
417,
-418,
+491,
492,
-493,
-569,
+568,
+605,
606,
607,
-608,
-609
+608
],
"com.google.guava:guava:src/com/google/common/collect/ComparatorOrdering.java": [
31
diff --git a/its/ruling/src/test/resources/guava/java-S2147.json b/its/ruling/src/test/resources/guava/java-S2147.json
index afc6b119d4a..6c60f647328 100644
--- a/its/ruling/src/test/resources/guava/java-S2147.json
+++ b/its/ruling/src/test/resources/guava/java-S2147.json
@@ -3,8 +3,8 @@
567
],
"com.google.guava:guava:src/com/google/common/collect/Collections2.java": [
-113,
-129
+112,
+128
],
"com.google.guava:guava:src/com/google/common/collect/ForwardingSortedMap.java": [
141,
diff --git a/its/ruling/src/test/resources/guava/java-S2293.json b/its/ruling/src/test/resources/guava/java-S2293.json
index 40dd91001a5..5fed4d60ec7 100644
--- a/its/ruling/src/test/resources/guava/java-S2293.json
+++ b/its/ruling/src/test/resources/guava/java-S2293.json
@@ -35,7 +35,8 @@
350
],
"com.google.guava:guava:src/com/google/common/base/Optional.java": [
-112
+112,
+125
],
"com.google.guava:guava:src/com/google/common/base/Predicates.java": [
95,
@@ -45,6 +46,7 @@
144,
157,
167,
+175,
225,
236,
706
@@ -58,6 +60,7 @@
],
"com.google.guava:guava:src/com/google/common/base/Suppliers.java": [
54,
+110,
169,
226,
268
@@ -78,6 +81,13 @@
165
],
"com.google.guava:guava:src/com/google/common/cache/LocalCache.java": [
+254,
+383,
+384,
+398,
+399,
+414,
+415,
447,
454,
469,
@@ -91,6 +101,11 @@
1739,
1762,
1876,
+2097,
+2100,
+2103,
+2107,
+2111,
2116,
2261,
2436,
@@ -123,7 +138,9 @@
130
],
"com.google.guava:guava:src/com/google/common/collect/ArrayTable.java": [
-101
+101,
+134,
+135
],
"com.google.guava:guava:src/com/google/common/collect/BinaryTreeTraverser.java": [
103,
@@ -135,14 +152,14 @@
49
],
"com.google.guava:guava:src/com/google/common/collect/Collections2.java": [
-99,
-144,
-245,
-412,
-472,
-565,
-587,
-612
+98,
+143,
+244,
+411,
+471,
+564,
+586,
+611
],
"com.google.guava:guava:src/com/google/common/collect/ComputingConcurrentHashMap.java": [
56,
@@ -159,10 +176,18 @@
54,
97,
141,
+201,
+202,
283
],
+"com.google.guava:guava:src/com/google/common/collect/ContiguousSet.java": [
+75,
+76
+],
"com.google.guava:guava:src/com/google/common/collect/Cut.java": [
288,
+318,
+329,
371
],
"com.google.guava:guava:src/com/google/common/collect/DescendingMultiset.java": [
@@ -248,6 +273,7 @@
278,
308,
314,
+500,
615
],
"com.google.guava:guava:src/com/google/common/collect/ImmutableListMultimap.java": [
@@ -259,6 +285,7 @@
121,
129,
354,
+480,
507,
526,
641
@@ -317,7 +344,9 @@
272,
321,
335,
-445
+445,
+497,
+498
],
"com.google.guava:guava:src/com/google/common/collect/ImmutableSortedMap.java": [
67,
@@ -342,6 +371,7 @@
270,
271,
282,
+305,
364,
376,
390,
@@ -408,6 +438,7 @@
"com.google.guava:guava:src/com/google/common/collect/Lists.java": [
89,
114,
+146,
187,
209,
233,
@@ -415,6 +446,10 @@
293,
313,
356,
+550,
+551,
+661,
+662,
799,
801
],
@@ -435,10 +470,15 @@
],
"com.google.guava:guava:src/com/google/common/collect/MapMaker.java": [
504,
+507,
+508,
518,
+583,
+584,
779
],
"com.google.guava:guava:src/com/google/common/collect/MapMakerInternalMap.java": [
+216,
301,
314,
327,
@@ -453,6 +493,11 @@
1710,
1749,
1889,
+2098,
+2101,
+2104,
+2108,
+2112,
2117,
2366,
3370
@@ -486,6 +531,11 @@
1817,
1823,
1981,
+2179,
+2481,
+2528,
+2570,
+2607,
2616,
2670,
2841,
@@ -513,6 +563,7 @@
220,
413,
417,
+443,
542,
805,
806
@@ -545,6 +596,8 @@
1836,
1875,
1878,
+1991,
+2028,
2042,
2056
],
@@ -562,6 +615,7 @@
56
],
"com.google.guava:guava:src/com/google/common/collect/Ordering.java": [
+167,
203,
374,
385,
@@ -600,38 +654,49 @@
298
],
"com.google.guava:guava:src/com/google/common/collect/RegularContiguousSet.java": [
-58
+47,
+58,
+147
],
"com.google.guava:guava:src/com/google/common/collect/RegularImmutableBiMap.java": [
41,
+96,
98,
-106
+106,
+138
],
"com.google.guava:guava:src/com/google/common/collect/RegularImmutableList.java": [
31,
72
],
"com.google.guava:guava:src/com/google/common/collect/RegularImmutableMap.java": [
+78,
80,
86,
149
],
"com.google.guava:guava:src/com/google/common/collect/RegularImmutableMultiset.java": [
39,
+79,
81
],
"com.google.guava:guava:src/com/google/common/collect/RegularImmutableSet.java": [
-32
+32,
+85
],
"com.google.guava:guava:src/com/google/common/collect/RegularImmutableSortedMultiset.java": [
115
],
"com.google.guava:guava:src/com/google/common/collect/RegularImmutableSortedSet.java": [
-263
+263,
+285,
+293
],
"com.google.guava:guava:src/com/google/common/collect/RegularImmutableTable.java": [
143,
-144
+144,
+163,
+164
],
"com.google.guava:guava:src/com/google/common/collect/Serialization.java": [
197
@@ -639,6 +704,7 @@
"com.google.guava:guava:src/com/google/common/collect/Sets.java": [
165,
200,
+223,
292,
311,
328,
@@ -688,6 +754,8 @@
102,
210,
244,
+304,
+305,
416,
511,
656,
@@ -703,10 +771,12 @@
1323,
1340,
1512,
+1564,
1618
],
"com.google.guava:guava:src/com/google/common/collect/Tables.java": [
67,
+142,
302,
334,
455,
@@ -731,6 +801,8 @@
],
"com.google.guava:guava:src/com/google/common/collect/TreeMultiset.java": [
74,
+92,
+93,
125,
127,
254,
@@ -899,6 +971,8 @@
],
"com.google.guava:guava:src/com/google/common/util/concurrent/Striped.java": [
199,
+223,
+224,
236,
267,
345,
diff --git a/its/ruling/src/test/resources/guava/java-S2638.json b/its/ruling/src/test/resources/guava/java-S2638.json
index 19147a289a3..15cb2278d1c 100644
--- a/its/ruling/src/test/resources/guava/java-S2638.json
+++ b/its/ruling/src/test/resources/guava/java-S2638.json
@@ -44,7 +44,7 @@
44
],
"com.google.guava:guava:src/com/google/common/collect/Collections2.java": [
-305
+304
],
"com.google.guava:guava:src/com/google/common/collect/ComparatorOrdering.java": [
38,
diff --git a/its/ruling/src/test/resources/guava/java-S2972.json b/its/ruling/src/test/resources/guava/java-S2972.json
index bf14b1bc4eb..1f343ea78bd 100644
--- a/its/ruling/src/test/resources/guava/java-S2972.json
+++ b/its/ruling/src/test/resources/guava/java-S2972.json
@@ -134,11 +134,11 @@
134
],
"com.google.guava:guava:src/com/google/common/collect/Collections2.java": [
-134,
-415,
-490,
-568,
-605
+133,
+414,
+489,
+567,
+604
],
"com.google.guava:guava:src/com/google/common/collect/ComparisonChain.java": [
78,
diff --git a/its/ruling/src/test/resources/guava/java-S3398.json b/its/ruling/src/test/resources/guava/java-S3398.json
index 750a1224e97..ed7f9f009c3 100644
--- a/its/ruling/src/test/resources/guava/java-S3398.json
+++ b/its/ruling/src/test/resources/guava/java-S3398.json
@@ -4,7 +4,7 @@
1135
],
"com.google.guava:guava:src/com/google/common/collect/Collections2.java": [
-680
+679
],
"com.google.guava:guava:src/com/google/common/collect/Constraints.java": [
281
diff --git a/its/ruling/src/test/resources/guava/java-S3551.json b/its/ruling/src/test/resources/guava/java-S3551.json
deleted file mode 100644
index b1a118df0ab..00000000000
--- a/its/ruling/src/test/resources/guava/java-S3551.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-"com.google.guava:guava:src/com/google/common/hash/HashingInputStream.java": [
-88,
-95
-]
-}
diff --git a/its/ruling/src/test/resources/guava/java-S4065.json b/its/ruling/src/test/resources/guava/java-S4065.json
new file mode 100644
index 00000000000..321d19e0784
--- /dev/null
+++ b/its/ruling/src/test/resources/guava/java-S4065.json
@@ -0,0 +1,12 @@
+{
+"com.google.guava:guava:src/com/google/common/escape/Platform.java": [
+40
+],
+"com.google.guava:guava:src/com/google/common/eventbus/Dispatcher.java": [
+88,
+99
+],
+"com.google.guava:guava:src/com/google/common/util/concurrent/CycleDetectingLockFactory.java": [
+496
+]
+}
diff --git a/its/ruling/src/test/resources/guava/java-S4738.json b/its/ruling/src/test/resources/guava/java-S4738.json
new file mode 100644
index 00000000000..348f09bc590
--- /dev/null
+++ b/its/ruling/src/test/resources/guava/java-S4738.json
@@ -0,0 +1,455 @@
+{
+"com.google.guava:guava:src/com/google/common/base/Absent.java": [
+59,
+64,
+81,
+83
+],
+"com.google.guava:guava:src/com/google/common/base/CharMatcher.java": [
+372,
+1804,
+1806
+],
+"com.google.guava:guava:src/com/google/common/base/Converter.java": [
+403,
+404,
+410,
+411,
+414,
+415
+],
+"com.google.guava:guava:src/com/google/common/base/Equivalence.java": [
+141
+],
+"com.google.guava:guava:src/com/google/common/base/FunctionalEquivalence.java": [
+40,
+43
+],
+"com.google.guava:guava:src/com/google/common/base/Functions.java": [
+212,
+212,
+217,
+218,
+220,
+220,
+259,
+265,
+267,
+349,
+356,
+358
+],
+"com.google.guava:guava:src/com/google/common/base/Optional.java": [
+124,
+195,
+209,
+251,
+307
+],
+"com.google.guava:guava:src/com/google/common/base/Platform.java": [
+44,
+45
+],
+"com.google.guava:guava:src/com/google/common/base/Predicates.java": [
+94,
+130,
+130,
+166,
+166,
+235,
+235,
+327,
+329,
+596,
+597,
+599,
+599,
+696,
+696
+],
+"com.google.guava:guava:src/com/google/common/base/Present.java": [
+56,
+62,
+78
+],
+"com.google.guava:guava:src/com/google/common/base/Suppliers.java": [
+51,
+51,
+58,
+59,
+61,
+61,
+107,
+115,
+121,
+168,
+174,
+180,
+267,
+272,
+274,
+313
+],
+"com.google.guava:guava:src/com/google/common/cache/CacheBuilder.java": [
+158,
+182,
+238
+],
+"com.google.guava:guava:src/com/google/common/cache/CacheLoader.java": [
+135,
+141,
+143,
+164,
+209,
+211
+],
+"com.google.guava:guava:src/com/google/common/cache/LongAddables.java": [
+32,
+35
+],
+"com.google.guava:guava:src/com/google/common/collect/BinaryTreeTraverser.java": [
+71,
+78,
+207
+],
+"com.google.guava:guava:src/com/google/common/collect/ByFunctionOrdering.java": [
+35,
+38
+],
+"com.google.guava:guava:src/com/google/common/collect/Collections2.java": [
+91,
+135,
+137,
+142,
+243,
+249,
+251
+],
+"com.google.guava:guava:src/com/google/common/collect/ComputingConcurrentHashMap.java": [
+43,
+49,
+75,
+289,
+294,
+401,
+414
+],
+"com.google.guava:guava:src/com/google/common/collect/FilteredEntryMultimap.java": [
+49,
+51,
+89,
+149,
+395
+],
+"com.google.guava:guava:src/com/google/common/collect/FilteredEntrySetMultimap.java": [
+34
+],
+"com.google.guava:guava:src/com/google/common/collect/FilteredKeyListMultimap.java": [
+34
+],
+"com.google.guava:guava:src/com/google/common/collect/FilteredKeyMultimap.java": [
+42,
+44
+],
+"com.google.guava:guava:src/com/google/common/collect/FilteredKeySetMultimap.java": [
+36
+],
+"com.google.guava:guava:src/com/google/common/collect/FilteredMultimapValues.java": [
+63
+],
+"com.google.guava:guava:src/com/google/common/collect/FluentIterable.java": [
+205,
+224,
+233,
+245,
+258,
+275,
+290,
+291,
+309,
+311,
+315,
+325,
+331,
+456,
+479,
+510
+],
+"com.google.guava:guava:src/com/google/common/collect/GenericMapMaker.java": [
+149
+],
+"com.google.guava:guava:src/com/google/common/collect/Iterables.java": [
+171,
+179,
+206,
+232,
+582,
+620,
+628,
+641,
+655,
+669,
+684,
+702
+],
+"com.google.guava:guava:src/com/google/common/collect/Iterators.java": [
+238,
+662,
+700,
+709,
+731,
+747,
+764,
+767,
+768,
+787,
+807
+],
+"com.google.guava:guava:src/com/google/common/collect/Lists.java": [
+548,
+562,
+565,
+603,
+606
+],
+"com.google.guava:guava:src/com/google/common/collect/MapMaker.java": [
+581,
+830,
+833,
+873
+],
+"com.google.guava:guava:src/com/google/common/collect/Maps.java": [
+685,
+720,
+725,
+757,
+764,
+770,
+841,
+853,
+907,
+909,
+1109,
+1130,
+1169,
+1203,
+1547,
+1591,
+1638,
+1861,
+2131,
+2135,
+2169,
+2176,
+2215,
+2254,
+2287,
+2323,
+2365,
+2403,
+2437,
+2472,
+2518,
+2524,
+2566,
+2602,
+2615,
+2623,
+2626,
+2676,
+2679,
+2691,
+2715,
+2717,
+2718,
+2750,
+2806,
+2838,
+2839,
+2848,
+2941,
+2942,
+2956,
+2960,
+3087,
+3088,
+3097,
+3108,
+3115
+],
+"com.google.guava:guava:src/com/google/common/collect/MultimapBuilder.java": [
+213,
+417
+],
+"com.google.guava:guava:src/com/google/common/collect/Multimaps.java": [
+115,
+120,
+123,
+196,
+202,
+205,
+274,
+280,
+283,
+352,
+358,
+362,
+1111,
+1190,
+1322,
+1457,
+1505,
+1778,
+1827,
+1872,
+1914,
+1950,
+1984,
+2024,
+2039,
+2040,
+2053,
+2054
+],
+"com.google.guava:guava:src/com/google/common/collect/Multisets.java": [
+272,
+277,
+286,
+288
+],
+"com.google.guava:guava:src/com/google/common/collect/Ordering.java": [
+409
+],
+"com.google.guava:guava:src/com/google/common/collect/Platform.java": [
+80,
+87,
+94
+],
+"com.google.guava:guava:src/com/google/common/collect/Range.java": [
+117,
+129
+],
+"com.google.guava:guava:src/com/google/common/collect/Sets.java": [
+647,
+684,
+781,
+789,
+801,
+845,
+850,
+855,
+868,
+944,
+949,
+962
+],
+"com.google.guava:guava:src/com/google/common/collect/SortedLists.java": [
+202,
+222
+],
+"com.google.guava:guava:src/com/google/common/collect/StandardRowSortedTable.java": [
+59
+],
+"com.google.guava:guava:src/com/google/common/collect/StandardTable.java": [
+71,
+74,
+414
+],
+"com.google.guava:guava:src/com/google/common/collect/Tables.java": [
+239,
+298,
+333,
+340,
+343,
+418,
+428,
+494,
+525,
+574,
+591
+],
+"com.google.guava:guava:src/com/google/common/collect/TreeRangeMap.java": [
+532
+],
+"com.google.guava:guava:src/com/google/common/escape/Escaper.java": [
+89
+],
+"com.google.guava:guava:src/com/google/common/hash/ChecksumHashFunction.java": [
+31,
+35
+],
+"com.google.guava:guava:src/com/google/common/io/ByteSource.java": [
+129,
+160,
+183,
+524,
+526,
+528,
+576,
+732,
+734,
+738
+],
+"com.google.guava:guava:src/com/google/common/io/CharSource.java": [
+114,
+138,
+312,
+433,
+594,
+596,
+600
+],
+"com.google.guava:guava:src/com/google/common/io/Files.java": [
+132,
+134
+],
+"com.google.guava:guava:src/com/google/common/net/MediaType.java": [
+425,
+427
+],
+"com.google.guava:guava:src/com/google/common/reflect/ClassPath.java": [
+64
+],
+"com.google.guava:guava:src/com/google/common/reflect/Types.java": [
+60
+],
+"com.google.guava:guava:src/com/google/common/util/concurrent/AbstractIdleService.java": [
+40
+],
+"com.google.guava:guava:src/com/google/common/util/concurrent/Callables.java": [
+62,
+91
+],
+"com.google.guava:guava:src/com/google/common/util/concurrent/CollectionFuture.java": [
+59
+],
+"com.google.guava:guava:src/com/google/common/util/concurrent/Futures.java": [
+132,
+545,
+592,
+831,
+835,
+1225,
+1271,
+1304,
+1451,
+1456,
+2087,
+2103,
+2106
+],
+"com.google.guava:guava:src/com/google/common/util/concurrent/MoreExecutors.java": [
+849,
+877,
+908
+],
+"com.google.guava:guava:src/com/google/common/util/concurrent/Striped.java": [
+221,
+282,
+316,
+343,
+347,
+412,
+415
+]
+}
diff --git a/its/ruling/src/test/resources/guava/java-S5738.json b/its/ruling/src/test/resources/guava/java-S5738.json
index 65aa83c71f6..62c10c54d7e 100644
--- a/its/ruling/src/test/resources/guava/java-S5738.json
+++ b/its/ruling/src/test/resources/guava/java-S5738.json
@@ -1,7 +1,15 @@
{
+"com.google.guava:guava:src/com/google/common/base/Throwables.java": [
+337,
+367,
+370
+],
"com.google.guava:guava:src/com/google/common/cache/Striped64.java": [
321
],
+"com.google.guava:guava:src/com/google/common/io/FileBackedOutputStream.java": [
+103
+],
"com.google.guava:guava:src/com/google/common/primitives/UnsignedBytes.java": [
364
],
diff --git a/its/sources b/its/sources
index 7d7535eef74..c581e479379 160000
--- a/its/sources
+++ b/its/sources
@@ -1 +1 @@
-Subproject commit 7d7535eef7433cf1634feb92819c0669234893bf
+Subproject commit c581e47937904f613681539c05d352a23e04e026