legacy-knowledge-base
公開されました Jul. 2, 2025

CAPTCHAイメージの更新時にコンソールにJavaのNPEが表示される

投稿者

Justin Choi

knowledge-article-header-disclaimer-how-to

knowledge-article-header-disclaimer

legacy-article

learn-legacy-article-disclaimer-text

この記事は、CAPTCHA画像を更新すると、JavaのNullPointerException(NPE)が発生する既知の問題についての文書です。 なお、CAPTCHA画像 は引き続き更新されます。.

再現までの手順

  1. Liferay Digital Enterprise 7.0 プラットフォームを起動します。
  2. 上部にある「 Sign In 」リンクをクリックします。
  3. アカウント作成 ボタンをクリックします。
  4. CAPTCHA画像(通常は4つの乱数セット)の横にある「 Refresh 」ボタンをクリックしてください。

この時点で、機能の低下はないにもかかわらず、コンソールログにNPEが表示されます:

        java.lang.NullPointerException
        at com.jhlabs.image.ShadowFilter.imageComplete(ShadowFilter.java)
        at sun.awt.image.OffScreenImageSource.produce(OffScreenImageSource.java:189)
        at sun.awt.image.OffScreenImageSource.addConsumer(OffScreenImageSource.java:66)
        at sun.awt.image.OffScreenImageSource.startProduction(OffScreenImageSource.java:80)
        at java.awt.image.FilteredImageSource.startProduction(FilteredImageSource.java:183)
        at sun.awt.image.ImageRepresentation.startProduction(ImageRepresentation.java:732)
        at sun.awt.image.ImageRepresentation.drawToBufImage(ImageRepresentation.java:807)
        at sun.java2d.pipe.DrawImage.copyImage(DrawImage.java:1021)
        at sun.java2d.pipe.ValidatePipe.copyImage(ValidatePipe.java:186)
        at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:3318)
        at nl.captcha.util.ImageUtil.applyFilter(Unknown Source)
        at nl.captcha.gimpy.DropShadowGimpyRenderer.gimp(Unknown Source)
        at nl.captcha.Captcha$Builder.gimp(Unknown Source)
        at com.liferay.captcha.simplecaptcha.SimpleCaptchaImpl.getSimpleCaptcha(SimpleCaptchaImpl.java:221)
        at com.liferay.captcha.simplecaptcha.SimpleCaptchaImpl.serveImage(SimpleCaptchaImpl.java:160)
        at com.liferay.captcha.util.CaptchaUtil.serveImage(CaptchaUtil.java:92)
        at com.liferay.login.web.internal.portlet.action.CaptchaMVCResourceCommand.serveResource(CaptchaMVCResourceCommand.java:46)
        at com.liferay.portal.kernel.portlet.bridges.mvc.MVCPortlet.callResourceMethod(MVCPortlet.java:442)
        at com.liferay.portal.kernel.portlet.LiferayPortlet.serveResource(LiferayPortlet.java:140)
        at com.liferay.portal.kernel.portlet.bridges.mvc.MVCPortlet.serveResource(MVCPortlet.java:342)
        at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:122)
        at com.liferay.portlet.ScriptDataPortletFilter.doFilter(ScriptDataPortletFilter.java:85)
        at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:116)
        at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:71)
        at com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:108)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
        at org.eclipse.equinox.http.servlet.internal.registration.EndpointRegistration.service(EndpointRegistration.java:153)
        at org.eclipse.equinox.http.servlet.internal.servlet.ResponseStateHandler.processRequest(ResponseStateHandler.java:62)
        at org.eclipse.equinox.http.servlet.internal.context.DispatchTargets.doDispatch(DispatchTargets.java:117)
        at org.eclipse.equinox.http.servlet.internal.servlet.RequestDispatcherAdaptor.forward(RequestDispatcherAdaptor.java:40)
        at com.liferay.portlet.InvokerPortletImpl.invoke(InvokerPortletImpl.java:528)
        at com.liferay.portlet.InvokerPortletImpl.invokeResource(InvokerPortletImpl.java:631)
        at com.liferay.portlet.InvokerPortletImpl.serveResource(InvokerPortletImpl.java:468)
        at com.liferay.portal.monitoring.internal.portlet.MonitoringInvokerPortlet.serveResource(MonitoringInvokerPortlet.java:303)
        at com.liferay.portlet.PortletContainerImpl._serveResource(PortletContainerImpl.java:839)
        at com.liferay.portlet.PortletContainerImpl.serveResource(PortletContainerImpl.java:176)
        at com.liferay.portlet.SecurityPortletContainerWrapper.serveResource(SecurityPortletContainerWrapper.java:165)
        at com.liferay.portlet.RestrictPortletContainerWrapper.serveResource(RestrictPortletContainerWrapper.java:173)
        at com.liferay.portal.kernel.portlet.PortletContainerUtil.serveResource(PortletContainerUtil.java:169)
        at com.liferay.portal.action.LayoutAction.processLayout(LayoutAction.java:303)
        at com.liferay.portal.action.LayoutAction.execute(LayoutAction.java:159)
        at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
        at com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:170)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
        at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
        at com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:606)
        at com.liferay.portal.servlet.MainServlet.service(MainServlet.java:583)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:119)
        at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
        at com.liferay.portal.servlet.filters.uploadservletrequest.UploadServletRequestFilter.processFilter(UploadServletRequestFilter.java:93) ...

Truncated for space

この既知の問題の原因は、Java JDK 8を使用しているときの DropShadowGimpyRenderer CAPTCHAエンジンにあります。

解像度

ステータス固定

Liferay DXP 7.0 Service Pack 7 (Fix Pack FP-40) 以降にアップデートしてください。

追加情報

LPS-65331 を参照し、最終的に解決してください。 この修正をHotfixの形で受け取ることを希望されるお客様は、 、チケット( )を開き、このLPSをチケットに含めてください。

この問題は、Java JDK 8で動作している Liferay Portal 6.2 でも再現可能です。 Liferay PortalがJDK 7で動作している場合、この問題は再現しません。

did-this-article-resolve-your-issue

legacy-knowledge-base