[GPT] Casting Error with Sentinel 2 products
Description
Environment
Ubuntu 19.10 x64 / Docker Ubuntu 18.04
Zulu JDK 8
GitHub Work
None
relates to
Activity
Show:
Marco Peters
made 12 changes10 February 2023 at 14:26
Status
Reopened
Closed
Components
S2TBX
None
Components
None
S2TBX
Marco Peters
made 4 changes10 February 2023 at 14:20
Status
Closed
Reopened
Components
None
Optical
Components
None
S2TBX
Marco Peters
changed the status28 October 2022 at 08:31Resolved
Closed
Oana Hogoiu
updated the Sprint12 May 2020 at 14:59None
STEP 8.0
Oana Hogoiu
made 5 changes7 May 2020 at 22:05
Status
Open
Resolved
Assignee
Martino Ferrari
Jean Coravu
Resolution
None
Fixed
Oana Hogoiu
updated the link29 April 2020 at 07:31None
This issue relates to SIITBX-425
Martino Ferrari
updated the description23 April 2020 at 15:59A Java casting error is produced with S2 products on my setup as well on the build server, however many developers can not reproduce the error.
The stack trace is:
{noformat}>> org.esa.snap.core.gpf.OperatorException: [B cannot be cast to [S
>> at org.esa.snap.core.gpf.graph.GraphProcessor$GPFImagingListener.errorOccurred(GraphProcessor.java:379)
>> at com.sun.media.jai.util.SunTileScheduler.sendExceptionToListener(SunTileScheduler.java:1646)
>> at com.sun.media.jai.util.SunTileScheduler.scheduleTile(SunTileScheduler.java:921)
>> at javax.media.jai.OpImage.getTile(OpImage.java:1129)
>> at javax.media.jai.PointOpImage.computeTile(PointOpImage.java:911)
>> at com.sun.media.jai.util.SunTileScheduler.scheduleTile(SunTileScheduler.java:904)
>> at javax.media.jai.OpImage.getTile(OpImage.java:1129)
>> at javax.media.jai.PlanarImage.cobbleDouble(PlanarImage.java:3355)
>> at javax.media.jai.PlanarImage.getData(PlanarImage.java:2184)
>> at javax.media.jai.PlanarImage.getExtendedData(PlanarImage.java:2440)
>> at javax.media.jai.GeometricOpImage.computeTile(GeometricOpImage.java:678)
>> at com.sun.media.jai.util.SunTileScheduler.scheduleTile(SunTileScheduler.java:904)
>> at javax.media.jai.OpImage.getTile(OpImage.java:1129)
>> at javax.media.jai.PointOpImage.computeTile(PointOpImage.java:911)
>> at com.sun.media.jai.util.SunTileScheduler.scheduleTile(SunTileScheduler.java:904)
>> at javax.media.jai.OpImage.getTile(OpImage.java:1129)
>> at javax.media.jai.PlanarImage.cobbleUShort(PlanarImage.java:3052)
>> at javax.media.jai.PlanarImage.getData(PlanarImage.java:2175)
>> at com.bc.ceres.glevel.MultiLevelImage.getData(MultiLevelImage.java:64)
>> at org.esa.snap.core.datamodel.Band.readRasterData(Band.java:311)
>> at org.esa.snap.core.dataio.ProductSubsetBuilder.readBandRasterDataRegion(ProductSubsetBuilder.java:395)
>> at org.esa.snap.core.dataio.ProductSubsetBuilder.readBandRasterDataImpl(ProductSubsetBuilder.java:332)
>> at org.esa.snap.core.dataio.AbstractProductReader.readBandRasterData(AbstractProductReader.java:266)
>> at org.esa.snap.core.gpf.common.SubsetOp.computeTile(SubsetOp.java:297)
>> at org.esa.snap.core.gpf.internal.OperatorImage.computeRect(OperatorImage.java:82)
>> at javax.media.jai.SourcelessOpImage.computeTile(SourcelessOpImage.java:137)
>> at com.sun.media.jai.util.SunTileScheduler.scheduleTile(SunTileScheduler.java:904)
>> at javax.media.jai.OpImage.getTile(OpImage.java:1129)
>> at javax.media.jai.PlanarImage.getData(PlanarImage.java:2085)
>> at com.bc.ceres.glevel.MultiLevelImage.getData(MultiLevelImage.java:64)
>> at org.esa.snap.core.gpf.internal.OperatorContext.getSourceTile(OperatorContext.java:449)
>> at org.esa.snap.core.gpf.internal.OperatorContext.getSourceTile(OperatorContext.java:435)
>> at org.esa.snap.core.gpf.internal.OperatorImage.computeRect(OperatorImage.java:75)
>> at javax.media.jai.SourcelessOpImage.computeTile(SourcelessOpImage.java:137)
>> at com.sun.media.jai.util.SunTileScheduler.scheduleTile(SunTileScheduler.java:904)
>> at javax.media.jai.OpImage.getTile(OpImage.java:1129)
>> at com.sun.media.jai.util.RequestJob.compute(SunTileScheduler.java:247)
>> at com.sun.media.jai.util.WorkerThread.run(SunTileScheduler.java:468)
>> Caused by: java.lang.ClassCastException: [B cannot be cast to [S
>> at org.esa.snap.core.datamodel.ProductData.createInstance(ProductData.java:283)
>> at org.esa.snap.core.image.VirtualBandOpImage.addDataToReferredRasterDataSymbols(VirtualBandOpImage.java:319)
>> at org.esa.snap.core.image.VirtualBandOpImage.computeTile(VirtualBandOpImage.java:235)
>> at com.sun.media.jai.util.SunTileScheduler.scheduleTile(SunTileScheduler.java:904)
>> ... 35 more{noformat}
The band datatype is computed by the {{RasterDataNode}} object using the {{getDataType()}} method, it returns the value {{21}} standing for {{UINT16}} however the data seems to be encoded in {{UINT8}} in some environment.
Martino Ferrari
created the Issue23 April 2020 at 15:56Done
Details
Assignee
Jean CoravuJean CoravuReporter
Martino FerrariMartino FerrariSprint
NoneFix versions
Components
Priority
Major
Details
Details
Assignee
Jean Coravu
Jean CoravuReporter
Martino Ferrari
Martino FerrariSprint
None
Fix versions
Components
Priority
Created 23 April 2020 at 15:56
Updated 10 February 2023 at 14:26
Resolved 10 February 2023 at 14:22
A Java casting error is produced with S2 products on my setup as well on the build server, however many developers can not reproduce the error.
The stack trace is:
>> org.esa.snap.core.gpf.OperatorException: [B cannot be cast to [S >> at org.esa.snap.core.gpf.graph.GraphProcessor$GPFImagingListener.errorOccurred(GraphProcessor.java:379) >> at com.sun.media.jai.util.SunTileScheduler.sendExceptionToListener(SunTileScheduler.java:1646) >> at com.sun.media.jai.util.SunTileScheduler.scheduleTile(SunTileScheduler.java:921) >> at javax.media.jai.OpImage.getTile(OpImage.java:1129) >> at javax.media.jai.PointOpImage.computeTile(PointOpImage.java:911) >> at com.sun.media.jai.util.SunTileScheduler.scheduleTile(SunTileScheduler.java:904) >> at javax.media.jai.OpImage.getTile(OpImage.java:1129) >> at javax.media.jai.PlanarImage.cobbleDouble(PlanarImage.java:3355) >> at javax.media.jai.PlanarImage.getData(PlanarImage.java:2184) >> at javax.media.jai.PlanarImage.getExtendedData(PlanarImage.java:2440) >> at javax.media.jai.GeometricOpImage.computeTile(GeometricOpImage.java:678) >> at com.sun.media.jai.util.SunTileScheduler.scheduleTile(SunTileScheduler.java:904) >> at javax.media.jai.OpImage.getTile(OpImage.java:1129) >> at javax.media.jai.PointOpImage.computeTile(PointOpImage.java:911) >> at com.sun.media.jai.util.SunTileScheduler.scheduleTile(SunTileScheduler.java:904) >> at javax.media.jai.OpImage.getTile(OpImage.java:1129) >> at javax.media.jai.PlanarImage.cobbleUShort(PlanarImage.java:3052) >> at javax.media.jai.PlanarImage.getData(PlanarImage.java:2175) >> at com.bc.ceres.glevel.MultiLevelImage.getData(MultiLevelImage.java:64) >> at org.esa.snap.core.datamodel.Band.readRasterData(Band.java:311) >> at org.esa.snap.core.dataio.ProductSubsetBuilder.readBandRasterDataRegion(ProductSubsetBuilder.java:395) >> at org.esa.snap.core.dataio.ProductSubsetBuilder.readBandRasterDataImpl(ProductSubsetBuilder.java:332) >> at org.esa.snap.core.dataio.AbstractProductReader.readBandRasterData(AbstractProductReader.java:266) >> at org.esa.snap.core.gpf.common.SubsetOp.computeTile(SubsetOp.java:297) >> at org.esa.snap.core.gpf.internal.OperatorImage.computeRect(OperatorImage.java:82) >> at javax.media.jai.SourcelessOpImage.computeTile(SourcelessOpImage.java:137) >> at com.sun.media.jai.util.SunTileScheduler.scheduleTile(SunTileScheduler.java:904) >> at javax.media.jai.OpImage.getTile(OpImage.java:1129) >> at javax.media.jai.PlanarImage.getData(PlanarImage.java:2085) >> at com.bc.ceres.glevel.MultiLevelImage.getData(MultiLevelImage.java:64) >> at org.esa.snap.core.gpf.internal.OperatorContext.getSourceTile(OperatorContext.java:449) >> at org.esa.snap.core.gpf.internal.OperatorContext.getSourceTile(OperatorContext.java:435) >> at org.esa.snap.core.gpf.internal.OperatorImage.computeRect(OperatorImage.java:75) >> at javax.media.jai.SourcelessOpImage.computeTile(SourcelessOpImage.java:137) >> at com.sun.media.jai.util.SunTileScheduler.scheduleTile(SunTileScheduler.java:904) >> at javax.media.jai.OpImage.getTile(OpImage.java:1129) >> at com.sun.media.jai.util.RequestJob.compute(SunTileScheduler.java:247) >> at com.sun.media.jai.util.WorkerThread.run(SunTileScheduler.java:468) >> Caused by: java.lang.ClassCastException: [B cannot be cast to [S >> at org.esa.snap.core.datamodel.ProductData.createInstance(ProductData.java:283) >> at org.esa.snap.core.image.VirtualBandOpImage.addDataToReferredRasterDataSymbols(VirtualBandOpImage.java:319) >> at org.esa.snap.core.image.VirtualBandOpImage.computeTile(VirtualBandOpImage.java:235) >> at com.sun.media.jai.util.SunTileScheduler.scheduleTile(SunTileScheduler.java:904) >> ... 35 more
The band datatype is computed by the
RasterDataNode
object using thegetDataType()
method, it returns the value21
standing forUINT16
however the data seems to be encoded inUINT8
in some environment.