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