Description of problem: The classes ResourceConfigurationUpdate, PluginConfigurationUpdate, GroupResourceConfigurationUpdate, and GroupPluginConfigurationUpdate inherit several fields from an ancestor class, AbstractConfigurationUpdate. Those fields include, * AbstractConfigurationUpdate.configuration * AbstractConfigurationUpdate.errorMessage * AbstractConfigurationUpdate.subjectName * AbstractConfigurationUpdate.createdTime * AbstractConfigurationUpdate.modifiedTime Because AbstracConfigurationUpdate is not Serializable, these fields do not get serialized. I first came across in the CLI when calling ConfigurationManagerRemote.getLatestResourceConfigurationUpdate() and saw that the configuration field in the returned ResourceConfigurationUpdate object was null. Version-Release number of selected component (if applicable): How reproducible: Steps to Reproduce: 1. Log into the CLI 2. Call ConfigurationManager.getLatestResourceConfigurationUpdate() for a resource having some configuration 3. If necessary, verify in the database or in the web UI that a configuration exists for the resource. 4. For the returned ResourceConfigurationUpdate object r, execute (in the CLI) print(r.configuration) Actual results: print(r.configuration) results in 'null' Expected results: Expect to see a Configuration object printed Additional info:
I have committed a fix to the raw-config branch which includes unit tests for all implementing classes of AbstractConfigurationUpdate to verify the correct serialization behavior. The commit hash is 4743488a8b743afb2965cb9a242b5dc8c7fb37cd
Updated to include 1.3.1 and 1.4 as targets. This needs to be triaged for 1.3.1
Merged 541486 (Fields in configuration update objects are not getting serialized) from git fix(4743488a8b743afb2965cb9a242b5dc8c7fb37cd) to CP branch for 1.3.1. Svn commit (5271)
QA Verified. rhqadmin@localhost:7080$ r = ConfigurationManager.getLatestResourceConfigurationUpdate(10005) ResourceConfigurationUpdate: resource: Resource[id=10005, type=Postgres Server, key=jdbc:postgresql://127.0.0.1:5432/postgres, name=Postgres [postgres], version=8.2.11] rhqadmin@localhost:7080$ print(r.configuration) Configuration[id=13151, notes=null]
Mass-closure of verified bugs against JON.