Files
svc-api-x/analysis/code-integrity-check-2026-04-30.md
T

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 и т.д.) не изменилась ни в одном файле кроме двух перечисленных выше.