You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
val projectApi =ProjectApi(defaultClient)
val commitApi =CommitApi(defaultClient)
// ...val project = projectApi.postProject(Project().apply { name ="demo project" })
val commit = commitApi.postCommitByProject(project.atId, Commit().apply {
change =listOf(DataVersion().apply {
val id =UUID.randomUUID()
identity =DataIdentity().atId(id)
payload =Data().apply {
put("@id", id.toString())
put("@type", "ActionDefinition")
put("empty", Random.nextBoolean())
}
})
}, null)
commitApi.getCommitByProjectAndId(project.atId, commit.atId) // Exception: cannot determine model class of name: <ActionDefinition>
Expected output: the result of the getCommitByProjectAndId request is a Commit object with the appropriate content.
Actual output: an exception: IllegalArgumentException: cannot determine model class of name: <ActionDefinition>
Additional info: the stacktrace reveals (see below) that the exception occurs in the getClassByDiscriminator method of JSON.java when trying to deserialize the response (more specifically when the payload of the commit change is deserialized). The source of the problem is that the @type property of the payload is used to determine the class for the result of the deserialization. The type (e.g. ActionDefinition) is searched in a hash map which only contains the key Data in our case (see the creation of the hash map).
Exception in thread "main" java.lang.IllegalArgumentException: cannot determine model class of name: <ActionDefinition>
at org.omg.sysml.JSON.getClassByDiscriminator(JSON.java:96)
at org.omg.sysml.JSON.access$100(JSON.java:44)
at org.omg.sysml.JSON$1.getClassForElement(JSON.java:69)
at io.gsonfire.gson.TypeSelectorTypeAdapterFactory$TypeSelectorTypeAdapter.read(TypeSelectorTypeAdapterFactory.java:65)
at io.gsonfire.gson.NullableTypeAdapter.read(NullableTypeAdapter.java:36)
at io.gsonfire.gson.HooksTypeAdapter.deserialize(HooksTypeAdapter.java:86)
at io.gsonfire.gson.HooksTypeAdapter.read(HooksTypeAdapter.java:54)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222)
at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:41)
at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:82)
at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:61)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222)
at com.google.gson.Gson.fromJson(Gson.java:932)
at com.google.gson.Gson.fromJson(Gson.java:897)
at com.google.gson.Gson.fromJson(Gson.java:846)
at org.omg.sysml.JSON.deserialize(JSON.java:163)
at org.omg.sysml.ApiClient.deserialize(ApiClient.java:775)
at org.omg.sysml.ApiClient.handleResponse(ApiClient.java:978)
at org.omg.sysml.ApiClient.execute(ApiClient.java:905)
at org.omg.sysml.api.CommitApi.getCommitByProjectAndIdWithHttpInfo(CommitApi.java:168)
at org.omg.sysml.api.CommitApi.getCommitByProjectAndId(CommitApi.java:144)
at MainKt.main(Main.kt:43)
at MainKt.main(Main.kt)
The text was updated successfully, but these errors were encountered:
SysML v2 API Java client version: 2021-09 (commit: Merge branch 'release/2021-09' on Oct 15, 2021)
Steps to reproduce:
ActionDefinition
).getCommitByProjectAndId
method with the id of the created project and commit).The following simple project reproduces the problem: api-client-bug-report.zip. Essential part:
Expected output: the result of the
getCommitByProjectAndId
request is aCommit
object with the appropriate content.Actual output: an exception:
IllegalArgumentException: cannot determine model class of name: <ActionDefinition>
Additional info: the stacktrace reveals (see below) that the exception occurs in the getClassByDiscriminator method of JSON.java when trying to deserialize the response (more specifically when the payload of the commit change is deserialized). The source of the problem is that the
@type
property of the payload is used to determine the class for the result of the deserialization. The type (e.g.ActionDefinition
) is searched in a hash map which only contains the keyData
in our case (see the creation of the hash map).The text was updated successfully, but these errors were encountered: