Primefaces dinámico overlayPanel mostrando solo una vez

Tengo un formulario con un botón que abre un Primafaces.overlayPanel. En el panel hay otro botón que realiza una acción Ajax y luego cierra la superposición.
Aquí hay una versión simplificada sin ninguna acción Ajax:

<h:form>
    <p:commandButton id="button1" value="Open overlay" type="button"/>
    <p:overlayPanel for="button1" widgetVar="ovl" dynamic="true">
        <p:commandButton value="Close" oncomplete="ovl.hide();"
                         update="@form"/>
    </p:overlayPanel>
</h:form>

Tenga en cuenta que el panel debe tenerdynamic="true" porque el contenido dinámico debe ser recuperado en la aplicación real, yupdate="@form" Es necesario para actualizar otros componentes del formulario.

El problema es: si tengo ambos atributos,dynamic="true" yupdate="@form" La superposición aparece solo la primera vez. Después de hacer clic en el botón "cerrar", si intento hacer clic en "abrir superposición" una vez más, el panel no aparecerá.

¿Qué estoy haciendo mal?

(Usando PrimeFaces 3.5 y GlassFish 3.1.2.2)

Respuestas a la pregunta(3)

Su respuesta a la pregunta