@@ -146,24 +146,29 @@ private void readBlocksRecursive(
146146
147147 final int level = requests .level ();
148148 @ SuppressWarnings ("unchecked" )
149- final BlockCodec <RawShard > codec = (BlockCodec <RawShard >) codecs [level ];
150- final RawShard shard = codec . decode ( readData , requests . gridPosition ()). getData ();
149+ final BlockCodec <RawShard > codec = (BlockCodec <RawShard >)codecs [level ];
150+ try {
151151
152- if (level == 1 ) {
153- //Base case; read the blocks
154- for (final DataBlockRequest <T > request : requests ) {
155- final long [] elementPos = request .position .relative (0 );
156- final ReadData elementData = shard .getElementData (elementPos );
157- request .block = readBlockRecursive (elementData , request .position , 0 );
158- }
159- } else { // level > 1
160- final List <DataBlockRequests <T >> split = requests .split ();
161- for (final DataBlockRequests <T > subRequests : split ) {
162- final long [] subShardPosition = subRequests .relativeGridPosition ();
163- final ReadData elementData = shard .getElementData (subShardPosition );
164- readBlocksRecursive (elementData , subRequests );
152+ final RawShard shard = codec .decode (readData , requests .gridPosition ()).getData ();
153+ if (level == 1 ) {
154+ // Base case; read the blocks
155+ for (final DataBlockRequest <T > request : requests ) {
156+ final long [] elementPos = request .position .relative (0 );
157+ final ReadData elementData = shard .getElementData (elementPos );
158+ request .block = readBlockRecursive (elementData , request .position , 0 );
159+ }
160+ } else { // level > 1
161+ final List <DataBlockRequests <T >> split = requests .split ();
162+ for (final DataBlockRequests <T > subRequests : split ) {
163+ final long [] subShardPosition = subRequests .relativeGridPosition ();
164+ final ReadData elementData = shard .getElementData (subShardPosition );
165+ readBlocksRecursive (elementData , subRequests );
166+ }
165167 }
168+ } catch (N5NoSuchKeyException e ) {
169+ // the shard does not exist
166170 }
171+
167172 }
168173
169174 //
0 commit comments