(Наверное как-то связана с #931)
Не получается экспортировать процесс в файл и на сервер.
Создал 4 композиции, и 3 элемента подпроцесса, делал подключение композиций в подпроцесах, а затем неиспользуемую композицию удалил. Закрыл процесс, затем попробовал открыть и экспортировать, получил ошибку:
java.lang.RuntimeException: No file found for 4 (sub4)
Зависимость пока не выявил
C 931 не связана, т.к. там изменения затронули только серверную часть.
Не могу повторить, но процесс у меня остался в редакторе. Если какие-то данные из него могут помочь, сообщи.
Просьба заархивировать папку с файлами БП и выложить сюда.
Сценарий воспроизведения
Last edit: vromav 2015-02-04
UPD: но если переоткрыть редактор, то ошибка в данном процессе больше не возникает.
Непосредственная причина падения:
Поиск второго, не сохраненного процесса композиции выполняется по условию:
Что равносильно сравнению по хэшу, т.к. БП-дифинишн не имеет перегрузки equals.
На этот момент файл в кэше имеется, но БП-дифинишн уже другого экземпляра, пересозданного при открытии БП, поэтому хэш инстансов не совпадает и сравнение заканчивается фейлом.
Перегружать equals стремно, опять что-нибудь где-нибудь поломается, что этот equals косвенно использует. Можно перегрузить hashCode, но тоже стремно.
Наверное лучше всего выполнять дополнительное сравнение в этом месте ProcessCache по другим критериям.
[r6231] - бранч для работ по тикету
Related
Commit: [r6231]
[r6232] - реализация уникальных хэшкодов БП в пределах воркспейса на относительном пути к файлу
Related
Commit: [r6232]
Несколько изменил сценарий, и получил случай, когда экспорт на сервер процесса с композицией не работает
(возможно прямо не связан с текущими изменениями по данному тикету)
Сценарий воспроизведения:
Открываем главный процесс, видим замечание “Выберите подпроцесс”,
выбираем существующую пустую композицию
Опять же, после перезапуска DevStudio, проблема не наблюдается.
Несмотря на ошибку “Процесс должен иметь начальное состояние” в файл такой процесс экспортируется, на сервер отказывается, в целом все воспроизводится.
Наверное как-то связано с тем, что БП, либо композиция не апдейтит состояние, сохраненное в кэше.
Проблема не связана с кешированием БП, и ее причина в корне отличается от причины ошибки данного тикета. Точная причина вообще пока не понятна - каким-то мифическим способом один и тот же валидатор одного и того же файла при сохранении данных в файл композиции возвращает положительный результат валидации, а при попытке экспорта - ошибку, как будто данные на самом деле не сохранились.
Разбор перенес в [#1024]
Related
Bugs:
#1024[r6261]
Related
Commit: [r6261]
[r6262]
удаление отладочного кода
Related
Commit: [r6262]
[r6263] merge [r6262]
Related
Commit: [r6262]
Commit: [r6263]
[r6264] - удаление девелоперского бранча
Related
Commit: [r6264]