Skip to content

java.time.Period not updated via UpdateApi #520

@zdenek-jonas

Description

@zdenek-jonas

This happens only when Period is used as the root object. In practice, using such a value as the storage root is unrealistic and makes no practical sense.

java.time.Period is not updated via Eclipse Store update api.

Not working scenario:

    @Test
    void periodUpdateApiBehavior()
    {
        Period p = Period.ofYears(2).withMonths(3).withDays(5);

        try (EmbeddedStorageManager storageManager = EmbeddedStorage.start(p, tempDir)) {
        }

        Period p2 = Period.ZERO;
        try (EmbeddedStorageManager storageManager = EmbeddedStorage.start(p2, tempDir)) {

            assertEquals(p, p2, "Period should be equal after storing and reloading");
        }
    }

result:

org.opentest4j.AssertionFailedError: Period should be equal after storing and reloading ==> 
Expected :P2Y3M5D
Actual   :P0D

Working scenario:

    @Test
    void periodStoreAndReload()
    {
        Period p = Period.ofYears(2).withMonths(3).withDays(5);

        try (EmbeddedStorageManager storageManager = EmbeddedStorage.start(p, tempDir)) {
        }

        try (EmbeddedStorageManager storageManager = EmbeddedStorage.start(tempDir)) {
            Period loaded = (Period) storageManager.root();

            assertEquals(p, loaded, "Period should be equal after storing and reloading");
        }
    }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions