この記事は、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) 以降にアップデートしてください。