New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Communication: Trivial class with enum cannot be transferred #121
Comments
The issue is related to the client's answer after the client registered the new type. The host can't find an type handler for the "OK" StatusMessage from the client. |
After the client received a new type that has an enum the roots collection is modified during the type registration. On the next store the BinaryStorer checks for not stored root instances and appends them to the current data that is stored (one.microstream.persistence.binary.types.BinaryStorer.Default.commit()). This store is the new type confirmation message. The appended root objects are transferred to the host causing the described exception. |
Theoretically this could be bypassed by using a new storer instead of the one.microstream.persistence.types.PersistenceManager.Default.store(Object) method for network store. Need to check this in detail. |
Ok, the idea to use a new storer does not solve the problem, the correctly also store the pending root elements. |
What is needed is a option to disable the automated storing of those pending roots. In the Com it is not required to send those to the peer. Maybe the hard coded logic in one.microstream.persistence.binary.types.BinaryStorer.Default.commit() could extended by an interface to allow the Com to provide a special no storing implementation for the pending root handling. |
Added a custom BinaryPersistenceRootsProvider implementation for the com that solve this issue |
Ok fixed |
I have a problem to send this class:
I received:
The text was updated successfully, but these errors were encountered: