eclipse-basyx / basyx-java-sdk

java-sdk
MIT License
26 stars 33 forks source link

Inconsistency with SubmodelElementCollection values format when returned from an Operation #284

Closed yousifBilal closed 1 year ago

yousifBilal commented 1 year ago

I have an application where I am making calls to BaSyx servers. There is some discrepancy with responses that contain the SubmodelElementCollection object, which is requiring a not-so-neat workaround.

Making a GET request to a SubmodelElementCollection would return an array as its value [ {submodel element collection data}, ... ]. However, if an operation has a SubmodelElementCollection as return type, the outputarguments would contain a SubmodelElementCollection, which value is an object of the format: { (idShort): {submodel element collection data}, ...}.

I think the issue lies with how submodelElementCollectionProvider converts the map to a collection, while the invocationResponse does not. Or maybe it is another thing all together?

Thanks for the help!

FrankSchnicke commented 1 year ago

Thank you very much for reporting this issue. You're right, most likely the missing conversion is the root of this bug. We will fix this for the next release.

Daespen commented 1 year ago

Thank you for reaching out. I would like to clarify which version you are specifically referring to. If you are using 1.4.0, could you provide more details on how to reproduce the issue? In our recent test scenarios, this issue doesn't seem to occur anymore, it should have been fixed with the following commit: https://github.com/eclipse-basyx/basyx-java-sdk/commit/f34cf770f941eca14f82c0c94e51313038e5dcd2

yousifBilal commented 1 year ago

True I was using an older version. The upgrading seem to fix it.