この記事は、CAPTCHA画像を更新すると、JavaのNullPointerException(NPE)が発生する既知の問題についての文書です。 なお、CAPTCHA画像 は引き続き更新されます。.
再現までの手順
- Liferay Digital Enterprise 7.0 プラットフォームを起動します。
- 上部にある「 Sign In 」リンクをクリックします。
- アカウント作成 ボタンをクリックします。
- 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) 以降にアップデートしてください。