-
Notifications
You must be signed in to change notification settings - Fork 331
Description
Describe the bug
PolarisEntityCore type hierarchy is used to represent the persisted (or about to be persisted) state. Especially the already persisted state should be considered immutable. Instances of PolarisEntityCore are also cached via org.apache.polaris.core.persistence.cache.EntityCacheEntry#entity.
PolarisEntityCore + PolarisBaseEntity type hierarchy exposes public setters for effectively all properties. This makes it very easy to (accidentally?) modify entity instances that are cached or in any other way shared. Although the types have some "copy constructors", the risk of modifying attributes is still there. Even if a legit change to a property of a shared object would not be correct, given the Java memory model guarantees.
To Reproduce
No response
Actual Behavior
No response
Expected Behavior
No response
Additional context
No response
System information
No response