Skip to content

Commit 0edf6fd

Browse files
committed
Merge branch 'main' into COH-32107
2 parents b2844b9 + 28eef32 commit 0edf6fd

File tree

8 files changed

+58
-16
lines changed

8 files changed

+58
-16
lines changed

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ jobs:
6060
path: ./docs/_build
6161

6262
- name: Download artifact
63-
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1
63+
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
6464
with:
6565
name: github-pages
6666
path: .

.github/workflows/validate-nslookup.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ jobs:
2121
poetry-version: ["1.8.4"]
2222
os: [ubuntu-latest]
2323
coherenceVersion:
24-
- 25.03
25-
- 22.06.11
24+
- 25.03.1
25+
- 22.06.12
2626
base-image:
2727
- gcr.io/distroless/java17-debian11
2828
runs-on: ${{ matrix.os }}

.github/workflows/validate.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,17 @@ jobs:
2121
poetry-version: ["1.8.4"]
2222
os: [ubuntu-latest]
2323
coherenceVersion:
24-
- 25.03
25-
- 22.06.11
24+
- 25.03.1
25+
- 22.06.12
2626
base-image:
2727
- gcr.io/distroless/java17-debian11
2828
profile:
2929
- ",-jakarta,javax"
3030
- ",jakarta,-javax"
3131
exclude:
32-
- coherenceVersion: 25.03
32+
- coherenceVersion: 25.03.1
3333
profile: ",-jakarta,javax"
34-
- coherenceVersion: 22.06.11
34+
- coherenceVersion: 22.06.12
3535
profile: ",jakarta,-javax"
3636

3737
runs-on: ${{ matrix.os }}

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ For local development, we recommend using the Coherence CE Docker image; it cont
3232
everything necessary for the client to operate correctly.
3333

3434
```bash
35-
docker run -d -p 1408:1408 ghcr.io/oracle/coherence-ce:25.03
35+
docker run -d -p 1408:1408 ghcr.io/oracle/coherence-ce:25.03.1
3636
```
3737

3838
## Installation

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ grpcio-tools = "1.70.0"
2828
jsonpickle = ">=3.0,<4.1"
2929
pymitter = ">=0.4,<1.1"
3030
typing-extensions = ">=4.11,<4.14"
31-
types-protobuf = "5.29.1.20250403"
31+
types-protobuf = "6.30.2.20250506"
3232
pympler = "1.1"
3333
numpy = "2.0.2"
3434

src/coherence/client.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1068,7 +1068,6 @@ def on_destroyed(name: str) -> None:
10681068
if name == cache_name and not this.destroyed:
10691069
this._events_manager._close()
10701070
this._destroyed = True
1071-
this._released = True
10721071
emitter.emit(MapLifecycleEvent.DESTROYED.value, name)
10731072

10741073
# noinspection PyProtectedMember
@@ -1289,10 +1288,13 @@ async def clear(self) -> None:
12891288
await self._near_cache.clear()
12901289

12911290
async def destroy(self) -> None:
1292-
self._internal_emitter.once(MapLifecycleEvent.DESTROYED.value)
1293-
self._internal_emitter.emit(MapLifecycleEvent.DESTROYED.value, self.name)
1294-
dispatcher: Dispatcher = self._request_factory.destroy_request()
1295-
await dispatcher.dispatch(self._stream_handler)
1291+
if not self._stream_handler._closed:
1292+
dispatcher: Dispatcher = self._request_factory.destroy_request()
1293+
await dispatcher.dispatch(self._stream_handler)
1294+
# Now do everything that is done for release
1295+
self._internal_emitter.once(MapLifecycleEvent.RELEASED.value)
1296+
self._internal_emitter.emit(MapLifecycleEvent.RELEASED.value, self.name)
1297+
await self._stream_handler.close()
12961298

12971299
async def release(self) -> None:
12981300
if self.active:

tests/e2e/test_client.py

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -495,6 +495,46 @@ def callback(n: str) -> None:
495495
await session.close()
496496

497497

498+
# noinspection PyShadowingNames,DuplicatedCode
499+
@pytest.mark.asyncio(loop_scope="function")
500+
async def test_cache_destroy_event() -> None:
501+
session: Session = await tests.get_session()
502+
cache: NamedCache[str, str] = await session.get_cache("test-" + str(int(time() * 1000)))
503+
name: str = "UNSET"
504+
destroy_event: Event = Event()
505+
release_event: Event = Event()
506+
507+
def destroy_callback(n: str) -> None:
508+
nonlocal name
509+
name = n
510+
destroy_event.set()
511+
512+
cache.on(MapLifecycleEvent.DESTROYED, destroy_callback)
513+
514+
def release_callback(n: str) -> None:
515+
nonlocal name
516+
name = n
517+
release_event.set()
518+
519+
cache.on(MapLifecycleEvent.RELEASED, release_callback)
520+
521+
try:
522+
await cache.put("A", "B")
523+
await cache.put("C", "D")
524+
assert await cache.size() == 2
525+
526+
await cache.destroy()
527+
await tests.wait_for(destroy_event, EVENT_TIMEOUT)
528+
await tests.wait_for(release_event, EVENT_TIMEOUT)
529+
530+
assert name == cache.name
531+
assert cache.destroyed
532+
assert cache.released
533+
assert not cache.active
534+
finally:
535+
await session.close()
536+
537+
498538
# noinspection PyShadowingNames,DuplicatedCode,PyUnresolvedReferences
499539
@pytest.mark.asyncio
500540
async def test_add_remove_index(person_cache: NamedCache[str, Person]) -> None:
@@ -603,7 +643,7 @@ async def test_ttl_configuration(test_session: Session) -> None:
603643

604644
@pytest.mark.asyncio
605645
async def test_unary_error(test_session: Session) -> None:
606-
cache: NamedCache[str, str] = await test_session.get_cache("unary_error")
646+
cache: NamedCache[str, dict] = await test_session.get_cache("unary_error")
607647

608648
d = dict()
609649
d["@class"] = "com.foo.Bar"

tests/java/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
<maven.compiler.target>11</maven.compiler.target>
3535

3636
<coherence.group.id>com.oracle.coherence.ce</coherence.group.id>
37-
<coherence.version>25.03</coherence.version>
37+
<coherence.version>25.03.1</coherence.version>
3838

3939
<!-- The version of Coherence to use in the test images -->
4040
<coherence.test.groupId>com.oracle.coherence.ce</coherence.test.groupId>

0 commit comments

Comments
 (0)