Feijão ViewScoped reconstruído quando FileUploadListener chamou usando PrettyFaces

Eu inseri um<p:fileUpload /> componente no meuJSF 2.1.5 aplicação. estou a usarPrimeFaces 3.4.1. Este componente é apoiado por um@ViewScoped feijão. Eu tenho minha forma desta maneira:

<?xml version='1.0' encoding='UTF-8' ?>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:p="http://primefaces.org/ui"
template="/templates/general_template.xhtml">

<ui:define name="metadata">
    <f:metadata>

        <f:viewParam id="NavIndex" name="NavIndex"
            value="#{navegableMassiveUserAdd._QueueIndex}" />
        <f:event type="preRenderView"
            listener="#{navegableMassiveUserAdd.initialize}" />
    </f:metadata>
</ui:define>

<ui:define name="general_content">
    <h:form>

        <p:fileUpload
            fileUploadListener="#{navegableMassiveUserAdd.listener}"
            mode="advanced" allowTypes="/(\.|\/)(xls|csv)$/"
            label="#{msg.SELECT}" multiple="false" />

        <p:commandButton id="cancelButton"
            action="#{navegableMassiveUserAdd.actionCancelAdd}"
            value="#{msg.CANCELAR}" ajax="false" style="margin: 9px 0px 5px;" />
    </h:form>
</ui:define>

Aqui está meu modelo principal:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
                  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:p="http://primefaces.org/ui" xmlns:o="http://omnifaces.org/ui">


<h:head>
    <meta http-equiv="Pragma" CONTENT="no-cache"></meta>
    <meta http-equiv="cache-control" content="no-cache"></meta>
    <meta http-equiv="Expires" CONTENT="-1"></meta>
    <meta http-equiv="Content-Type"
        content="text/html; charset=ISO-8859-15" />
    <h:outputStylesheet library="css" name="prime_styles.css" />
    <h:outputScript library="js" name="prime_translations.js" />
</h:head>

<h:body>
    <ui:insert name="metadata" />
    <ui:insert name="general_logged_user">
        <div align="right">
            <span style="color: #B22222; padding: 3px;"> <h:outputText
                    value="#{loggedBean._Login}" />
            </span> <span style="color: #FFA54F; padding: 3px;"> <h:outputText
                    value="Auth Method: #{loggedBean._Usuario._CUser._AuthenticationMethod}" />
            </span>
        </div>
    </ui:insert>
    <f:view locale="#{localeBean.locale}">
        <ui:insert name="general_settings">
            <f:loadBundle basename="resources.system.bundles.Messages" var="msg" />
            <p:ajaxStatus style="width:0px;height:0px;" id="ajaxStatusPanel"
                styleClass="spinner_ajax_loading">

                <f:facet name="start">
                    <h:graphicImage value="/resources/images/loading.gif" />
                </f:facet>

                <f:facet name="complete">
                    <h:outputText value="" />
                </f:facet>
            </p:ajaxStatus>
            <p:growl id="messages" autoUpdate="true" />
        </ui:insert>

        <f:event type="preRenderView"
            listener="#{navigationManagerSystem.initialize}" />


        <h:panelGroup>
            <ui:insert name="general_header">
                <ui:include src="/components/header.xhtml" />
            </ui:insert>
            <h:panelGroup id="menuNavegacionPanel">

                <h:form>
                    <h:panelGroup id="navigationPanel"
                        rendered="#{navigationManagerSystem._ShowNavegacion}">
                        <h:panelGroup
                            rendered="#{!navigationManager._DisableNavigationButtons}">
                            <p:toolbar>
                                <p:toolbarGroup>
                                    <ui:repeat value="#{navigationManagerSystem._Navegables}"
                                        var="item">
                                        <p:button value="#{item._Title}"
                                            outcome="#{item._NavigationResult}">
                                            <f:param name="NavIndex" value="#{item._QueueIndex}" />
                                        </p:button>
                                    </ui:repeat>
                                    <p:button disabled="true"
                                        value="#{navigationManagerSystem._Navegable._Title}" />
                                </p:toolbarGroup>
                            </p:toolbar>
                        </h:panelGroup>

                    </h:panelGroup>
                </h:form>
            </h:panelGroup>
            <ui:insert name="general_content">
                <ui:include src="/system/content.xhtml" />
            </ui:insert>

        </h:panelGroup>
        <ui:insert name="general_footer">

            <ui:include src="/components/general_footer.xhtml" />

        </ui:insert>
    </f:view>

</h:body>

Com isso, quando eu carrego meu arquivo, o bean está sendo reconstruído elistener método não sendo chamado. Eu tenho os filtros colocados no meuweb.xml. Além disso, se eu mudar o meu formulário e configurá-lo comoenctype="multipart/form-data", como eu li na documentação, não posso evitar o problema e o bean é reconstruído novamente, neste caso, mesmo quando clico no botão cancelar. Esse é o meu código de bean, ondeSystemNavegable é uma classe abstrata:

@SuppressWarnings("serial")
@ManagedBean
@ViewScoped
public class NavegableMassiveUserAdd extends SystemNavegable {

/**
 * Field logger.
 */
protected final Log logger = LogFactory.getLog(this.getClass());

/**
 * Constructor for NavegableMassiveUserAdd.
 */
public NavegableMassiveUserAdd() {
    super();
    this.set_Title(FacesUtils.getBundle(BundleNames.BUNDLE_SYSTEM_MENU,
            BundleKeys.SYSTEM_NAVEGABLE_ADD_USERS, "Añadir usuarios"));
    this.set_TitleDescription(FacesUtils.getBundle(BundleNames.BUNDLE_SYSTEM_MENU,
            BundleKeys.SYSTEM_NAVEGABLE_ADD_USERS_DESCRIPTION, "Añadir usuarios"));
    this.set_NavigationResult(NavigationResults.MASSIVE_USER_ADD);
    this._Behaviour = NavegableBehaviour.ADD;
}
/**
 * Method actionCancelAdd.
 * 
 * @return
 */
public String actionCancelAdd() {
    return this._NavigationManagerSystem.cancelNavegable();
}

/**
 * Escuchador del evento Upload.
 * 
 * 
 * 
 * @param event
 *            FileUploadEvent
 * @throws IOException
 * @throws java.io.IOException
 */
public void listener(FileUploadEvent event) throws IOException {
    UploadedFile uploadItem = event.getFile();
    //More code
    }

Alguma sugestão? Desde já, obrigado.

EDITADO

Mais testes feitos e descobri que o método listener de upload de arquivos nunca é alcançado, não importa qual Scope eu forneço ao bean de apoio. Eu tenho seguintes dependências incluídas:

<dependency>
        <groupId>commons-fileupload</groupId>
        <artifactId>commons-fileupload</artifactId>
        <version>1.2.1</version>
    </dependency>
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>1.3.2</version>
    </dependency>

E eu suspeito que o problema pode ser que há outro filtro em conflito com o que eu tenho para o componente de upload,como é dito aqui. Seja qual for o problema, o método de inicialização do meu bean está sendo chamado novamente quando o arquivo é carregado eFacesContext.getCurrentInstance().isPostback() vem com falso.

questionAnswers(2)

yourAnswerToTheQuestion