Skip to content

Commit 8ba0be1

Browse files
chore: merge main into generate-libraries-main
2 parents 4705405 + 8bcb09d commit 8ba0be1

File tree

19 files changed

+118
-66
lines changed

19 files changed

+118
-66
lines changed

CHANGELOG.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,23 @@
11
# Changelog
22

3+
## [6.99.0](https://github.com/googleapis/java-spanner/compare/v6.98.1...v6.99.0) (2025-08-26)
4+
5+
6+
### Features
7+
8+
* Support read lock mode for R/W transactions ([#4010](https://github.com/googleapis/java-spanner/issues/4010)) ([7d752d6](https://github.com/googleapis/java-spanner/commit/7d752d686e638b6266aab3a5188c01641d2f9adc))
9+
10+
11+
### Bug Fixes
12+
13+
* **deps:** Update the Java code generator (gapic-generator-java) to 2.62.0 ([52c68db](https://github.com/googleapis/java-spanner/commit/52c68db5c75f24a066c2e828ed79917c824f699b))
14+
* GetCommitResponse() should return error if tx has not committed ([#4021](https://github.com/googleapis/java-spanner/issues/4021)) ([a2c179f](https://github.com/googleapis/java-spanner/commit/a2c179f2e7c19d295bdbf9cf1bbd1c5562dd9e21))
15+
16+
17+
### Dependencies
18+
19+
* Update dependency com.google.cloud:sdk-platform-java-config to v3.52.0 ([#4024](https://github.com/googleapis/java-spanner/issues/4024)) ([7e3294f](https://github.com/googleapis/java-spanner/commit/7e3294f6d42bddb4cfff67334118f615c90c3bb7))
20+
321
## [6.98.1](https://github.com/googleapis/java-spanner/compare/v6.98.0...v6.98.1) (2025-08-11)
422

523

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,13 @@ implementation 'com.google.cloud:google-cloud-spanner'
5656
If you are using Gradle without BOM, add this to your dependencies:
5757

5858
```Groovy
59-
implementation 'com.google.cloud:google-cloud-spanner:6.98.1'
59+
implementation 'com.google.cloud:google-cloud-spanner:6.99.0'
6060
```
6161

6262
If you are using SBT, add this to your dependencies:
6363

6464
```Scala
65-
libraryDependencies += "com.google.cloud" % "google-cloud-spanner" % "6.98.1"
65+
libraryDependencies += "com.google.cloud" % "google-cloud-spanner" % "6.99.0"
6666
```
6767

6868
## Authentication
@@ -731,7 +731,7 @@ Java is a registered trademark of Oracle and/or its affiliates.
731731
[kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-spanner/java11.html
732732
[stability-image]: https://img.shields.io/badge/stability-stable-green
733733
[maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-spanner.svg
734-
[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-spanner/6.98.1
734+
[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-spanner/6.99.0
735735
[authentication]: https://github.com/googleapis/google-cloud-java#authentication
736736
[auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes
737737
[predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles

benchmarks/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
<parent>
2525
<groupId>com.google.cloud</groupId>
2626
<artifactId>google-cloud-spanner-parent</artifactId>
27-
<version>6.98.2-SNAPSHOT</version><!-- {x-version-update:google-cloud-spanner:current} -->
27+
<version>6.99.0</version><!-- {x-version-update:google-cloud-spanner:current} -->
2828
</parent>
2929

3030
<properties>

google-cloud-spanner-bom/pom.xml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>com.google.cloud</groupId>
55
<artifactId>google-cloud-spanner-bom</artifactId>
6-
<version>6.98.2-SNAPSHOT</version><!-- {x-version-update:google-cloud-spanner:current} -->
6+
<version>6.99.0</version><!-- {x-version-update:google-cloud-spanner:current} -->
77
<packaging>pom</packaging>
88
<parent>
99
<groupId>com.google.cloud</groupId>
@@ -53,43 +53,43 @@
5353
<dependency>
5454
<groupId>com.google.cloud</groupId>
5555
<artifactId>google-cloud-spanner</artifactId>
56-
<version>6.98.2-SNAPSHOT</version><!-- {x-version-update:google-cloud-spanner:current} -->
56+
<version>6.99.0</version><!-- {x-version-update:google-cloud-spanner:current} -->
5757
</dependency>
5858
<dependency>
5959
<groupId>com.google.cloud</groupId>
6060
<artifactId>google-cloud-spanner</artifactId>
6161
<type>test-jar</type>
62-
<version>6.98.2-SNAPSHOT</version><!-- {x-version-update:google-cloud-spanner:current} -->
62+
<version>6.99.0</version><!-- {x-version-update:google-cloud-spanner:current} -->
6363
</dependency>
6464
<dependency>
6565
<groupId>com.google.api.grpc</groupId>
6666
<artifactId>grpc-google-cloud-spanner-v1</artifactId>
67-
<version>6.98.2-SNAPSHOT</version><!-- {x-version-update:grpc-google-cloud-spanner-v1:current} -->
67+
<version>6.99.0</version><!-- {x-version-update:grpc-google-cloud-spanner-v1:current} -->
6868
</dependency>
6969
<dependency>
7070
<groupId>com.google.api.grpc</groupId>
7171
<artifactId>grpc-google-cloud-spanner-admin-instance-v1</artifactId>
72-
<version>6.98.2-SNAPSHOT</version><!-- {x-version-update:grpc-google-cloud-spanner-admin-instance-v1:current} -->
72+
<version>6.99.0</version><!-- {x-version-update:grpc-google-cloud-spanner-admin-instance-v1:current} -->
7373
</dependency>
7474
<dependency>
7575
<groupId>com.google.api.grpc</groupId>
7676
<artifactId>grpc-google-cloud-spanner-admin-database-v1</artifactId>
77-
<version>6.98.2-SNAPSHOT</version><!-- {x-version-update:grpc-google-cloud-spanner-admin-database-v1:current} -->
77+
<version>6.99.0</version><!-- {x-version-update:grpc-google-cloud-spanner-admin-database-v1:current} -->
7878
</dependency>
7979
<dependency>
8080
<groupId>com.google.api.grpc</groupId>
8181
<artifactId>proto-google-cloud-spanner-admin-instance-v1</artifactId>
82-
<version>6.98.2-SNAPSHOT</version><!-- {x-version-update:proto-google-cloud-spanner-admin-instance-v1:current} -->
82+
<version>6.99.0</version><!-- {x-version-update:proto-google-cloud-spanner-admin-instance-v1:current} -->
8383
</dependency>
8484
<dependency>
8585
<groupId>com.google.api.grpc</groupId>
8686
<artifactId>proto-google-cloud-spanner-v1</artifactId>
87-
<version>6.98.2-SNAPSHOT</version><!-- {x-version-update:proto-google-cloud-spanner-v1:current} -->
87+
<version>6.99.0</version><!-- {x-version-update:proto-google-cloud-spanner-v1:current} -->
8888
</dependency>
8989
<dependency>
9090
<groupId>com.google.api.grpc</groupId>
9191
<artifactId>proto-google-cloud-spanner-admin-database-v1</artifactId>
92-
<version>6.98.2-SNAPSHOT</version><!-- {x-version-update:proto-google-cloud-spanner-admin-database-v1:current} -->
92+
<version>6.99.0</version><!-- {x-version-update:proto-google-cloud-spanner-admin-database-v1:current} -->
9393
</dependency>
9494
</dependencies>
9595
</dependencyManagement>

google-cloud-spanner-executor/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55
<modelVersion>4.0.0</modelVersion>
66
<groupId>com.google.cloud</groupId>
77
<artifactId>google-cloud-spanner-executor</artifactId>
8-
<version>6.98.2-SNAPSHOT</version><!-- {x-version-update:google-cloud-spanner-executor:current} -->
8+
<version>6.99.0</version><!-- {x-version-update:google-cloud-spanner-executor:current} -->
99
<packaging>jar</packaging>
1010
<name>Google Cloud Spanner Executor</name>
1111

1212
<parent>
1313
<groupId>com.google.cloud</groupId>
1414
<artifactId>google-cloud-spanner-parent</artifactId>
15-
<version>6.98.2-SNAPSHOT</version><!-- {x-version-update:google-cloud-spanner:current} -->
15+
<version>6.99.0</version><!-- {x-version-update:google-cloud-spanner:current} -->
1616
</parent>
1717

1818
<properties>

google-cloud-spanner/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>com.google.cloud</groupId>
55
<artifactId>google-cloud-spanner</artifactId>
6-
<version>6.98.2-SNAPSHOT</version><!-- {x-version-update:google-cloud-spanner:current} -->
6+
<version>6.99.0</version><!-- {x-version-update:google-cloud-spanner:current} -->
77
<packaging>jar</packaging>
88
<name>Google Cloud Spanner</name>
99
<url>https://github.com/googleapis/java-spanner</url>
1010
<description>Java idiomatic client for Google Cloud Spanner.</description>
1111
<parent>
1212
<groupId>com.google.cloud</groupId>
1313
<artifactId>google-cloud-spanner-parent</artifactId>
14-
<version>6.98.2-SNAPSHOT</version><!-- {x-version-update:google-cloud-spanner:current} -->
14+
<version>6.99.0</version><!-- {x-version-update:google-cloud-spanner:current} -->
1515
</parent>
1616
<properties>
1717
<site.installationModule>google-cloud-spanner</site.installationModule>

google-cloud-spanner/src/main/java/com/google/cloud/spanner/SessionImpl.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -468,12 +468,18 @@ public AsyncTransactionManagerImpl transactionManagerAsync(TransactionOption...
468468

469469
@Override
470470
public ApiFuture<Empty> asyncClose() {
471+
if (getIsMultiplexed()) {
472+
return com.google.api.core.ApiFutures.immediateFuture(Empty.getDefaultInstance());
473+
}
471474
XGoogSpannerRequestId reqId = this.getRequestIdCreator().nextRequestId(this.getChannel(), 1);
472475
return spanner.getRpc().asyncDeleteSession(getName(), reqId.withOptions(getOptions()));
473476
}
474477

475478
@Override
476479
public void close() {
480+
if (getIsMultiplexed()) {
481+
return;
482+
}
477483
ISpan span = tracer.spanBuilder(SpannerImpl.DELETE_SESSION);
478484
try (IScope s = tracer.withSpan(span)) {
479485
XGoogSpannerRequestId reqId = this.getRequestIdCreator().nextRequestId(this.getChannel(), 1);

google-cloud-spanner/src/test/java/com/google/cloud/spanner/DatabaseClientImplTest.java

Lines changed: 40 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3601,9 +3601,16 @@ public void testBackendPartitionQueryOptions() {
36013601
// statistics package and directed read options.
36023602
List<AbstractMessage> requests = mockSpanner.getRequests();
36033603
assert requests.size() >= 2 : "required to have at least 2 requests";
3604-
assertThat(requests.get(requests.size() - 1)).isInstanceOf(DeleteSessionRequest.class);
3605-
assertThat(requests.get(requests.size() - 2)).isInstanceOf(ExecuteSqlRequest.class);
3606-
ExecuteSqlRequest executeSqlRequest = (ExecuteSqlRequest) requests.get(requests.size() - 2);
3604+
if (isMultiplexedSessionsEnabled()) {
3605+
assertThat(requests.get(requests.size() - 1)).isInstanceOf(ExecuteSqlRequest.class);
3606+
} else {
3607+
assertThat(requests.get(requests.size() - 1)).isInstanceOf(DeleteSessionRequest.class);
3608+
assertThat(requests.get(requests.size() - 2)).isInstanceOf(ExecuteSqlRequest.class);
3609+
}
3610+
ExecuteSqlRequest executeSqlRequest =
3611+
(ExecuteSqlRequest)
3612+
requests.get(
3613+
isMultiplexedSessionsEnabled() ? requests.size() - 1 : requests.size() - 2);
36073614
assertThat(executeSqlRequest.getQueryOptions()).isNotNull();
36083615
assertThat(executeSqlRequest.getQueryOptions().getOptimizerVersion()).isEqualTo("1");
36093616
assertThat(executeSqlRequest.getQueryOptions().getOptimizerStatisticsPackage())
@@ -3651,9 +3658,16 @@ public void testBackendPartitionQueryOptions() {
36513658
// statistics package and directed read options.
36523659
List<AbstractMessage> requests = mockSpanner.getRequests();
36533660
assert requests.size() >= 2 : "required to have at least 2 requests";
3654-
assertThat(requests.get(requests.size() - 1)).isInstanceOf(DeleteSessionRequest.class);
3655-
assertThat(requests.get(requests.size() - 2)).isInstanceOf(ExecuteSqlRequest.class);
3656-
ExecuteSqlRequest executeSqlRequest = (ExecuteSqlRequest) requests.get(requests.size() - 2);
3661+
if (isMultiplexedSessionsEnabled()) {
3662+
assertThat(requests.get(requests.size() - 1)).isInstanceOf(ExecuteSqlRequest.class);
3663+
} else {
3664+
assertThat(requests.get(requests.size() - 1)).isInstanceOf(DeleteSessionRequest.class);
3665+
assertThat(requests.get(requests.size() - 2)).isInstanceOf(ExecuteSqlRequest.class);
3666+
}
3667+
ExecuteSqlRequest executeSqlRequest =
3668+
(ExecuteSqlRequest)
3669+
requests.get(
3670+
isMultiplexedSessionsEnabled() ? requests.size() - 1 : requests.size() - 2);
36573671
assertThat(executeSqlRequest.getQueryOptions()).isNotNull();
36583672
assertThat(executeSqlRequest.getQueryOptions().getOptimizerVersion()).isEqualTo("1");
36593673
assertThat(executeSqlRequest.getQueryOptions().getOptimizerStatisticsPackage())
@@ -3697,9 +3711,16 @@ public void testBackendPartitionReadOptions() {
36973711
// statistics package and directed read options.
36983712
List<AbstractMessage> requests = mockSpanner.getRequests();
36993713
assert requests.size() >= 2 : "required to have at least 2 requests";
3700-
assertThat(requests.get(requests.size() - 1)).isInstanceOf(DeleteSessionRequest.class);
3701-
assertThat(requests.get(requests.size() - 2)).isInstanceOf(ReadRequest.class);
3702-
ReadRequest readRequest = (ReadRequest) requests.get(requests.size() - 2);
3714+
if (isMultiplexedSessionsEnabled()) {
3715+
assertThat(requests.get(requests.size() - 1)).isInstanceOf(ReadRequest.class);
3716+
} else {
3717+
assertThat(requests.get(requests.size() - 1)).isInstanceOf(DeleteSessionRequest.class);
3718+
assertThat(requests.get(requests.size() - 2)).isInstanceOf(ReadRequest.class);
3719+
}
3720+
ReadRequest readRequest =
3721+
(ReadRequest)
3722+
requests.get(
3723+
isMultiplexedSessionsEnabled() ? requests.size() - 1 : requests.size() - 2);
37033724
assertThat(readRequest.getDirectedReadOptions()).isEqualTo(DIRECTED_READ_OPTIONS1);
37043725
}
37053726
}
@@ -3740,9 +3761,16 @@ public void testBackendPartitionReadOptions() {
37403761
// statistics package and directed read options.
37413762
List<AbstractMessage> requests = mockSpanner.getRequests();
37423763
assert requests.size() >= 2 : "required to have at least 2 requests";
3743-
assertThat(requests.get(requests.size() - 1)).isInstanceOf(DeleteSessionRequest.class);
3744-
assertThat(requests.get(requests.size() - 2)).isInstanceOf(ReadRequest.class);
3745-
ReadRequest readRequest = (ReadRequest) requests.get(requests.size() - 2);
3764+
if (isMultiplexedSessionsEnabled()) {
3765+
assertThat(requests.get(requests.size() - 1)).isInstanceOf(ReadRequest.class);
3766+
} else {
3767+
assertThat(requests.get(requests.size() - 1)).isInstanceOf(DeleteSessionRequest.class);
3768+
assertThat(requests.get(requests.size() - 2)).isInstanceOf(ReadRequest.class);
3769+
}
3770+
ReadRequest readRequest =
3771+
(ReadRequest)
3772+
requests.get(
3773+
isMultiplexedSessionsEnabled() ? requests.size() - 1 : requests.size() - 2);
37463774
assertThat(readRequest.getDirectedReadOptions()).isEqualTo(DIRECTED_READ_OPTIONS2);
37473775
}
37483776
}

grpc-google-cloud-spanner-admin-database-v1/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
<modelVersion>4.0.0</modelVersion>
55
<groupId>com.google.api.grpc</groupId>
66
<artifactId>grpc-google-cloud-spanner-admin-database-v1</artifactId>
7-
<version>6.98.2-SNAPSHOT</version><!-- {x-version-update:grpc-google-cloud-spanner-admin-database-v1:current} -->
7+
<version>6.99.0</version><!-- {x-version-update:grpc-google-cloud-spanner-admin-database-v1:current} -->
88
<name>grpc-google-cloud-spanner-admin-database-v1</name>
99
<description>GRPC library for grpc-google-cloud-spanner-admin-database-v1</description>
1010
<parent>
1111
<groupId>com.google.cloud</groupId>
1212
<artifactId>google-cloud-spanner-parent</artifactId>
13-
<version>6.98.2-SNAPSHOT</version><!-- {x-version-update:google-cloud-spanner:current} -->
13+
<version>6.99.0</version><!-- {x-version-update:google-cloud-spanner:current} -->
1414
</parent>
1515
<dependencies>
1616
<dependency>

grpc-google-cloud-spanner-admin-instance-v1/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
<modelVersion>4.0.0</modelVersion>
55
<groupId>com.google.api.grpc</groupId>
66
<artifactId>grpc-google-cloud-spanner-admin-instance-v1</artifactId>
7-
<version>6.98.2-SNAPSHOT</version><!-- {x-version-update:grpc-google-cloud-spanner-admin-instance-v1:current} -->
7+
<version>6.99.0</version><!-- {x-version-update:grpc-google-cloud-spanner-admin-instance-v1:current} -->
88
<name>grpc-google-cloud-spanner-admin-instance-v1</name>
99
<description>GRPC library for grpc-google-cloud-spanner-admin-instance-v1</description>
1010
<parent>
1111
<groupId>com.google.cloud</groupId>
1212
<artifactId>google-cloud-spanner-parent</artifactId>
13-
<version>6.98.2-SNAPSHOT</version><!-- {x-version-update:google-cloud-spanner:current} -->
13+
<version>6.99.0</version><!-- {x-version-update:google-cloud-spanner:current} -->
1414
</parent>
1515
<dependencies>
1616
<dependency>

0 commit comments

Comments
 (0)