Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Issue in OCI Java SDK Deserialization of LifecycleState Enum during ListVcns Call #693

Open
@jayasuriya-bm-14519

Description

Dear Oracle Support Team,

We are encountering a critical issue while using the OCI Java SDK (version oci-java-sdk-shaded-full-3.66.0) when calling the ListVcns API.

🔍 Issue Summary
The API returns lifecycleState = "AVAILABLE" (all uppercase), but the SDK expects the enum value as Available (PascalCase). This mismatch causes a com.fasterxml.jackson.databind.exc.InvalidFormatException during deserialization of the response into the SDK model class com.oracle.bmc.core.model.Vcn.

❗ Error Stack Trace (Excerpt)
vbnet
Copy
Edit
Caused by: shaded.com.oracle.oci.javasdk.com.fasterxml.jackson.databind.exc.InvalidFormatException:
Cannot deserialize value of type com.oracle.bmc.core.model.Vcn$LifecycleState from String "AVAILABLE":
not one of the values accepted for Enum class: [Terminated, UnknownEnumValue, Available, Provisioning, Terminating, Updating]
at [Source: (InputStream); line: 1, column: 875]
(through reference chain: java.util.ArrayList[0]->com.oracle.bmc.core.model.Vcn["lifecycleState"])
🧪 Reproduction Code
java
Copy
Edit
ListVcnsRequest request = ListVcnsRequest.builder()
.compartmentId("")
.lifecycleState(Vcn.LifecycleState.Available)
.build();

ListVcnsResponse response = virtualNetworkClient.listVcns(request);
📌 Observations
The Jackson deserializer used is from the shaded OCI SDK itself:
shaded.com.oracle.oci.javasdk.com.fasterxml.jackson.databind

The API response contains "AVAILABLE" (uppercase), but the SDK expects "Available", hence deserialization fails.

Although the enum includes UnknownEnumValue, it is not triggered because Jackson fails before enum fallback logic is invoked.

This causes a client-side error with HTTP code -1 and message: "Unknown error".

✅ Expected Behavior
The SDK should either:

Allow case-insensitive enum deserialization (e.g., AVAILABLE → Available), or

Fall back to UnknownEnumValue instead of throwing an exception.

🌐 Region & Endpoint
Region: ap-hyderabad-1

Endpoint: https://iaas.ap-hyderabad-1.oraclecloud.com/20160918/vcns

📦 SDK Version
OCI Java SDK: oci-java-sdk-shaded-full-3.66.0

Kindly advise if this is a known issue or if a fix/workaround is available. If needed, we can provide the full JSON response and debug logs.

Thanks & Regards,
suriya B

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

        AltStyle によって変換されたページ (->オリジナル) /