Image resizing producing an NPE in ICC_Profile

Description

NPE

java.awt.color.ICC_Profile.intFromBigEndian(ICC_Profile.java:1767)

that is related to

https://bugs.openjdk.java.net/browse/JDK-6986863

https://stackoverflow.com/questions/50461289/imageio-read-diferent-files-concurrency-issue

02-Jun-2021 17:31:06.835 ERROR [http-nio-20020-exec-12] org.sakaiproject.util.RequestFilter.doFilter cn.bluejoe.elfinder.controller.FsException: unknown error at cn.bluejoe.elfinder.controller.ConnectorController.connector(ConnectorController.java:96) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:181) at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:440) at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:428) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) at javax.servlet.http.HttpServlet.service(HttpServlet.java:626) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) at javax.servlet.http.HttpServlet.service(HttpServlet.java:733) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:475) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:747) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1589) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.NullPointerException at java.awt.color.ICC_Profile.intFromBigEndian(ICC_Profile.java:1767) at java.awt.color.ICC_Profile.getNumComponents(ICC_Profile.java:1459) at sun.java2d.cmm.lcms.LCMSTransform.<init>(LCMSTransform.java:98) at sun.java2d.cmm.lcms.LCMS.createTransform(LCMS.java:173) at java.awt.color.ICC_ColorSpace.fromRGB(ICC_ColorSpace.java:230) at com.sun.imageio.plugins.jpeg.JPEGImageReader.setImageData(JPEGImageReader.java:713) at com.sun.imageio.plugins.jpeg.JPEGImageReader.readImageHeader(Native Method) at com.sun.imageio.plugins.jpeg.JPEGImageReader.readNativeHeader(JPEGImageReader.java:628) at com.sun.imageio.plugins.jpeg.JPEGImageReader.checkTablesOnly(JPEGImageReader.java:347) at com.sun.imageio.plugins.jpeg.JPEGImageReader.gotoImage(JPEGImageReader.java:495) at com.sun.imageio.plugins.jpeg.JPEGImageReader.readHeader(JPEGImageReader.java:621) at com.sun.imageio.plugins.jpeg.JPEGImageReader.getWidth(JPEGImageReader.java:735) at org.sakaiproject.elfinder.controller.executors.SakaiTmbCommandExecutor.resize(SakaiTmbCommandExecutor.java:60) at org.sakaiproject.elfinder.controller.executors.SakaiTmbCommandExecutor.execute(SakaiTmbCommandExecutor.java:44) at cn.bluejoe.elfinder.controller.executor.AbstractCommandExecutor.execute(AbstractCommandExecutor.java:102) at cn.bluejoe.elfinder.controller.ConnectorController.connector(ConnectorController.java:67) ... 39 more

Attachments

1
  • 05 Jun 2021, 09:06 AM

Activity

Show:

Andrea Schmidt June 13, 2021 at 5:01 PM

No stack trace, but same behavior:

20x: https://qa20-mysql.nightly.sakaiproject.org/, build: 43d64e89
19x: https://qa19-mysql.nightly.sakaiproject.org/, build: 8e5d9849

Andrea Schmidt June 13, 2021 at 4:55 PM

Verified the behavior is the same as for 22x on 21x: https://qa21-mysql.nightly.sakaiproject.org/, build: a97ad56f 

All images display except the 16mb image. There is no stacktrace and the 16mb image can be inserted using the ckeditor

Andrea Schmidt June 5, 2021 at 9:48 AM

Same behavior for 20x: https://qa20-mysql.nightly.sakaiproject.org/, build: 43d64e89 and 19x: https://qa19-mysql.nightly.sakaiproject.org/, build: 8e5d9849, but 19x has extra issues and the elfinder window does not close: 19x Uncaught TypeError (CK Editor): https://sakaiproject.atlassian.net/browse/SAK-45581#icft=SAK-45581
19x Cannot read property 'data' of undefined (elfinder): https://sakaiproject.atlassian.net/browse/SAK-45582#icft=SAK-45582

Andrea Schmidt June 5, 2021 at 9:05 AM

Tested on 22x: https://trunk-mysql.nightly.sakaiproject.org/, build: 9b1613a1 and 21x: https://qa21-mysql.nightly.sakaiproject.org/, build: 3d5c5767

Images up to 20MB are allowed in resources and the "chair" picture I've been using for testing shows up as 16.5MB in resources when uploading. The thumbnails for the smaller pictures display, but the chair thumbnail never does, no matter how many times you access the images in resources using the elfinder. Behavior is the same on 22x and 21x.

There are no stacktraces on the server, though, and I am able to insert the chair image into announcements and syllabus.

Images and sizes as listed in resources:

  • 1-2000x2000.jpg 186.2 

  • 289-5000x5000.jpg 2.3 MB

  • 842-5000x5000.jpg 0.8 MB

  • ACM-1995_5009_0003-r1-000001.jpg 2.8 MB

  • ACM-acmobj-201100040013.jpg 1 MB

  • CHSDM-F5A32E04B80D2-000001.jpg 15.8 MB

  • IMG_2291.JPG 3.5 MB

  • IMG_2737_med.JPG 302.6 KB

  • NPG-A1000026A_5.jpg 1.6 MB

  • pinecone.jpg 448.9 KB

  • SAAM-1986.79_2.jpg 1.8 MB

Brian J. June 4, 2021 at 9:35 AM

Great, thanks for clarifying!

Fixed

Details

Priority

21 Status

Verified

Components

Assignee

Reporter

Created June 3, 2021 at 11:22 AM
Updated June 13, 2021 at 5:01 PM
Resolved June 3, 2021 at 3:14 PM

Flag notifications