1

WAS 8.0.0.9 の JSF(2.1.17) myfaces /PrimeFaces + Omnifaces に基づく Web アプリケーションがあります。

ほとんどの場合、すべて問題なく動作しますが、次の例外が発生することがあります。

java.lang.NullPointerException
        at org.apache.myfaces.shared.context.flash.FlashImpl.isKeepMessages(FlashImpl.java:388)
        at org.apache.myfaces.shared.context.flash.FlashImpl._saveMessages(FlashImpl.java:668)
        at org.apache.myfaces.shared.context.flash.FlashImpl.doPostPhaseActions(FlashImpl.java:269)
        at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:254)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:199)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1230)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:779)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478)
        at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
        at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)
        at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97)
        at org.omnifaces.filter.FacesExceptionFilter.doFilter(FacesExceptionFilter.java:56)
        at org.omnifaces.filter.HttpFilter.doFilter(HttpFilter.java:77)
        at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
        at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)

// ... その他のフィルター ...

FlashImplline388を見ると、見つかった場合:

@Override
public boolean isKeepMessages()
{
    FacesContext facesContext = FacesContext.getCurrentInstance();
    ExternalContext externalContext = facesContext.getExternalContext(); //<-- line 388
    Map<String, Object> requestMap = externalContext.getRequestMap();
    Boolean keepMessages = (Boolean) requestMap.get(FLASH_KEEP_MESSAGES);

    return (keepMessages == null ? Boolean.FALSE : keepMessages);
}

だから、ないように見えますFacesContext。ただし(コードをもう一度見てみると)FacesServlet.service、コールスタックのさらに上に作成されるはずです。

登録したフィルターの 1 つは、JSF ライフサイクルのさまざまなフェーズで使用された時間をログに記録し、フェーズ RENDER_RESPONSE が既に実行されているにもかかわらず、開始されたと不平を言います。

ロギングは、現在のリクエストでリクエストされたページが見つからなかったため、適切なエラー ページがリクエストされたことも示唆しています。

これはすべて Ajax リクエスト中に発生する可能性がありますが、よくわかりません。

この問題を引き起こしている可能性のあるアイデアはありますか?

このバグレポートを見つけましたが、参照が見つからなかったため、getRequestDispatcher適用されないようです。

私はまた、この質問を見つけました: IBM JSF の FlashImpl.java の Null ポインター例外。 1。

4

0 に答える 0