LPS-32898 Unnecessary throws
LPS-32898 Regen
LPS-32983 Fix issue: be aware of changed structure of DDM field names introduced by commit 15d4e5d to init.ftl
LPS-32983 Method getFieldNames() will return only a single field, thus for loop is unnecessary
LPS-32983 Prevent NPE when a file is being downloaded from a DDL record (caused by e4614c8f)
LPS-32987 Fix method storeFieldFile(...) to support save as draft
Revert "LPS-32983 Method getFieldNames() will return only a single field, thus for loop is unnecessary"

This reverts commit d10df4f694b5fbb66615fa55258f1e460ecac43b.
Revert "LPS-32983 Prevent NPE when a file is being downloaded from a DDL record (caused by e4614c8f)"

This reverts commit 76c96002ce1db7d1b547b4b6acef54ab95f80ba6.
LPS-32983 Prevent NPE when a file is being downloaded from a DDL record (caused by e4614c8f); The locale should be retrieved from the user locale;
LPS-33096 Deleting attached file in DDL results in NoSuchRecordException; WebServerServlet pattern is to use className/classPK, no need for recordId duplicate, classPK represents that already;
Revert "LPS-32668 Empty, number type values are shown as 0"
LPS-32668 Storage adapter should know how to handle null values for numeric types
LPS-33096 Match EditRecordFileAction. These params are not JSON params (so not sorted alphabetically), but they are URL params, so sorted logically.
LPS-32983 Source formatting
LPS-31497 Fix Test

1) Use MainServletExecutionTestListener to load portal custom layout templates.
2) After creating a layout based on a layout prototype, changes must be propagated so that the type settings from the prototype are copied to the layout.