Mac: JSF: почему веб-приложения JSF на стадии разработки не всегда отслеживают изменения составных компонентов?

Mac OS X: Yosemite 10.10.5
NetBeans8.1beta or NetBeans8.1
Glassfish4.1 or Glassfish4.1.1
Mojarra 2.2.7 or 2.2.12 [2016-08-14 EDIT: or 2.2.8-17]
[EDIT: Primefaces 5.3]

Я опытный разработчик NetBeans + JSF, то есть я знаю, как он должен работать и обычно работает, но по какой-то причине он больше не работает должным образом, на одном(и только один, насколько я могу судить) MacBook Pro [РЕДАКТИРОВАТЬ: 2016-08-14, а также на MacMini с той же версией OS X].

Краткое описание проблемы: Несколько дней назад, когда я счастливо разрабатывал большое веб-приложение JSF / Primefaces, я обнаружил, что после нескольких перезагрузок сложных страниц JSF / Primefaces, над которыми я работал, перестало обновляться / отражать изменения, которые я сделал (и сохранил) в композитном компоненты. Однако я обнаружил, что, если я подожду несколько минут, я смогу снова выполнить перезагрузку, в течение нескольких раз, отражая изменения CC, пока он снова не "застрянет".

Это происходит, насколько я могу судить, только на моей основной машине разработки который является MacBook Pro 15 "(macbookpro11,3 Mid2014.).

[EDIT: 2016-08-14 Теперь воспроизводится также на macmini4,1 Mid2010, работающем в той же версии OS X и работающем (слегка) адаптированном* Скопирована * версия всей той же установки NetBeans / GlassFish NB8.1Beta / GF4.1 и с JSF 2.2.8-17]

Похоже, не имеет значения:

Я использую NetBeans-8.1beta / Glassfish4.1 или NetBeans8.1 / Glassfish4.1.1[ВНЕ: причина, по которой я в основном использую NB8.1beta / GF4.1, а не NB8.1 / GF4.1.1, объясняется по адресу:https://stackoverflow.com/questions/35681181/jsfobjectdb-why-might-deployment-of-a-large-web-app-to-glassfish-4-1-1-take-5]

Я использую полностью свежую или установленную версию NetBeans + Glassfish.

Я использую JDK1.7 (jdk1.7.0_51.jdk) или JDK1.8 (jdk1.8.0_60.jdk) (в том числе для NetBeans / Glassfish и / или для компиляции и выполнения исходного кода).

Я использую проект, в котором используется Git (проблема впервые возникла в большом проекте, но с тех пор я воспроизводил его в простейших проектах без Git, то есть он имеет отношение только к тому, что происходит, обнаруживая изменения граней в / build / web / ).

Я использую Primefaces или нет (я могу добиться этого в очень простом приложении JSF).

Я использую чистую перезагрузку GET или перезагрузку команды браузера.

Но это не происходит, насколько я могу судить, с почти идентичной установкой на более старом MacMini (macmini4,1 Mid2010).

[EDIT: 2016-08-14 Да, на MacMini это действительно происходит, если я достаточно часто перезагружаю страницы JSF в полном, большом веб-приложении, которое я разрабатываю, а не просто в мини-тестовом приложении]

Некоторые другие вещи, которые я думаю, я знаю об этом:

Это во всех случаях отключает функцию «Развернуть при сохранении».

Кажется, что он не затрагивает шаблоны JSF или включает в себя, а только затрагивает составные компоненты.

Это не проблема с javax.faces.FACELETS_REFRESH_PERIOD (который по умолчанию для мохарры равен 2). Если я изменяю его на 0, проблема исчезает (кэширование отсутствует), но время загрузки / перезагрузки для больших сложных страниц JSF становится болезненным, в некоторых случаях минуты, а не секунды.

Просто переход с одной страницы JSF на другую не помогает.

Не имеет значения, какую область применения JSF я использую.

Это происходит с приложением, развернутым через / build / web.

Временные метки измененных файлов XHTML для составных компонентов определенно меняются, поскольку я сохраняю их в NetBeans (они правильно копируются в / build / web / resources / ...).

Я не делал никаких обновлений программного обеспечения ОС или установки в течение многих дней.

Я сделал скриншоты (не доступны здесь) всей проблемы, как описано ниже.

Опыт работы с оригинальным очень большим веб-приложением

Когда я впервые столкнулся с проблемой, это было в очень большом веб-приложении. Я заметил это с крошечным составным компонентом, который генерирует некоторый текст с классом стиля (для иконки), который CC использовался внутри p: accordionPanel и p: tab. Я обнаружил, что после перезагрузки изменений пару раз он перестал ловить изменения. Только случайно я обнаружил, что если я подожду много минут, иногда до 10 минут, это «поймает» изменения.

Затем я вернулся к своим коммитам на несколько дней, в то время, когда я явно мог развиваться без каких-либо проблем, и проблема снова возникла! Я проверял это много раз, независимо от того, в чем проблема, это не в коммите .git (который включает / nbproject / private, но не все подпапки в / nbproject / private).

Опыт работы с меньшим тестовым веб-приложением Primefaces

Затем я попробовал это с гораздо меньшим тестовым веб-приложением с некоторыми тестовыми страницами Primefaces. Я смог воспроизвести проблему, если несколько раз перезагрузил страницу index.xhtml, при этом изменив крошечный составной компонент, состоящий из одной реализации, используемый на странице index.html. Затем я обнаружил, что мне нужно подождать около 10 секунд, а иногда и целую минуту, и тогда изменение снова «зацепится».

Опыт работы с крошечным основным веб-приложением JSF

С одним index.xhtml и одним составным компонентом с одним словом h: outputText я мог бы решить эту проблему, если бы сохранил CC, а затем очень быстро перезагрузил index.xhtml. Я не говорю о том, что он не меняется (потому что он «бьет» javax.faces.FACELETS_REFRESH_PERIOD), я говорю о том, что он «блокируется», чтобы он вообще не улавливал изменения в CC после этого, независимо от того, как часто вы перезагружаете страницу, пока Призрак в Машине не решит сам "разблокировать".

Обычно я действительно приводил бы пример или «Шаги по воспроизведению проблемы», но в этом нет особого смысла;когда я перемещаю тестовый проект с одной машины (мой MacBook Pro) на другую (MacMini работает под управлением той же версии ОС), проблема исчезает. И я могу добиться этого (на своем главном компьютере для разработки MacBook Pro) с помощью простейшего из возможных веб-приложений JSF NetBeans с index.xhtml, включающим одну CC.

[EDIT: 2016-08-14 Я действительно могу воспроизвести его на том MacMini, работающем под той же версией ОС, но пока что я мог воспроизвести его только с очень большим веб-приложением, которое я разрабатываю, которое не может быть легко предоставлено другим для тестирование (и мне нужно, например, чтобы удалить зависимость от базы данных ObjectDB и предоставить фиктивные данные)]

Я понимаю, что обычно задают один вопрос о Stackoverflow, но ответы на любой из них, которые могут помочь мне двигаться вперед, будут оценены по достоинству:

Q0: Кто-нибудь испытывал что-нибудь подобное (на Mac)?

Q1: Что еще я могу попытаться диагностировать? У меня нет идей.

Q2: Кто-нибудь знает что-то специфическое для MacBook Pro, которое может повлиять на опрос / обнаружение изменений в папках build / web, которые могут это объяснить?

В3: Есть ли что-нибудь о том, как Facelets и / или Glassfish работают вместе с приложением, развернутым через / build / web, что могло бы объяснить это?

Ответы на вопрос(1)

Ваш ответ на вопрос