From 3cbc67c3cd94be208bd47afea53db81d41803260 Mon Sep 17 00:00:00 2001 From: akwizgran Date: Thu, 7 Sep 2023 15:12:41 +0100 Subject: [PATCH] Upgrade H2 to 2.2.220. Columns called "key" and "value" are no longer allowed. MVCC is mandatory. --- bramble-android/witness.gradle | 126 +++++++++--------- bramble-core/build.gradle | 4 +- .../briarproject/bramble/db/H2Database.java | 2 +- .../briarproject/bramble/db/JdbcDatabase.java | 31 ++--- .../db/H2TransactionIsolationTest.java | 113 +++------------- bramble-core/witness.gradle | 2 +- briar-android/build.gradle | 6 +- briar-android/witness.gradle | 16 +-- build.gradle | 3 +- gradle/wrapper/gradle-wrapper.properties | 4 +- 10 files changed, 115 insertions(+), 192 deletions(-) diff --git a/bramble-android/witness.gradle b/bramble-android/witness.gradle index efd5e9f26..e08882f40 100644 --- a/bramble-android/witness.gradle +++ b/bramble-android/witness.gradle @@ -1,67 +1,67 @@ dependencyVerification { verify = [ - 'androidx.annotation:annotation:1.5.0:annotation-1.5.0.jar:261fb7c0210858500bab66d34354972a75166ab4182add283780b05513d6ec4a', - 'cglib:cglib:3.2.8:cglib-3.2.8.jar:3f64de999ecc5595dc84ca8ff0879d8a34c8623f9ef3c517a53ed59023fcb9db', - 'com.google.code.findbugs:annotations:3.0.1:annotations-3.0.1.jar:6b47ff0a6de0ce17cbedc3abb0828ca5bce3009d53ea47b3723ff023c4742f79', - 'com.google.code.findbugs:jsr305:3.0.2:jsr305-3.0.2.jar:766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7', - 'com.google.dagger:dagger-compiler:2.45:dagger-compiler-2.45.jar:5617dfb994537dba5b41f3744a6dd13ec3cd99789c065e0d5c6fa9f21cf7ca25', - 'com.google.dagger:dagger-producers:2.45:dagger-producers-2.45.jar:a05abb4c3ccf6bb0f056bdcb5ef973898ecf172952ab5948a824aeea6c86ecaa', - 'com.google.dagger:dagger-spi:2.45:dagger-spi-2.45.jar:7cd6f0b09d88e64a9c97bc80e544ab8ac8fdee9301754413585a74cf64222b27', - 'com.google.dagger:dagger:2.45:dagger-2.45.jar:f011cae7d2c0fb7ea17c34e05bc10e768b1081a5892ad019cf1fdb0e125c49c1', - 'com.google.devtools.ksp:symbol-processing-api:1.7.0-1.0.6:symbol-processing-api-1.7.0-1.0.6.jar:adc29417be5ca9ff42118105fea4e36d9ef44987abfc41432309371a60198941', - 'com.google.errorprone:error_prone_annotations:2.7.1:error_prone_annotations-2.7.1.jar:cd5257c08a246cf8628817ae71cb822be192ef91f6881ca4a3fcff4f1de1cff3', - 'com.google.errorprone:javac-shaded:9-dev-r4023-3:javac-shaded-9-dev-r4023-3.jar:65bfccf60986c47fbc17c9ebab0be626afc41741e0a6ec7109e0768817a36f30', - 'com.google.googlejavaformat:google-java-format:1.5:google-java-format-1.5.jar:aa19ad7850fb85178aa22f2fddb163b84d6ce4d0035872f30d4408195ca1144e', - 'com.google.guava:failureaccess:1.0.1:failureaccess-1.0.1.jar:a171ee4c734dd2da837e4b16be9df4661afab72a41adaf31eb84dfdaf936ca26', - 'com.google.guava:guava:31.0.1-jre:guava-31.0.1-jre.jar:d5be94d65e87bd219fb3193ad1517baa55a3b88fc91d21cf735826ab5af087b9', - 'com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava:listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar:b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99', - 'com.google.j2objc:j2objc-annotations:1.3:j2objc-annotations-1.3.jar:21af30c92267bd6122c0e0b4d20cccb6641a37eaf956c6540ec471d584e64a7b', - 'com.squareup:javapoet:1.13.0:javapoet-1.13.0.jar:4c7517e848a71b36d069d12bb3bf46a70fd4cda3105d822b0ed2e19c00b69291', - 'com.squareup:kotlinpoet:1.11.0:kotlinpoet-1.11.0.jar:2887ada1ca03dd83baa2758640d87e840d1907564db0ef88d2289c868a980492', - 'javax.annotation:jsr250-api:1.0:jsr250-api-1.0.jar:a1a922d0d9b6d183ed3800dfac01d1e1eb159f0e8c6f94736931c1def54a941f', - 'javax.inject:javax.inject:1:javax.inject-1.jar:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff', - 'junit:junit:4.13.2:junit-4.13.2.jar:8e495b634469d64fb8acfa3495a065cbacc8a0fff55ce1e31007be4c16dc57d3', - 'net.bytebuddy:byte-buddy:1.9.12:byte-buddy-1.9.12.jar:3688c3d434bebc3edc5516296a2ed0f47b65e451071b4afecad84f902f0efc11', - 'net.jcip:jcip-annotations:1.0:jcip-annotations-1.0.jar:be5805392060c71474bf6c9a67a099471274d30b83eef84bfc4e0889a4f1dcc0', - 'net.ltgt.gradle.incap:incap:0.2:incap-0.2.jar:b625b9806b0f1e4bc7a2e3457119488de3cd57ea20feedd513db070a573a4ffd', - 'org.apache-extras.beanshell:bsh:2.0b6:bsh-2.0b6.jar:a17955976070c0573235ee662f2794a78082758b61accffce8d3f8aedcd91047', - 'org.briarproject:dont-kill-me-lib:0.2.7:dont-kill-me-lib-0.2.7.aar:8a9540941fd927e1c127096a7a9b4aa61ce2f2965d2e24f849be92f9e57213c4', - 'org.briarproject:jtorctl:0.5:jtorctl-0.5.jar:43f8c7d390169772b9a2c82ab806c8414c136a2a8636c555e22754bb7260793b', - 'org.briarproject:null-safety:0.1:null-safety-0.1.jar:161760de5e838cb982bafa973df820675d4397098e9a91637a36a306d43ba011', - 'org.briarproject:obfs4proxy-android:0.0.14-tor2:obfs4proxy-android-0.0.14-tor2.jar:a0a93770d6760ce57d9dbd31cc7177687374e00c3361dac22ab75e3b6e0f289e', - 'org.briarproject:onionwrapper-android:0.0.5:onionwrapper-android-0.0.5.aar:d761854dac454616b3e0ca099b2cd17060365ce4316afe495cc7ae86b6c81d15', - 'org.briarproject:onionwrapper-core:0.0.5:onionwrapper-core-0.0.5.jar:9071678323535cb3dfe0f3add96066037db43ea024333eba0117c759bcbd8d63', - 'org.briarproject:snowflake-android:2.5.1:snowflake-android-2.5.1.jar:88ec81c17b1b6fa884d06839dec0330e328b45c89f88c970a213ce91ca8eac87', - 'org.briarproject:tor-android:0.4.7.14:tor-android-0.4.7.14.jar:d39faa3a8abb116136c191c6ebadf8ea0e1f3e4785076d2c66a7b3b0f26988a2', - 'org.checkerframework:checker-compat-qual:2.5.5:checker-compat-qual-2.5.5.jar:11d134b245e9cacc474514d2d66b5b8618f8039a1465cdc55bbc0b34e0008b7a', - 'org.checkerframework:checker-qual:3.12.0:checker-qual-3.12.0.jar:ff10785ac2a357ec5de9c293cb982a2cbb605c0309ea4cc1cb9b9bc6dbe7f3cb', - 'org.hamcrest:hamcrest-core:2.1:hamcrest-core-2.1.jar:e09109e54a289d88506b9bfec987ddd199f4217c9464132668351b9a4f00bee9', - 'org.hamcrest:hamcrest-library:2.1:hamcrest-library-2.1.jar:b7e2b6895b3b679f0e47b6380fda391b225e9b78505db9d8bdde8d3cc8d52a21', - 'org.hamcrest:hamcrest:2.1:hamcrest-2.1.jar:ba93b2e3a562322ba432f0a1b53addcc55cb188253319a020ed77f824e692050', - 'org.jacoco:org.jacoco.agent:0.8.7:org.jacoco.agent-0.8.7.jar:9cbcc986e0fbe821a78ff1f8f7d5216f200e5eb124e7f6837d1dc4a77b28b143', - 'org.jacoco:org.jacoco.ant:0.8.7:org.jacoco.ant-0.8.7.jar:97ca96a382c3f23a44d8eb4c4e6c3742a30cb8005774a76ced0fc4806ce49605', - 'org.jacoco:org.jacoco.core:0.8.7:org.jacoco.core-0.8.7.jar:ad7739b5fb5969aa1a8aead3d74ed54dc82ed012f1f10f336bd1b96e71c1a13c', - 'org.jacoco:org.jacoco.report:0.8.7:org.jacoco.report-0.8.7.jar:cc89258623700a6c932592153cb528785876b6da183d5431f97efbba6f020e5b', - 'org.jetbrains.kotlin:kotlin-reflect:1.6.10:kotlin-reflect-1.6.10.jar:3277ac102ae17aad10a55abec75ff5696c8d109790396434b496e75087854203', - 'org.jetbrains.kotlin:kotlin-stdlib-common:1.7.0:kotlin-stdlib-common-1.7.0.jar:59c6ff64fe9a6604afce03e8aaa75f83586c6030ac71fb0b34ee7cdefed3618f', - 'org.jetbrains.kotlin:kotlin-stdlib-common:1.8.0:kotlin-stdlib-common-1.8.0.jar:78ef93b59e603cc0fe51def9bd4c037b07cbace3b3b7806d1a490a42bc1f4cb2', - 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.0:kotlin-stdlib-jdk7-1.7.0.jar:07e91be9b2ca20672d2bdb7e181b766e73453a2da13492b5ddaee8fa47aea239', - 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0:kotlin-stdlib-jdk7-1.8.0.jar:4c889d1d9803f5f2eb6c1592a6b7e62369ac7660c9eee15aba16fec059163666', - 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.0:kotlin-stdlib-jdk8-1.7.0.jar:cf058e11db1dfc9944680c8c61b95ac689aaaa8a3eb30bced028100f038f030b', - 'org.jetbrains.kotlin:kotlin-stdlib:1.7.0:kotlin-stdlib-1.7.0.jar:aa88e9625577957f3249a46cb6e166ee09b369e600f7a11d148d16b0a6d87f05', - 'org.jetbrains.kotlin:kotlin-stdlib:1.8.0:kotlin-stdlib-1.8.0.jar:c77bef8774640b9fb9d6e217459ff220dae59878beb7d2e4b430506feffc654e', - 'org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.5.0:kotlinx-metadata-jvm-0.5.0.jar:ca063a96639b08b9eaa0de4d65e899480740a6efbe28ab9a8681a2ced03055a4', - 'org.jetbrains:annotations:13.0:annotations-13.0.jar:ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478', - 'org.jmock:jmock-imposters:2.12.0:jmock-imposters-2.12.0.jar:3b836269745a137c9b2347e8d7c2104845b126ef04f012d6bfd94f1a7dea7b09', - 'org.jmock:jmock-junit4:2.12.0:jmock-junit4-2.12.0.jar:3233062fc889637c151a24f1ee086bad04321ab7d8264fef279daff0fa27205b', - 'org.jmock:jmock-legacy:2.12.0:jmock-legacy-2.12.0.jar:dea3a9cca653d082e2fe7e40232e982fe03a9984c7d67ceff24f3e03fe580dcd', - 'org.jmock:jmock-testjar:2.12.0:jmock-testjar-2.12.0.jar:efefbcf6cd294d0e29f0c46eb2a3380d4ca4e1763ff719c69e2f2ac62f564a04', - 'org.jmock:jmock:2.12.0:jmock-2.12.0.jar:266d07314c0cd343c46ff8a55601272de8cf406807caf55e6f313295f83d10be', - 'org.objenesis:objenesis:3.0.1:objenesis-3.0.1.jar:7a8ff780b9ff48415d7c705f60030b0acaa616e7f823c98eede3b63508d4e984', - 'org.ow2.asm:asm-analysis:9.1:asm-analysis-9.1.jar:81a88041b1b8beda5a8a99646098046c48709538270c49def68abff25ac3be34', - 'org.ow2.asm:asm-commons:9.1:asm-commons-9.1.jar:afcb26dc1fc12c0c4a99ada670908dd82e18dfc488caf5ee92546996b470c00c', - 'org.ow2.asm:asm-tree:9.1:asm-tree-9.1.jar:fd00afa49e9595d7646205b09cecb4a776a8ff0ba06f2d59b8f7bf9c704b4a73', - 'org.ow2.asm:asm:7.1:asm-7.1.jar:4ab2fa2b6d2cc9ccb1eaa05ea329c407b47b13ed2915f62f8c4b8cc96258d4de', - 'org.ow2.asm:asm:9.1:asm-9.1.jar:cda4de455fab48ff0bcb7c48b4639447d4de859a7afc30a094a986f0936beba2', + 'androidx.annotation:annotation:1.5.0:annotation-1.5.0.jar:261fb7c0210858500bab66d34354972a75166ab4182add283780b05513d6ec4a', + 'cglib:cglib:3.2.8:cglib-3.2.8.jar:3f64de999ecc5595dc84ca8ff0879d8a34c8623f9ef3c517a53ed59023fcb9db', + 'com.google.code.findbugs:annotations:3.0.1:annotations-3.0.1.jar:6b47ff0a6de0ce17cbedc3abb0828ca5bce3009d53ea47b3723ff023c4742f79', + 'com.google.code.findbugs:jsr305:3.0.2:jsr305-3.0.2.jar:766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7', + 'com.google.dagger:dagger-compiler:2.45:dagger-compiler-2.45.jar:5617dfb994537dba5b41f3744a6dd13ec3cd99789c065e0d5c6fa9f21cf7ca25', + 'com.google.dagger:dagger-producers:2.45:dagger-producers-2.45.jar:a05abb4c3ccf6bb0f056bdcb5ef973898ecf172952ab5948a824aeea6c86ecaa', + 'com.google.dagger:dagger-spi:2.45:dagger-spi-2.45.jar:7cd6f0b09d88e64a9c97bc80e544ab8ac8fdee9301754413585a74cf64222b27', + 'com.google.dagger:dagger:2.45:dagger-2.45.jar:f011cae7d2c0fb7ea17c34e05bc10e768b1081a5892ad019cf1fdb0e125c49c1', + 'com.google.devtools.ksp:symbol-processing-api:1.7.0-1.0.6:symbol-processing-api-1.7.0-1.0.6.jar:adc29417be5ca9ff42118105fea4e36d9ef44987abfc41432309371a60198941', + 'com.google.errorprone:error_prone_annotations:2.7.1:error_prone_annotations-2.7.1.jar:cd5257c08a246cf8628817ae71cb822be192ef91f6881ca4a3fcff4f1de1cff3', + 'com.google.errorprone:javac-shaded:9-dev-r4023-3:javac-shaded-9-dev-r4023-3.jar:65bfccf60986c47fbc17c9ebab0be626afc41741e0a6ec7109e0768817a36f30', + 'com.google.googlejavaformat:google-java-format:1.5:google-java-format-1.5.jar:aa19ad7850fb85178aa22f2fddb163b84d6ce4d0035872f30d4408195ca1144e', + 'com.google.guava:failureaccess:1.0.1:failureaccess-1.0.1.jar:a171ee4c734dd2da837e4b16be9df4661afab72a41adaf31eb84dfdaf936ca26', + 'com.google.guava:guava:31.0.1-jre:guava-31.0.1-jre.jar:d5be94d65e87bd219fb3193ad1517baa55a3b88fc91d21cf735826ab5af087b9', + 'com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava:listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar:b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99', + 'com.google.j2objc:j2objc-annotations:1.3:j2objc-annotations-1.3.jar:21af30c92267bd6122c0e0b4d20cccb6641a37eaf956c6540ec471d584e64a7b', + 'com.squareup:javapoet:1.13.0:javapoet-1.13.0.jar:4c7517e848a71b36d069d12bb3bf46a70fd4cda3105d822b0ed2e19c00b69291', + 'com.squareup:kotlinpoet:1.11.0:kotlinpoet-1.11.0.jar:2887ada1ca03dd83baa2758640d87e840d1907564db0ef88d2289c868a980492', + 'javax.annotation:jsr250-api:1.0:jsr250-api-1.0.jar:a1a922d0d9b6d183ed3800dfac01d1e1eb159f0e8c6f94736931c1def54a941f', + 'javax.inject:javax.inject:1:javax.inject-1.jar:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff', + 'junit:junit:4.13.2:junit-4.13.2.jar:8e495b634469d64fb8acfa3495a065cbacc8a0fff55ce1e31007be4c16dc57d3', + 'net.bytebuddy:byte-buddy:1.9.12:byte-buddy-1.9.12.jar:3688c3d434bebc3edc5516296a2ed0f47b65e451071b4afecad84f902f0efc11', + 'net.jcip:jcip-annotations:1.0:jcip-annotations-1.0.jar:be5805392060c71474bf6c9a67a099471274d30b83eef84bfc4e0889a4f1dcc0', + 'net.ltgt.gradle.incap:incap:0.2:incap-0.2.jar:b625b9806b0f1e4bc7a2e3457119488de3cd57ea20feedd513db070a573a4ffd', + 'org.apache-extras.beanshell:bsh:2.0b6:bsh-2.0b6.jar:a17955976070c0573235ee662f2794a78082758b61accffce8d3f8aedcd91047', + 'org.briarproject:dont-kill-me-lib:0.2.7:dont-kill-me-lib-0.2.7.aar:8a9540941fd927e1c127096a7a9b4aa61ce2f2965d2e24f849be92f9e57213c4', + 'org.briarproject:jtorctl:0.5:jtorctl-0.5.jar:43f8c7d390169772b9a2c82ab806c8414c136a2a8636c555e22754bb7260793b', + 'org.briarproject:null-safety:0.1:null-safety-0.1.jar:161760de5e838cb982bafa973df820675d4397098e9a91637a36a306d43ba011', + 'org.briarproject:obfs4proxy-android:0.0.14-tor2:obfs4proxy-android-0.0.14-tor2.jar:a0a93770d6760ce57d9dbd31cc7177687374e00c3361dac22ab75e3b6e0f289e', + 'org.briarproject:onionwrapper-android:0.0.5:onionwrapper-android-0.0.5.aar:d761854dac454616b3e0ca099b2cd17060365ce4316afe495cc7ae86b6c81d15', + 'org.briarproject:onionwrapper-core:0.0.5:onionwrapper-core-0.0.5.jar:9071678323535cb3dfe0f3add96066037db43ea024333eba0117c759bcbd8d63', + 'org.briarproject:snowflake-android:2.5.1:snowflake-android-2.5.1.jar:88ec81c17b1b6fa884d06839dec0330e328b45c89f88c970a213ce91ca8eac87', + 'org.briarproject:tor-android:0.4.7.14:tor-android-0.4.7.14.jar:d39faa3a8abb116136c191c6ebadf8ea0e1f3e4785076d2c66a7b3b0f26988a2', + 'org.checkerframework:checker-compat-qual:2.5.5:checker-compat-qual-2.5.5.jar:11d134b245e9cacc474514d2d66b5b8618f8039a1465cdc55bbc0b34e0008b7a', + 'org.checkerframework:checker-qual:3.12.0:checker-qual-3.12.0.jar:ff10785ac2a357ec5de9c293cb982a2cbb605c0309ea4cc1cb9b9bc6dbe7f3cb', + 'org.hamcrest:hamcrest-core:2.1:hamcrest-core-2.1.jar:e09109e54a289d88506b9bfec987ddd199f4217c9464132668351b9a4f00bee9', + 'org.hamcrest:hamcrest-library:2.1:hamcrest-library-2.1.jar:b7e2b6895b3b679f0e47b6380fda391b225e9b78505db9d8bdde8d3cc8d52a21', + 'org.hamcrest:hamcrest:2.1:hamcrest-2.1.jar:ba93b2e3a562322ba432f0a1b53addcc55cb188253319a020ed77f824e692050', + 'org.jacoco:org.jacoco.agent:0.8.8:org.jacoco.agent-0.8.8.jar:072ecbd496896623899a696fff12c01c1615f737616d2792e6d0e10cdf8a610d', + 'org.jacoco:org.jacoco.ant:0.8.8:org.jacoco.ant-0.8.8.jar:02e33bd2c48dc0be67c2fea84d43beececfd400da6797c58153253d4c30aca15', + 'org.jacoco:org.jacoco.core:0.8.8:org.jacoco.core-0.8.8.jar:474c782f809d88924713dfdbf0acb79d330f904be576484803463d0465611643', + 'org.jacoco:org.jacoco.report:0.8.8:org.jacoco.report-0.8.8.jar:2c129110f3e3fcaa1f8179578ea3894586199cb0826be5c7790278084c9622a9', + 'org.jetbrains.kotlin:kotlin-reflect:1.6.10:kotlin-reflect-1.6.10.jar:3277ac102ae17aad10a55abec75ff5696c8d109790396434b496e75087854203', + 'org.jetbrains.kotlin:kotlin-stdlib-common:1.7.0:kotlin-stdlib-common-1.7.0.jar:59c6ff64fe9a6604afce03e8aaa75f83586c6030ac71fb0b34ee7cdefed3618f', + 'org.jetbrains.kotlin:kotlin-stdlib-common:1.8.0:kotlin-stdlib-common-1.8.0.jar:78ef93b59e603cc0fe51def9bd4c037b07cbace3b3b7806d1a490a42bc1f4cb2', + 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.0:kotlin-stdlib-jdk7-1.7.0.jar:07e91be9b2ca20672d2bdb7e181b766e73453a2da13492b5ddaee8fa47aea239', + 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0:kotlin-stdlib-jdk7-1.8.0.jar:4c889d1d9803f5f2eb6c1592a6b7e62369ac7660c9eee15aba16fec059163666', + 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.0:kotlin-stdlib-jdk8-1.7.0.jar:cf058e11db1dfc9944680c8c61b95ac689aaaa8a3eb30bced028100f038f030b', + 'org.jetbrains.kotlin:kotlin-stdlib:1.7.0:kotlin-stdlib-1.7.0.jar:aa88e9625577957f3249a46cb6e166ee09b369e600f7a11d148d16b0a6d87f05', + 'org.jetbrains.kotlin:kotlin-stdlib:1.8.0:kotlin-stdlib-1.8.0.jar:c77bef8774640b9fb9d6e217459ff220dae59878beb7d2e4b430506feffc654e', + 'org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.5.0:kotlinx-metadata-jvm-0.5.0.jar:ca063a96639b08b9eaa0de4d65e899480740a6efbe28ab9a8681a2ced03055a4', + 'org.jetbrains:annotations:13.0:annotations-13.0.jar:ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478', + 'org.jmock:jmock-imposters:2.12.0:jmock-imposters-2.12.0.jar:3b836269745a137c9b2347e8d7c2104845b126ef04f012d6bfd94f1a7dea7b09', + 'org.jmock:jmock-junit4:2.12.0:jmock-junit4-2.12.0.jar:3233062fc889637c151a24f1ee086bad04321ab7d8264fef279daff0fa27205b', + 'org.jmock:jmock-legacy:2.12.0:jmock-legacy-2.12.0.jar:dea3a9cca653d082e2fe7e40232e982fe03a9984c7d67ceff24f3e03fe580dcd', + 'org.jmock:jmock-testjar:2.12.0:jmock-testjar-2.12.0.jar:efefbcf6cd294d0e29f0c46eb2a3380d4ca4e1763ff719c69e2f2ac62f564a04', + 'org.jmock:jmock:2.12.0:jmock-2.12.0.jar:266d07314c0cd343c46ff8a55601272de8cf406807caf55e6f313295f83d10be', + 'org.objenesis:objenesis:3.0.1:objenesis-3.0.1.jar:7a8ff780b9ff48415d7c705f60030b0acaa616e7f823c98eede3b63508d4e984', + 'org.ow2.asm:asm-analysis:9.2:asm-analysis-9.2.jar:878fbe521731c072d14d2d65b983b1beae6ad06fda0007b6a8bae81f73f433c4', + 'org.ow2.asm:asm-commons:9.2:asm-commons-9.2.jar:be4ce53138a238bb522cd781cf91f3ba5ce2f6ca93ec62d46a162a127225e0a6', + 'org.ow2.asm:asm-tree:9.2:asm-tree-9.2.jar:aabf9bd23091a4ebfc109c1f3ee7cf3e4b89f6ba2d3f51c5243f16b3cffae011', + 'org.ow2.asm:asm:7.1:asm-7.1.jar:4ab2fa2b6d2cc9ccb1eaa05ea329c407b47b13ed2915f62f8c4b8cc96258d4de', + 'org.ow2.asm:asm:9.2:asm-9.2.jar:b9d4fe4d71938df38839f0eca42aaaa64cf8b313d678da036f0cb3ca199b47f5', ] } diff --git a/bramble-core/build.gradle b/bramble-core/build.gradle index d4ecc5ff8..6559f3af0 100644 --- a/bramble-core/build.gradle +++ b/bramble-core/build.gradle @@ -14,7 +14,9 @@ dependencies { api "org.briarproject:onionwrapper-core:$onionwrapper_version" implementation "org.bouncycastle:bcprov-jdk15to18:$bouncy_castle_version" - implementation 'com.h2database:h2:1.4.200' // The last version that doesn't require NIO + // 2.2.222 includes a precompiled Java 21 class that breaks the jetifier, so it will require + // a Gradle/AGP upgrade + implementation 'com.h2database:h2:2.2.220' implementation 'org.bitlet:weupnp:0.1.4' implementation 'net.i2p.crypto:eddsa:0.2.0' implementation 'org.whispersystems:curve25519-java:0.5.0' diff --git a/bramble-core/src/main/java/org/briarproject/bramble/db/H2Database.java b/bramble-core/src/main/java/org/briarproject/bramble/db/H2Database.java index d5ba3ef32..fa9d79af4 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/db/H2Database.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/db/H2Database.java @@ -38,7 +38,7 @@ class H2Database extends JdbcDatabase { private static final String HASH_TYPE = "BINARY(32)"; private static final String SECRET_TYPE = "BINARY(32)"; - private static final String BINARY_TYPE = "BINARY"; + private static final String BINARY_TYPE = "BINARY VARYING"; private static final String COUNTER_TYPE = "INT NOT NULL AUTO_INCREMENT"; private static final String STRING_TYPE = "VARCHAR"; private static final DatabaseTypes dbTypes = new DatabaseTypes(HASH_TYPE, diff --git a/bramble-core/src/main/java/org/briarproject/bramble/db/JdbcDatabase.java b/bramble-core/src/main/java/org/briarproject/bramble/db/JdbcDatabase.java index 2c8052bc8..f933151d1 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/db/JdbcDatabase.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/db/JdbcDatabase.java @@ -117,7 +117,7 @@ abstract class JdbcDatabase implements Database { "CREATE TABLE settings" + " (namespace _STRING NOT NULL," + " settingKey _STRING NOT NULL," - + " value _STRING NOT NULL," + + " settingValue _STRING NOT NULL," + " PRIMARY KEY (namespace, settingKey))"; private static final String CREATE_LOCAL_AUTHORS = @@ -143,7 +143,7 @@ abstract class JdbcDatabase implements Database { + " handshakePublicKey _BINARY," // Null if key is unknown + " localAuthorId _HASH NOT NULL," + " verified BOOLEAN NOT NULL," - + " syncVersions _BINARY DEFAULT '00' NOT NULL," + + " syncVersions _BINARY DEFAULT X'00' NOT NULL," + " PRIMARY KEY (contactId)," + " FOREIGN KEY (localAuthorId)" + " REFERENCES localAuthors (authorId)" @@ -161,7 +161,7 @@ abstract class JdbcDatabase implements Database { "CREATE TABLE groupMetadata" + " (groupId _HASH NOT NULL," + " metaKey _STRING NOT NULL," - + " value _BINARY NOT NULL," + + " metaValue _BINARY NOT NULL," + " PRIMARY KEY (groupId, metaKey)," + " FOREIGN KEY (groupId)" + " REFERENCES groups (groupId)" @@ -206,7 +206,7 @@ abstract class JdbcDatabase implements Database { + " groupId _HASH NOT NULL," // Denormalised + " state INT NOT NULL," // Denormalised + " metaKey _STRING NOT NULL," - + " value _BINARY NOT NULL," + + " metaValue _BINARY NOT NULL," + " PRIMARY KEY (messageId, metaKey)," + " FOREIGN KEY (messageId)" + " REFERENCES messages (messageId)" @@ -1926,7 +1926,7 @@ abstract class JdbcDatabase implements Database { Set intersection = null; String sql = "SELECT messageId FROM messageMetadata" + " WHERE groupId = ? AND state = ?" - + " AND metaKey = ? AND value = ?"; + + " AND metaKey = ? AND metaValue = ?"; for (Entry e : query.entrySet()) { ps = txn.prepareStatement(sql); ps.setBytes(1, g.getBytes()); @@ -1982,7 +1982,7 @@ abstract class JdbcDatabase implements Database { PreparedStatement ps = null; ResultSet rs = null; try { - String sql = "SELECT messageId, metaKey, value" + String sql = "SELECT messageId, metaKey, metaValue" + " FROM messageMetadata" + " WHERE groupId = ? AND state = ?"; ps = txn.prepareStatement(sql); @@ -2027,7 +2027,7 @@ abstract class JdbcDatabase implements Database { PreparedStatement ps = null; ResultSet rs = null; try { - String sql = "SELECT metaKey, value FROM groupMetadata" + String sql = "SELECT metaKey, metaValue FROM groupMetadata" + " WHERE groupId = ?"; ps = txn.prepareStatement(sql); ps.setBytes(1, g.getBytes()); @@ -2050,7 +2050,7 @@ abstract class JdbcDatabase implements Database { PreparedStatement ps = null; ResultSet rs = null; try { - String sql = "SELECT metaKey, value FROM messageMetadata" + String sql = "SELECT metaKey, metaValue FROM messageMetadata" + " WHERE state = ? AND messageId = ?"; ps = txn.prepareStatement(sql); ps.setInt(1, DELIVERED.getValue()); @@ -2074,7 +2074,7 @@ abstract class JdbcDatabase implements Database { PreparedStatement ps = null; ResultSet rs = null; try { - String sql = "SELECT metaKey, value FROM messageMetadata" + String sql = "SELECT metaKey, metaValue FROM messageMetadata" + " WHERE (state = ? OR state = ?)" + " AND messageId = ?"; ps = txn.prepareStatement(sql); @@ -2678,7 +2678,7 @@ abstract class JdbcDatabase implements Database { PreparedStatement ps = null; ResultSet rs = null; try { - String sql = "SELECT settingKey, value FROM settings" + String sql = "SELECT settingKey, settingValue FROM settings" + " WHERE namespace = ?"; ps = txn.prepareStatement(sql); ps.setString(1, namespace); @@ -2914,7 +2914,8 @@ abstract class JdbcDatabase implements Database { g.getBytes(), meta, "groupMetadata", "groupId"); if (added.isEmpty()) return; // Insert any keys that don't already exist - String sql = "INSERT INTO groupMetadata (groupId, metaKey, value)" + String sql = "INSERT INTO groupMetadata" + + " (groupId, metaKey, metaValue)" + " VALUES (?, ?, ?)"; ps = txn.prepareStatement(sql); ps.setBytes(1, g.getBytes()); @@ -2957,7 +2958,7 @@ abstract class JdbcDatabase implements Database { ps.close(); // Insert any keys that don't already exist sql = "INSERT INTO messageMetadata" - + " (messageId, groupId, state, metaKey, value)" + + " (messageId, groupId, state, metaKey, metaValue)" + " VALUES (?, ?, ?, ?, ?)"; ps = txn.prepareStatement(sql); ps.setBytes(1, m.getBytes()); @@ -3016,7 +3017,7 @@ abstract class JdbcDatabase implements Database { } if (notRemoved.isEmpty()) return Collections.emptyMap(); // Update any keys that already exist - String sql = "UPDATE " + tableName + " SET value = ?" + String sql = "UPDATE " + tableName + " SET metaValue = ?" + " WHERE " + columnName + " = ? AND metaKey = ?"; ps = txn.prepareStatement(sql); ps.setBytes(2, id); @@ -3053,7 +3054,7 @@ abstract class JdbcDatabase implements Database { PreparedStatement ps = null; try { // Update any settings that already exist - String sql = "UPDATE settings SET value = ?" + String sql = "UPDATE settings SET settingValue = ?" + " WHERE namespace = ? AND settingKey = ?"; ps = txn.prepareStatement(sql); for (Entry e : s.entrySet()) { @@ -3069,7 +3070,7 @@ abstract class JdbcDatabase implements Database { if (rows > 1) throw new DbStateException(); } // Insert any settings that don't already exist - sql = "INSERT INTO settings (namespace, settingKey, value)" + sql = "INSERT INTO settings (namespace, settingKey, settingValue)" + " VALUES (?, ?, ?)"; ps = txn.prepareStatement(sql); int updateIndex = 0, inserted = 0; diff --git a/bramble-core/src/test/java/org/briarproject/bramble/db/H2TransactionIsolationTest.java b/bramble-core/src/test/java/org/briarproject/bramble/db/H2TransactionIsolationTest.java index f79b1ccbe..9683e5a2a 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/db/H2TransactionIsolationTest.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/db/H2TransactionIsolationTest.java @@ -23,21 +23,18 @@ public class H2TransactionIsolationTest extends BrambleTestCase { private static final String DROP_TABLE = "DROP TABLE foo IF EXISTS"; private static final String CREATE_TABLE = "CREATE TABLE foo" - + " (key INT NOT NULL," + + " (_key INT NOT NULL," + " counter INT NOT NULL)"; private static final String INSERT_ROW = - "INSERT INTO foo (key, counter) VALUES (1, 123)"; + "INSERT INTO foo (_key, counter) VALUES (1, 123)"; private static final String GET_COUNTER = - "SELECT counter FROM foo WHERE key = 1"; + "SELECT counter FROM foo WHERE _key = 1"; private static final String SET_COUNTER = - "UPDATE foo SET counter = ? WHERE key = 1"; + "UPDATE foo SET counter = ? WHERE _key = 1"; private final File testDir = TestUtils.getTestDirectory(); private final File db = new File(testDir, "db"); - private final String withMvcc = "jdbc:h2:split:" + db.getAbsolutePath() - + ";MV_STORE=TRUE"; - private final String withoutMvcc = "jdbc:h2:split:" + db.getAbsolutePath() - + ";MV_STORE=FALSE;LOCK_MODE=1"; + private final String url = "jdbc:h2:split:" + db.getAbsolutePath(); @Before public void setUp() throws Exception { @@ -52,14 +49,14 @@ public class H2TransactionIsolationTest extends BrambleTestCase { @Test public void testDoesNotReadUncommittedWritesWithMvcc() throws Exception { - Connection connection = openConnection(true); + Connection connection = openConnection(); try { createTableAndInsertRow(connection); } finally { connection.close(); } // Start the first transaction - Connection txn1 = openConnection(true); + Connection txn1 = openConnection(); try { txn1.setAutoCommit(false); // The first transaction should read the initial value @@ -67,7 +64,7 @@ public class H2TransactionIsolationTest extends BrambleTestCase { // The first transaction updates the value but doesn't commit it assertEquals(1, setCounter(txn1, 234)); // Start the second transaction - Connection txn2 = openConnection(true); + Connection txn2 = openConnection(); try { txn2.setAutoCommit(false); // The second transaction should still read the initial value @@ -86,14 +83,14 @@ public class H2TransactionIsolationTest extends BrambleTestCase { @Test public void testLastWriterWinsWithMvcc() throws Exception { - Connection connection = openConnection(true); + Connection connection = openConnection(); try { createTableAndInsertRow(connection); } finally { connection.close(); } // Start the first transaction - Connection txn1 = openConnection(true); + Connection txn1 = openConnection(); try { txn1.setAutoCommit(false); // The first transaction should read the initial value @@ -101,7 +98,7 @@ public class H2TransactionIsolationTest extends BrambleTestCase { // The first transaction updates the value but doesn't commit it assertEquals(1, setCounter(txn1, 234)); // Start the second transaction - Connection txn2 = openConnection(true); + Connection txn2 = openConnection(); try { txn2.setAutoCommit(false); // The second transaction should still read the initial value @@ -119,7 +116,7 @@ public class H2TransactionIsolationTest extends BrambleTestCase { txn1.close(); } // The second transaction was the last writer, so it should win - connection = openConnection(true); + connection = openConnection(); try { assertEquals(345, getCounter(connection)); } finally { @@ -129,20 +126,20 @@ public class H2TransactionIsolationTest extends BrambleTestCase { @Test public void testLockTimeoutOnRowWithMvcc() throws Exception { - Connection connection = openConnection(true); + Connection connection = openConnection(); try { createTableAndInsertRow(connection); } finally { connection.close(); } // Start the first transaction - Connection txn1 = openConnection(true); + Connection txn1 = openConnection(); try { txn1.setAutoCommit(false); // The first transaction should read the initial value assertEquals(123, getCounter(txn1)); // Start the second transaction - Connection txn2 = openConnection(true); + Connection txn2 = openConnection(); try { txn2.setAutoCommit(false); // The second transaction should read the initial value @@ -167,84 +164,8 @@ public class H2TransactionIsolationTest extends BrambleTestCase { } } - @Test - public void testReadLockTimeoutOnTableWithoutMvcc() throws Exception { - Connection connection = openConnection(false); - try { - createTableAndInsertRow(connection); - } finally { - connection.close(); - } - // Start the first transaction - Connection txn1 = openConnection(false); - try { - txn1.setAutoCommit(false); - // The first transaction should read the initial value - assertEquals(123, getCounter(txn1)); - // Start the second transaction - Connection txn2 = openConnection(false); - try { - txn2.setAutoCommit(false); - // The second transaction should read the initial value - assertEquals(123, getCounter(txn2)); - // The first transaction tries to update the value - try { - setCounter(txn1, 345); - fail(); - } catch (SQLException expected) { - // Expected: the table is locked by the second transaction - } - // Abort the transactions - txn1.rollback(); - txn2.rollback(); - } finally { - txn2.close(); - } - } finally { - txn1.close(); - } - } - - @Test - public void testWriteLockTimeoutOnTableWithoutMvcc() throws Exception { - Connection connection = openConnection(false); - try { - createTableAndInsertRow(connection); - } finally { - connection.close(); - } - // Start the first transaction - Connection txn1 = openConnection(false); - try { - txn1.setAutoCommit(false); - // The first transaction should read the initial value - assertEquals(123, getCounter(txn1)); - // The first transaction updates the value but doesn't commit yet - assertEquals(1, setCounter(txn1, 345)); - // Start the second transaction - Connection txn2 = openConnection(false); - try { - txn2.setAutoCommit(false); - // The second transaction tries to read the value - try { - getCounter(txn2); - fail(); - } catch (SQLException expected) { - // Expected: the table is locked by the first transaction - } - // Abort the transactions - txn1.rollback(); - txn2.rollback(); - } finally { - txn2.close(); - } - } finally { - txn1.close(); - } - } - - private Connection openConnection(boolean mvcc) throws SQLException { - return DriverManager.getConnection(mvcc ? withMvcc : withoutMvcc); + private Connection openConnection() throws SQLException { + return DriverManager.getConnection(url); } private void createTableAndInsertRow(Connection c) throws SQLException { diff --git a/bramble-core/witness.gradle b/bramble-core/witness.gradle index fec1934fc..9b77ff6bb 100644 --- a/bramble-core/witness.gradle +++ b/bramble-core/witness.gradle @@ -18,7 +18,7 @@ dependencyVerification { 'com.google.guava:guava:31.0.1-jre:guava-31.0.1-jre.jar:d5be94d65e87bd219fb3193ad1517baa55a3b88fc91d21cf735826ab5af087b9', 'com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava:listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar:b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99', 'com.google.j2objc:j2objc-annotations:1.3:j2objc-annotations-1.3.jar:21af30c92267bd6122c0e0b4d20cccb6641a37eaf956c6540ec471d584e64a7b', - 'com.h2database:h2:1.4.200:h2-1.4.200.jar:3ad9ac4b6aae9cd9d3ac1c447465e1ed06019b851b893dd6a8d76ddb6d85bca6', + 'com.h2database:h2:2.2.220:h2-2.2.220.jar:978ab863018d3f965e38880571c36293ea8b10a8086194159c4d5d20b50f0a57', 'com.squareup.okhttp3:mockwebserver:4.10.0:mockwebserver-4.10.0.jar:af29da234e63159d6e0dea43bf8288eea97d71cdf1651a5ee2d6c0d0d4adbf8f', 'com.squareup.okhttp3:okhttp:4.10.0:okhttp-4.10.0.jar:7580f14fa1691206e37081ad3f92063b1603b328da0bb316f2fef02e0562e7ec', 'com.squareup.okio:okio-jvm:3.0.0:okio-jvm-3.0.0.jar:be64a0cc1f28ea9cd5c970dd7e7557af72c808d738c495b397bf897c9921e907', diff --git a/briar-android/build.gradle b/briar-android/build.gradle index e03a3a66a..b2f7dbc68 100644 --- a/briar-android/build.gradle +++ b/briar-android/build.gradle @@ -98,6 +98,10 @@ android { } } +// Workaround for https://github.com/gradle/gradle/issues/20330 to make gradle-witness work +// with Android Gradle Plugin 7.4 +project.evaluationDependsOn(project.getRootProject().findProject("bramble-android").getPath()) + dependencies { // In theory this dependency shouldn't be needed, but without it Android Studio's linter will // complain about unresolved symbols for bramble-api test classes in briar-android tests, @@ -144,7 +148,7 @@ dependencies { compileOnly 'javax.annotation:jsr250-api:1.0' - coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5' + coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs_nio:2.0.3' testImplementation project(path: ':bramble-api', configuration: 'testOutput') testImplementation project(path: ':bramble-core', configuration: 'testOutput') diff --git a/briar-android/witness.gradle b/briar-android/witness.gradle index 9a71d79b5..e202a6696 100644 --- a/briar-android/witness.gradle +++ b/briar-android/witness.gradle @@ -87,8 +87,8 @@ dependencyVerification { 'androidx.window:window:1.0.0:window-1.0.0.aar:3212985be4127373ca4d0ea7f8b81a250ae2105e924f7940105d067a0f9ac130', 'cglib:cglib:3.2.8:cglib-3.2.8.jar:3f64de999ecc5595dc84ca8ff0879d8a34c8623f9ef3c517a53ed59023fcb9db', 'com.almworks.sqlite4java:sqlite4java:1.0.392:sqlite4java-1.0.392.jar:243a64470fda0e86a6fddeb0af4c7aa9426ce84e68cbfe18d75ee5da4b7e0b92', - 'com.android.tools:desugar_jdk_libs:1.1.5:desugar_jdk_libs-1.1.5.jar:52b390b038c5fd62b1ec697bdf5e236ac3286756667350e5466838edea9cb26e', - 'com.android.tools:desugar_jdk_libs_configuration:1.1.5:desugar_jdk_libs_configuration-1.1.5.jar:4ed1e921fd0ffcfeef2f10ce248f7725b139f593d4bc3549bf694b2e4d3f73a5', + 'com.android.tools:desugar_jdk_libs_configuration_nio:2.0.3:desugar_jdk_libs_configuration_nio-2.0.3.jar:1e46fd75ae4db46ae592a17afeda3865321492020847c16ec82b1d2026ed967a', + 'com.android.tools:desugar_jdk_libs_nio:2.0.3:desugar_jdk_libs_nio-2.0.3.jar:7f4e68385dfe88eba4344ff71912912bdc731806b9b2ce4a12bef9aa6a7d4565', 'com.github.bumptech.glide:annotations:4.14.2:annotations-4.14.2.jar:8419bf262be70edeb6b9582b386546be66d2e8659c7aae65fd69a9ede02c4877', 'com.github.bumptech.glide:compiler:4.14.2:compiler-4.14.2.jar:315b1325283c3d0cf9bc0599c1ecdb85e5f7863b1aa25991b63d616b13930cb6', 'com.github.bumptech.glide:gifdecoder:4.14.2:gifdecoder-4.14.2.aar:d021eee1ac1a036fcdc377b6dc3b218f4a0cc2bc2f096d69b474198b635e8302', @@ -150,10 +150,10 @@ dependencyVerification { 'org.hamcrest:hamcrest-library:1.3:hamcrest-library-1.3.jar:711d64522f9ec410983bd310934296da134be4254a125080a0416ec178dfad1c', 'org.hamcrest:hamcrest-library:2.1:hamcrest-library-2.1.jar:b7e2b6895b3b679f0e47b6380fda391b225e9b78505db9d8bdde8d3cc8d52a21', 'org.hamcrest:hamcrest:2.1:hamcrest-2.1.jar:ba93b2e3a562322ba432f0a1b53addcc55cb188253319a020ed77f824e692050', - 'org.jacoco:org.jacoco.agent:0.8.7:org.jacoco.agent-0.8.7.jar:9cbcc986e0fbe821a78ff1f8f7d5216f200e5eb124e7f6837d1dc4a77b28b143', - 'org.jacoco:org.jacoco.ant:0.8.7:org.jacoco.ant-0.8.7.jar:97ca96a382c3f23a44d8eb4c4e6c3742a30cb8005774a76ced0fc4806ce49605', - 'org.jacoco:org.jacoco.core:0.8.7:org.jacoco.core-0.8.7.jar:ad7739b5fb5969aa1a8aead3d74ed54dc82ed012f1f10f336bd1b96e71c1a13c', - 'org.jacoco:org.jacoco.report:0.8.7:org.jacoco.report-0.8.7.jar:cc89258623700a6c932592153cb528785876b6da183d5431f97efbba6f020e5b', + 'org.jacoco:org.jacoco.agent:0.8.8:org.jacoco.agent-0.8.8.jar:072ecbd496896623899a696fff12c01c1615f737616d2792e6d0e10cdf8a610d', + 'org.jacoco:org.jacoco.ant:0.8.8:org.jacoco.ant-0.8.8.jar:02e33bd2c48dc0be67c2fea84d43beececfd400da6797c58153253d4c30aca15', + 'org.jacoco:org.jacoco.core:0.8.8:org.jacoco.core-0.8.8.jar:474c782f809d88924713dfdbf0acb79d330f904be576484803463d0465611643', + 'org.jacoco:org.jacoco.report:0.8.8:org.jacoco.report-0.8.8.jar:2c129110f3e3fcaa1f8179578ea3894586199cb0826be5c7790278084c9622a9', 'org.jetbrains.kotlin:kotlin-reflect:1.6.10:kotlin-reflect-1.6.10.jar:3277ac102ae17aad10a55abec75ff5696c8d109790396434b496e75087854203', 'org.jetbrains.kotlin:kotlin-stdlib-common:1.7.0:kotlin-stdlib-common-1.7.0.jar:59c6ff64fe9a6604afce03e8aaa75f83586c6030ac71fb0b34ee7cdefed3618f', 'org.jetbrains.kotlin:kotlin-stdlib-common:1.8.20:kotlin-stdlib-common-1.8.20.jar:fa20188abaa8ecf1d0035e93a969b071f10e45a1c8378c314521eade73f75fd5', @@ -176,14 +176,10 @@ dependencyVerification { 'org.mockito:mockito-core:5.1.1:mockito-core-5.1.1.jar:447bdedceaef4107c50db3d33e252bf030c6ae0e46454b40dbcfc0dfbf041264', 'org.nanohttpd:nanohttpd:2.3.1:nanohttpd-2.3.1.jar:de864c47818157141a24c9acb36df0c47d7bf15b7ff48c90610f3eb4e5df0e58', 'org.objenesis:objenesis:3.3:objenesis-3.3.jar:02dfd0b0439a5591e35b708ed2f5474eb0948f53abf74637e959b8e4ef69bfeb', - 'org.ow2.asm:asm-analysis:9.1:asm-analysis-9.1.jar:81a88041b1b8beda5a8a99646098046c48709538270c49def68abff25ac3be34', 'org.ow2.asm:asm-analysis:9.2:asm-analysis-9.2.jar:878fbe521731c072d14d2d65b983b1beae6ad06fda0007b6a8bae81f73f433c4', - 'org.ow2.asm:asm-commons:9.1:asm-commons-9.1.jar:afcb26dc1fc12c0c4a99ada670908dd82e18dfc488caf5ee92546996b470c00c', 'org.ow2.asm:asm-commons:9.2:asm-commons-9.2.jar:be4ce53138a238bb522cd781cf91f3ba5ce2f6ca93ec62d46a162a127225e0a6', - 'org.ow2.asm:asm-tree:9.1:asm-tree-9.1.jar:fd00afa49e9595d7646205b09cecb4a776a8ff0ba06f2d59b8f7bf9c704b4a73', 'org.ow2.asm:asm-tree:9.2:asm-tree-9.2.jar:aabf9bd23091a4ebfc109c1f3ee7cf3e4b89f6ba2d3f51c5243f16b3cffae011', 'org.ow2.asm:asm-util:9.2:asm-util-9.2.jar:ff5b3cd331ae8a9a804768280da98f50f424fef23dd3c788bb320e08c94ee598', - 'org.ow2.asm:asm:9.1:asm-9.1.jar:cda4de455fab48ff0bcb7c48b4639447d4de859a7afc30a094a986f0936beba2', 'org.ow2.asm:asm:9.2:asm-9.2.jar:b9d4fe4d71938df38839f0eca42aaaa64cf8b313d678da036f0cb3ca199b47f5', 'org.robolectric:annotations:4.8.2:annotations-4.8.2.jar:998a02f2573884d017b04e1c0cc3ff3a416620daa8cc8d93d6aa15fc00b02c4b', 'org.robolectric:junit:4.8.2:junit-4.8.2.jar:eb0996f147566d722a178b1e1dcb849f69f5dbdd45a0149f10ce0d823b9e5a61', diff --git a/build.gradle b/build.gradle index 05095298e..bc4de4cfd 100644 --- a/build.gradle +++ b/build.gradle @@ -40,8 +40,7 @@ buildscript { onionwrapper_version = '0.0.5' } dependencies { - // upgrading this let's us run into https://github.com/gradle/gradle/issues/20330 - classpath 'com.android.tools.build:gradle:7.2.2' + classpath 'com.android.tools.build:gradle:7.4.2' classpath 'ru.vyarus:gradle-animalsniffer-plugin:1.7.0' classpath files('libs/gradle-witness.jar') classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 3bb947249..68ced1c29 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip -distributionSha256Sum=c9490e938b221daf0094982288e4038deed954a3f12fb54cbf270ddf4e37d879 +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip +distributionSha256Sum=97a52d145762adc241bad7fd18289bf7f6801e08ece6badf80402fe2b9f250b1 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists