3333import org .apache .cassandra .io .sstable .IOOptions ;
3434import org .apache .cassandra .io .sstable .KeyReader ;
3535import org .apache .cassandra .io .sstable .SSTable ;
36- import org .apache .cassandra .io .sstable .SSTableWatcher ;
3736import org .apache .cassandra .io .sstable .format .SSTableFormat .Components ;
3837import org .apache .cassandra .io .sstable .metadata .ValidationMetadata ;
3938import org .apache .cassandra .metrics .TableMetrics ;
@@ -61,13 +60,7 @@ public abstract class SSTableReaderLoadingBuilder<R extends SSTableReader, B ext
6160 public SSTableReaderLoadingBuilder (SSTable .Builder <?, ?> builder )
6261 {
6362 this .descriptor = builder .descriptor ;
64-
65- Set <Component > ssTableComponents ;
66- if (builder .getComponents () != null )
67- ssTableComponents = ImmutableSet .copyOf (builder .getComponents ());
68- else
69- ssTableComponents = TOCComponent .loadOrCreate (this .descriptor );
70- this .components = SSTableWatcher .instance .discoverComponents (descriptor , ssTableComponents );
63+ this .components = builder .getComponents () != null ? ImmutableSet .copyOf (builder .getComponents ()) : TOCComponent .loadOrCreate (this .descriptor );
7164
7265 this .tableMetadataRef = builder .getTableMetadataRef () != null ? builder .getTableMetadataRef () : resolveTableMetadataRef ();
7366 this .ioOptions = builder .getIOOptions () != null ? builder .getIOOptions () : IOOptions .fromDatabaseDescriptor ();
@@ -79,10 +72,9 @@ public SSTableReaderLoadingBuilder(SSTable.Builder<?, ?> builder)
7972
8073 public R build (SSTable .Owner owner , boolean validate , boolean online )
8174 {
82-
8375 checkArgument (components .contains (Components .DATA ), "Data component is missing for sstable %s" , descriptor );
8476 if (validate )
85- checkArgument (components .containsAll (descriptor .getFormat ().primaryComponents ()), "Some required components (%s) are missing for sstable %s" , Sets .difference (descriptor .getFormat ().primaryComponents (), this .components ), descriptor );
77+ checkArgument (this . components .containsAll (descriptor .getFormat ().primaryComponents ()), "Some required components (%s) are missing for sstable %s" , Sets .difference (descriptor .getFormat ().primaryComponents (), this .components ), descriptor );
8678
8779 B builder = (B ) descriptor .getFormat ().getReaderFactory ().builder (descriptor );
8880 builder .setOpenReason (NORMAL );
0 commit comments