Открытие экрана edit по внешней ссылке ломает верстку и приводит зависанию UI

Проблема проявилась после миграции проекта с 6.10.9 на 7.0.3 и сохранятся на 7.0.8.
При открытии некоторых экранов по внешней ссылке, верстка экрана рассыпается, а UI зависает. При этом на экране пользователь видит такую жуть.
image
От браузера картина особо не меняется.
В catalina.out тишина.
А в консоли браузера обнаружили такое сообщение:
Wed Jul 10 16:44:54 GMT+700 2019 com.vaadin.client.communication.MessageHandler
SEVERE: Error handling type data
com.google.gwt.core.client.JavaScriptException: (TypeError) : d.fileupload is not a function

Сведения
at Unknown.Sdd(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.new ned(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.new Edd(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.WMe(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.J$e(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.A6b(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.ccd(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.P5b(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.b6b(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.WJd(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.ZWd(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.aXd(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.pXd(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.vJd(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.FSd(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.bee(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.wRe(com.haulmont.cuba.web.widgets.WidgetSet-25.js)
at Unknown.Uh(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.Zh(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.ui(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.xi(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.eval(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.anonymous(com.haulmont.cuba.web.widgets.WidgetSet-25.js)
at Unknown.com_haulmont_cuba_web_widgets_WidgetSet.__installRunAsyncCode(http://localhost:8080/vedoc/VAADIN/widgetsets/com.haulmont.cuba.web.widgets.WidgetSet/com.haulmont.cuba.web.widgets.WidgetSet.nocache.js?1562751893472)
at Unknown.__gwtInstallCode(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.Ki(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.gj(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.eval(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.ui(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.xi(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.eval(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.anonymous(http://localhost:8080/vedoc/VAADIN/widgetsets/com.haulmont.cuba.web.widgets.WidgetSet/deferredjs/69A03E66BB1C98173BAB6ED25803FF09/25.cache.js)

Если открывать этот экран без использования внешней ссылки - он работает без проблем.

Пару таких проблемных экранов отличает от других то, что у проблемных компонент multiUpload используется на основной вкладке tabSheet.
Схожие экраны, где multiUploadрасположен на вторичных вкладках tabSheet - исправно открываются по внешней ссылке.

Если на проблемных экранах работу с файлами и компонент multiUpload перенести из первой, открываемой по-умолчанию, вкладки tabSheet на вкладки глубже - проблема исчезает.
Простое добавление одного только multiUpload на основную вкладку - приводит к описанному выше коллапсу.

К сожалению, на на тестовом примере, изначально созданном на 7.0.7, воспроизвести пока не получилось.
Есть идеи на тему того, где искать корень зла?
Можно, конечно, пока обойти выносом работы с файлами на вторичные вкладки, но на этих двух экранах удобнее иметь файлы сразу на основной вкладке.

Здравствуйте,

Не могли бы вы уточнить о какой внешней ссылке идёт речь? Попробовал воспроизвести проблему через новую навигацию и через LinkHandler, но ничего не случилось.

Приложите, пожалуйста, тестовый проект при возможности.

Даниил

Это на старой навигации (LinkHandler), на новую еще не переезжали.
К сожалению, на простом тестовом примере у меня не получается это воспроизвести.
Вполне возможно, что это зависит от сочетания используемых на экране контролов или наличия тех же фреймов.
Если ни кто с подобным не сталкивался и быстрого решения нет, то пока пойдем в обход.
По мере переработки экранов на новый API и новую навигацию проблема сама рассосется.

Попробуйте добавить в адрес GET параметр ?debug до ваших параметров (если их много, соедините с &). Тогда в Dev Tools веб-браузера можно будет увидеть исключения в JavaScript, если они произошли. Это и могло сломать вёрстку.

Я сталкивался только с таким

Если честно, то яснее не стало :slight_smile:
В Chrome концы ведут на тот же com.haulmont.cuba.web.widgets.WidgetSet-0.js.
image

В подробностях:

SEVERE: Error handling type data
com.google.gwt.core.client.JavaScriptException: (TypeError) : d.fileupload is not a function
at Unknown.Sdd(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
...
Сведения

SEVERE: Error handling type data
com.google.gwt.core.client.JavaScriptException: (TypeError) : d.fileupload is not a function
at Unknown.Sdd(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.new ned(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.new Edd(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.WMe(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.J$e(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.A6b(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.ccd(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.P5b(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.b6b(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.WJd(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.ZWd(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.aXd(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.pXd(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.vJd(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.FSd(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.bee(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.wRe(com.haulmont.cuba.web.widgets.WidgetSet-25.js)
at Unknown.Uh(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.Zh(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.ui(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.xi(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.eval(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.anonymous(com.haulmont.cuba.web.widgets.WidgetSet-25.js)
at Unknown.com_haulmont_cuba_web_widgets_WidgetSet.__installRunAsyncCode(http://localhost:8080/vedoc/VAADIN/widgetsets/com.haulmont.cuba.web.widgets.WidgetSet/com.haulmont.cuba.web.widgets.WidgetSet.nocache.js?1563881468652)
at Unknown.__gwtInstallCode(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.Ki(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.gj(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.eval(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.ui(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.xi(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.eval(com.haulmont.cuba.web.widgets.WidgetSet-0.js)
at Unknown.anonymous(http://localhost:8080/vedoc/VAADIN/widgetsets/com.haulmont.cuba.web.widgets.WidgetSet/deferredjs/69A03E66BB1C98173BAB6ED25803FF09/25.cache.js)

d.fileupload is not a function

Кажется виноват компонент загрузки файлов. Если его убрать проблема останется ?

Да, как я писал в первом посте - если multiUpload убрать - все становится хорошо.
Или если его убрать с “морды” экрана на вторичные вкладки tabSheet.

@andrey_vb

Скажите, пожалуйста, используется ли у вас совместно с компонентом функциональность dropZone или pasteZone?

Да, есть и dropZone и pasteZone.
dropZone я точно пытался удалять - это ничего не изменило.

К сожалению так и не смог воспроизвести проблему - создавал на 6.10.9, мигрировал, создавал сразу на 7.0.3, в разных браузерах - ничего.

Воспроизводится ли у вас проблема, если создать тестовый проект и промигрировать его?

У меня тоже в лоб не получились воспроизвести через проект 6.10.9 с миграцией на 7.0.3 и 7.0.8.
Скорее всего, все же, тут ещё и сочетание элементов в вёрстке замешано.
Пытаться воспроизвести все условия, включая вёрстку и фреймы - слишком трудоемко.
Будем тогда пару проблемных экранов в первую очередь переводить на новый API.

Но, все равно - спасибо.

1 симпатия