[Geoserver-devel] [JIRA] (GEOS-9643) WPS gs:Download process fails to produce big JPEG images

lorenzo.pini created an issue

GeoServer / BugGEOS-9643

WPS gs:Download process fails to produce big JPEG images

Issue Type:

BugBug

Affects Versions:

2.18-RC

Assignee:

Unassigned

Components:

WPS

Created:

09/Jun/20 3:52 PM

Environment:

Windows 10

Priority:

MediumMedium

Reporter:

lorenzo.pini

I’m trying to download a tiff file through the gs:Download WPS process.
I choose to use the “image/jpeg” output format but I get the following error:

<wps:ProcessFailed>
            <ows:ExceptionReport version="1.1.0">
                <ows:Exception exceptionCode="NoApplicableCode">
                    <ows:ExceptionText>Process failed during execution
java.lang.IllegalArgumentException: Requested region cannot be represented by a single Raster.
Requested region cannot be represented by a single Raster.</ows:ExceptionText>
                </ows:Exception>
            </ows:ExceptionReport>
 </wps:ProcessFailed>

I suspect this is because the source file is too big:
23759 × 30686 x 3 bands = 2.187.206.022 > 2.147.483.647 (max int size)

Here is the sample file (203MB) : https://www.dropbox.com/s/zouhvbq7ahbb0mh/OLCIL1RGB_9445_2002170403.tif?dl=0

The log is:

09 giu 15:27:10 ERROR [wps.executor] - Process execution failed
org.geotools.process.ProcessException: java.lang.IllegalArgumentException: Requested region cannot be represented by a single Raster.
        at org.geoserver.wps.gs.download.DownloadProcess.execute(DownloadProcess.java:433)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.geotools.process.factory.AnnotationDrivenProcessFactory$InvokeMethodProcess.execute(AnnotationDrivenProcessFactory.java:621)
        at org.geoserver.wps.executor.ProcessStartupFilter$ProcessStartupWrapper.execute(ProcessStartupFilter.java:50)
        at org.geoserver.wps.executor.DefaultProcessManager$ProcessCallable.call(DefaultProcessManager.java:224)
        at org.geoserver.wps.executor.DefaultProcessManager$ProcessCallable.call(DefaultProcessManager.java:192)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.IllegalArgumentException: Requested region cannot be represented by a single Raster.
        at javax.media.jai.PlanarImage.getData(PlanarImage.java:2163)
        at javax.media.jai.PlanarImage.getData(PlanarImage.java:2016)
        at javax.media.jai.RenderedOp.getData(RenderedOp.java:2266)
        at java.desktop/com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeOnThread(JPEGImageWriter.java:427)
        at java.desktop/com.sun.imageio.plugins.jpeg.JPEGImageWriter.write(JPEGImageWriter.java:371)
        at org.geotools.image.ImageWorker.writeJPEG(ImageWorker.java:3987)
        at org.geoserver.wps.ppio.CoveragePPIO$JPEGPPIO.encode(CoveragePPIO.java:117)
        at org.geoserver.wps.gs.download.RasterDownload.writeRaster(RasterDownload.java:879)
        at org.geoserver.wps.gs.download.RasterDownload.execute(RasterDownload.java:368)
        at org.geoserver.wps.gs.download.DownloadProcess.execute(DownloadProcess.java:336)
        ... 12 more

Is this a known limit of the gs:Download process or an actual bug?

Add Comment

Add Comment

Get Jira notifications on your phone! Download the Jira Cloud app for Android or iOS


This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100128-sha1:85a81c0)

Atlassian logo