Ошибки Coldfusion, которые внезапно исправляются после перекомпиляции компонента

У нас есть проект Coldfusion на живом сервере и тот же проект на локальном сервере разработки. Оба проекта практически идентичны, но несколько компонентов находятся в стадии разработки на сервере dev. Оба сервера имеют одинаковую версию Coldfusion (cf9).

Внезапно я получаю ошибку "переменная не определена" в компоненте живого проекта. Этот компонент точно такой же в проекте dev. Однако проект dev не выдает эту ошибку, когда выполняется точно такой же код, что и в живом проекте.

 private void function updateRecordById(required struct properties) {
    _updateRecord(arguments.properties, aliasFrom(this.name & "_id")&" = "&
    arguments.properties.id);
}

public string function aliasFrom(required string column) {
        var matchingKey = structFindValue(variables.aliases,arguments.column,"ONE");
        return (arraylen(matchingKey)) ? matchingKey[1].key : arguments.column;
    }

Ошибка: "Переменная aliasFrom не определена" (строка nr была второй строкой в ​​примере кода выше). После простой перекомпиляции компонента на работающем сервере (путем добавления writeDump("test");) и перезапуска приложения, ошибка была исправлена.

Похоже, что живой сервер скомпилировал updateRecordById(), но не скомпилировал aliasFrom().

  • Что могло вызвать эту ошибку?
  • Как я могу предотвратить это снова?
  • Почему, черт возьми, у меня нет этой ошибки на сервере dev в том же коде?

больше информации:

Этот проект использует coldspring для загрузки компонентов один раз в applicationStart. На действующем сервере включены "Шаблон кеша в запросе", "Кэш компонента" и "Сохранить файлы классов". Простой перезапуск приложения не решает проблему. Компонент должен быть перекомпилирован.

1 ответ

Решение

Возможно, что ColdFusion обслуживал кэшированную версию CFC, которая не была идентична. У вас есть возможность сохранять скомпилированные компоненты на сервере?

Другие вопросы по тегам