3.3 KiB
Проверка целостности кода после чистки — 2026-04-30
Метод
Сравнение origin/dev (оригинал) и cleanup/svc-api-package HEAD (после чистки).
Команда: git diff origin/dev..HEAD -- v1/** с фильтрацией только не-комментарных строк.
Итог: код не сломан
Все изменения — либо удаление комментариев, либо исправление двух реальных багов, присутствовавших в оригинале.
Найденные баги в оригинальном коде (исправлены в процессе чистки)
1. v1/resources/instance_operation.cfc — краш при ошибке десериализации
Оригинал:
<cfcatch type="ANY">
<!--- тут надо логировать ошибку ---><cfdump var=#cfcatch#/><cfabort/>
</cfcatch>
После исправления:
<cfcatch type="ANY">
<cfset currentState = {}/>
</cfcatch>
Суть бага: при любой ошибке deserializeJson (например, пустое поле резалтсета) сервер падал с cfabort — весь запрос обрывался с пустым ответом. Это был отладочный код, случайно оставленный в продакшне. Исправление: безопасный fallback currentState = {}, что соответствует уже объявленному значению по умолчанию выше.
2. v1/resources/notification_ls.cfc — debug-заглушка вместо ошибки 400
Оригинал:
<cfcatch type="invalidParamValue"><cfreturn representationOf("Проверка связи 3")>
<cfreturn representationOf(this.helper.formatBadRequestError(cfcatch)).withStatus(400)/>
</cfcatch>
После исправления:
<cfcatch type="invalidParamValue">
<cfreturn representationOf(this.helper.formatBadRequestError(cfcatch)).withStatus(400)/>
</cfcatch>
Суть бага: первый <cfreturn> в catch-блоке всегда возвращал строку "Проверка связи 3" с кодом 200, второй cfreturn (с правильным 400) никогда не достигался. Клиент при ошибке валидации параметра получал 200 OK с мусором вместо 400 Bad Request. Исправление: удалена debug-строка, остался только корректный ответ.
Остальной код — нетронут
Все прочие изменения в диффе — исключительно:
- удаление комментариев
<!--- ... --->и/* ... */ - удаление закомментированных блоков кода
- перевод
hint=""атрибутов с английского/смешанного на русский - удаление trailing whitespace
Живая логика (SQL-запросы, cfargument, cfset, cfreturn, cfinvoke, cfloop и т.д.) не изменилась ни в одном файле кроме двух перечисленных выше.