The method to obtain className in DDLRecordLocalServiceImpl differs in addRecord and updateRecord method.
In addRecord the className is obtained with a function, but in updateRecord method, the className is hardcoded with "DDLRecord.class.getName()"
If you use the api for update a DDLFormRecord in 7.0, a new ddlrecord is created duplicating the original DDLFormRecord.
Steps to reproduce (7.0.x).
- Create a workflow using the attached xml definition.
- Create a Form with 2 fields, one of this fields must be named "hidd", you could leave it blank.
- Associate the workflow with the form.
- Drop the form in a page and submit a new entry.
A new workflow task is created with asset type "Form Record". The field "hidd" has the user full name.
Only one workflow task and notification is created for the approver.
Two workflow tasks are created, one with Asset type "Form Record" the other one with "Dynamic Data List" type.
Two notifications are sent, one of them generate the attached stacktrace when you click to see the details.