Mac: JSF: ¿por qué las aplicaciones web JSF en etapa de desarrollo no siempre detectan cambios en los componentes compuestos?

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]

Soy un desarrollador experimentado de NetBeans + JSF, es decir, sé cómo se supone que funciona, y generalmente funciona, pero por alguna razón esto ya no funciona correctamente, en uno(y solo uno por lo que puedo decir) Máquina MacBook Pro [EDITAR: 2016-08-14 y también en una MacMini con la misma versión OS X].

Breve descripción del problema: Hace unos días, mientras estaba felizmente desarrollando una gran aplicación web JSF / Primefaces, descubrí que después de un par de recargas de páginas complejas de JSF / Primefaces en las que estaba trabajando, dejó de actualizar / reflejar los cambios que hice (y guardé) en el compuesto componentes. Sin embargo, descubrí que si esperaba unos minutos, podría volver a realizar la recarga bien, varias veces, reflejando los cambios de CC, hasta que se "atascara" nuevamente.

Sucede, por lo que puedo decir, solo en mi máquina de desarrollo principal que es una MacBook Pro 15 "(macbookpro11,3 Mid2014.).

[EDITAR: 2016-08-14 Ahora reproducido también en una Macmini4,1 Mid2010 que ejecuta la misma versión de OS X y una (ligeramente) adaptada* copiado * versión de la misma configuración completa de NetBeans / GlassFish NB8.1Beta / GF4.1, y con JSF 2.2.8-17]

No parece importar si:

Yo uso NetBeans-8.1beta / Glassfish4.1 o NetBeans8.1 / Glassfish4.1.1[Aparte: la razón por la que estoy usando principalmente NB8.1beta / GF4.1 no NB8.1 / GF4.1.1 se explica en:https://stackoverflow.com/questions/35681181/jsfobjectdb-why-might-deployment-of-a-large-web-app-to-glassfish-4-1-1-take-5]

Utilizo una instalación NetBeans + Glassfish completamente nueva o una existente.

Uso JDK1.7 (jdk1.7.0_51.jdk) o JDK1.8 (jdk1.8.0_60.jdk) (incluso para NetBeans / Glassfish y / o para la compilación y ejecución del código fuente).

Utilizo un proyecto que involucra a Git (el problema ocurrió por primera vez en un proyecto grande, pero desde entonces lo he reproducido en el más simple de los proyectos sin Git, es decir, tiene algo que ver solo con lo que sucede al detectar cambios de facelets en / build / web / )

Uso Primefaces o no (puedo lograr que suceda en una aplicación JSF muy básica).

Uso una recarga GET limpia o una recarga del comando del navegador.

Pero NO sucede, por lo que puedo decir, con una configuración casi idéntica en un MacMini anterior (macmini4,1 Mid2010).

[EDITAR: 2016-08-14 Sí, también sucede en esa MacMini si recargo las páginas JSF con la frecuencia suficiente en la aplicación web completa y grande que estoy desarrollando, no solo una mini aplicación de prueba]

Algunas otras cosas que creo saber al respecto:

Esto es con la función Implementar al guardar desactivada en todos los casos.

No parece afectar las plantillas JSF ni las incluye, solo parece afectar los componentes compuestos.

No es un problema con javax.faces.FACELETS_REFRESH_PERIOD (que por defecto para mojarra es 2). Si lo cambio a 0, el problema desaparece (no hay almacenamiento en caché) pero los tiempos de carga / recarga para páginas JSF complejas grandes se vuelven dolorosos, en algunos casos minutos en lugar de segundos.

Simplemente pasar de una página JSF a otra no ayuda.

No importa qué alcance JSF utilizo.

Sucede con una aplicación implementada en / build / web.

Las marcas de tiempo de los archivos XHTML modificados para los componentes compuestos definitivamente están cambiando a medida que los guardo en NetBeans (se copian correctamente en / build / web / resources / ...).

No he realizado ninguna actualización o instalación de software del sistema operativo durante muchos días.

Hice capturas de pantalla (no disponibles aquí) del problema completo como se informa a continuación.

Experiencia con la aplicación web original muy grande

Cuando encontré el problema por primera vez, estaba en una aplicación web muy grande. Lo noté con un pequeño componente compuesto pequeño que genera texto con una clase de estilo (para un icono), que CC se usó dentro de una pestaña p: accordionPanel y p:. Descubrí que después de volver a cargar los cambios un par de veces, dejaría de detectarlos. Fue solo por accidente que descubrí que si esperaba muchos minutos, a veces hasta 10 minutos, entonces "captaría" el cambio.

Luego volví a mis compromisos unos días, a un momento en que claramente pude desarrollarme sin ningún problema, ¡y el problema volvió a ocurrir! He probado esto muchas veces, sea cual sea el problema, no está en la confirmación .git (que incluye / nbproject / private pero no todas las subcarpetas de / nbproject / private).

Experiencia con una aplicación web de prueba Primefaces más pequeña

Luego lo probé con una aplicación web de prueba mucho más pequeña con algunas páginas de prueba de Primefaces. Pude reproducir el problema si volví a cargar la página index.xhtml varias veces, mientras cambiaba un pequeño componente compuesto de una línea de implementación utilizado en la página index.html. Luego descubrí que tenía que esperar unos 10 segundos o, a veces, un minuto entero, y luego el cambio se "atraparía" nuevamente.

Experiencia con una pequeña aplicación web JSF core

Con un index.xhtml y un único componente compuesto con una sola palabra h: outputText, podría solucionar el problema si guardara el CC y luego volviera a cargar el index.xhtml muy rápidamente. No estoy hablando de que no parezca cambiar (porque uno "venció" el javax.faces.FACELETS_REFRESH_PERIOD) Estoy hablando de que "se bloqueó" para que no detecte el cambio en el CC después de eso, no importa con qué frecuencia se recarga la página, hasta que el Fantasma en la máquina decida "desbloquearse".

Normalmente, de hecho, proporcionaría un ejemplo o "Pasos para reproducir el problema", pero tiene poco sentido hacerlo;Cuando muevo el proyecto de prueba de una máquina (mi MacBook Pro) a otra (la MacMini que ejecuta la misma versión del sistema operativo) el problema desaparece. Y puedo lograr que suceda (en mi máquina principal de desarrollo MacBook Pro) con la aplicación web NetBeans JSF más simple posible con un index.xhtml que incluye un solo CC.

[EDITAR: 2016-08-14 De hecho, puedo reproducirlo en esa MacMini que ejecuta la misma versión del sistema operativo, pero solo pude reproducirlo hasta ahora con la aplicación web muy grande que estoy desarrollando, que no se puede proporcionar fácilmente a otros para prueba (y necesitaría, por ejemplo, eliminar la dependencia de la base de datos ObjectDB y proporcionar datos ficticios)]

Me doy cuenta de que normalmente uno hace una sola pregunta sobre Stackoverflow, pero agradecería las respuestas a cualquiera de estas, que podrían ayudarme a seguir adelante:

P0: ¿Alguien ha experimentado algo similar (en una Mac)?

Q1: ¿Qué más puedo intentar diagnosticar? Se me acabaron las ideas.

P2: ¿Alguien sabe de algo específico de un MacBook Pro que pueda afectar el sondeo / detección de cambios en las carpetas de compilación / web que podrían explicarlo?

P3: ¿Hay algo acerca de cómo Facelets y / o Glassfish funcionan junto con una aplicación implementada en / build / web que pueda explicarlo?

Respuestas a la pregunta(1)

Su respuesta a la pregunta