Loading src/com/android/settings/search/SettingsSearchIndexablesProvider.java +26 −29 Original line number Diff line number Diff line Loading @@ -68,6 +68,7 @@ import com.android.settings.slices.SettingsSliceProvider; import com.android.settingslib.drawer.DashboardCategory; import com.android.settingslib.drawer.Tile; import com.android.settingslib.search.Indexable; import com.android.settingslib.search.SearchIndexableData; import com.android.settingslib.search.SearchIndexableRaw; import java.util.ArrayList; Loading Loading @@ -260,14 +261,14 @@ public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider { } private List<String> getNonIndexableKeysFromProvider(Context context) { final Collection<Class> values = getIndexableProviderValues(context); final Collection<SearchIndexableData> bundles = FeatureFactory.getFactory(context) .getSearchFeatureProvider().getSearchIndexableResources().getProviderValues(); final List<String> nonIndexableKeys = new ArrayList<>(); for (Class<?> clazz : values) { for (SearchIndexableData bundle : bundles) { final long startTime = System.currentTimeMillis(); final Indexable.SearchIndexProvider provider = DatabaseIndexingUtils.getSearchIndexProvider(clazz); Indexable.SearchIndexProvider provider = bundle.getSearchIndexProvider(); List<String> providerNonIndexableKeys; try { providerNonIndexableKeys = provider.getNonIndexableKeys(context); Loading @@ -281,7 +282,8 @@ public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider { if (System.getProperty(SYSPROP_CRASH_ON_ERROR) != null) { throw new RuntimeException(e); } Log.e(TAG, "Error trying to get non-indexable keys from: " + clazz.getName(), e); Log.e(TAG, "Error trying to get non-indexable keys from: " + bundle.getTargetClass().getName(), e); continue; } Loading Loading @@ -310,12 +312,12 @@ public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider { } private List<SearchIndexableResource> getSearchIndexableResourcesFromProvider(Context context) { final Collection<Class> values = getIndexableProviderValues(context); final List<SearchIndexableResource> resourceList = new ArrayList<>(); final Collection<SearchIndexableData> bundles = FeatureFactory.getFactory(context) .getSearchFeatureProvider().getSearchIndexableResources().getProviderValues(); List<SearchIndexableResource> resourceList = new ArrayList<>(); for (Class<?> clazz : values) { final Indexable.SearchIndexProvider provider = DatabaseIndexingUtils.getSearchIndexProvider(clazz); for (SearchIndexableData bundle : bundles) { Indexable.SearchIndexProvider provider = bundle.getSearchIndexProvider(); final List<SearchIndexableResource> resList = provider.getXmlResourcesToIndex(context, true); Loading @@ -325,7 +327,7 @@ public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider { for (SearchIndexableResource item : resList) { item.className = TextUtils.isEmpty(item.className) ? clazz.getName() ? bundle.getTargetClass().getName() : item.className; } Loading @@ -336,14 +338,14 @@ public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider { } private List<SearchIndexableRaw> getSearchIndexableRawFromProvider(Context context) { final Collection<Class> values = getIndexableProviderValues(context); final Collection<SearchIndexableData> bundles = FeatureFactory.getFactory(context) .getSearchFeatureProvider().getSearchIndexableResources().getProviderValues(); final List<SearchIndexableRaw> rawList = new ArrayList<>(); for (Class<?> clazz : values) { final Indexable.SearchIndexProvider provider = DatabaseIndexingUtils.getSearchIndexProvider(clazz); final List<SearchIndexableRaw> providerRaws = provider.getRawDataToIndex(context, true /* enabled */); for (SearchIndexableData bundle : bundles) { Indexable.SearchIndexProvider provider = bundle.getSearchIndexProvider(); final List<SearchIndexableRaw> providerRaws = provider.getRawDataToIndex(context, true /* enabled */); if (providerRaws == null) { continue; Loading @@ -352,7 +354,7 @@ public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider { for (SearchIndexableRaw raw : providerRaws) { // The classname and intent information comes from the PreIndexData // This will be more clear when provider conversion is done at PreIndex time. raw.className = clazz.getName(); raw.className = bundle.getTargetClass().getName(); } rawList.addAll(providerRaws); Loading @@ -362,12 +364,12 @@ public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider { } private List<SearchIndexableRaw> getDynamicSearchIndexableRawFromProvider(Context context) { final Collection<Class> values = getIndexableProviderValues(context); final Collection<SearchIndexableData> bundles = FeatureFactory.getFactory(context) .getSearchFeatureProvider().getSearchIndexableResources().getProviderValues(); final List<SearchIndexableRaw> rawList = new ArrayList<>(); for (Class<?> clazz : values) { final Indexable.SearchIndexProvider provider = DatabaseIndexingUtils.getSearchIndexProvider(clazz); for (SearchIndexableData bundle : bundles) { final Indexable.SearchIndexProvider provider = bundle.getSearchIndexProvider(); final List<SearchIndexableRaw> providerRaws = provider.getDynamicRawDataToIndex(context, true /* enabled */); Loading @@ -378,7 +380,7 @@ public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider { for (SearchIndexableRaw raw : providerRaws) { // The classname and intent information comes from the PreIndexData // This will be more clear when provider conversion is done at PreIndex time. raw.className = clazz.getName(); raw.className = bundle.getTargetClass().getName(); } rawList.addAll(providerRaws); Loading Loading @@ -410,9 +412,4 @@ public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider { return rawList; } private Collection<Class> getIndexableProviderValues(Context context) { return FeatureFactory.getFactory(context) .getSearchFeatureProvider().getSearchIndexableResources().getProviderValues(); } } src/com/android/settings/slices/SliceDataConverter.java +6 −7 Original line number Diff line number Diff line Loading @@ -53,9 +53,9 @@ import com.android.settings.core.PreferenceXmlParserUtils; import com.android.settings.core.PreferenceXmlParserUtils.MetadataFlag; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.overlay.FeatureFactory; import com.android.settings.search.DatabaseIndexingUtils; import com.android.settingslib.search.Indexable.SearchIndexProvider; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import com.android.settingslib.search.Indexable.SearchIndexProvider; import com.android.settingslib.search.SearchIndexableData; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; Loading Loading @@ -101,14 +101,13 @@ class SliceDataConverter { public List<SliceData> getSliceData() { List<SliceData> sliceData = new ArrayList<>(); final Collection<Class> indexableClasses = FeatureFactory.getFactory(mContext) final Collection<SearchIndexableData> bundles = FeatureFactory.getFactory(mContext) .getSearchFeatureProvider().getSearchIndexableResources().getProviderValues(); for (Class clazz : indexableClasses) { final String fragmentName = clazz.getName(); for (SearchIndexableData bundle : bundles) { final String fragmentName = bundle.getTargetClass().getName(); final SearchIndexProvider provider = DatabaseIndexingUtils.getSearchIndexProvider( clazz); final SearchIndexProvider provider = bundle.getSearchIndexProvider(); // CodeInspection test guards against the null check. Keep check in case of bad actors. if (provider == null) { Loading tests/robotests/src/com/android/settings/core/XmlControllerAttributeTest.java +4 −10 Original line number Diff line number Diff line Loading @@ -10,12 +10,11 @@ import android.util.AttributeSet; import android.util.Xml; import com.android.settings.R; import com.android.settings.search.DatabaseIndexingUtils; import com.android.settings.search.SearchFeatureProvider; import com.android.settings.search.SearchFeatureProviderImpl; import com.android.settings.security.SecuritySettings; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settingslib.search.Indexable; import com.android.settingslib.search.SearchIndexableData; import org.junit.Before; import org.junit.Test; Loading @@ -35,9 +34,6 @@ import java.util.Set; @RunWith(RobolectricTestRunner.class) public class XmlControllerAttributeTest { // List of classes that are too hard to mock in order to retrieve xml information. private final List<Class> illegalClasses = Arrays.asList(SecuritySettings.class); // List of XML that could be retrieved from the illegalClasses list. private final List<Integer> whitelistXml = Arrays.asList(R.xml.security_dashboard_settings); Loading Loading @@ -112,14 +108,12 @@ public class XmlControllerAttributeTest { private Set<Integer> getIndexableXml() { Set<Integer> xmlResSet = new HashSet<>(); Collection<Class> indexableClasses = Collection<SearchIndexableData> SearchIndexableDatas = mSearchProvider.getSearchIndexableResources().getProviderValues(); indexableClasses.removeAll(illegalClasses); for (Class clazz : indexableClasses) { for (SearchIndexableData bundle : SearchIndexableDatas) { Indexable.SearchIndexProvider provider = DatabaseIndexingUtils.getSearchIndexProvider(clazz); Indexable.SearchIndexProvider provider = bundle.getSearchIndexProvider(); if (provider == null) { continue; Loading src/com/android/settings/search/DatabaseIndexingUtils.java→tests/robotests/src/com/android/settings/search/DatabaseIndexingUtils.java +5 −6 Original line number Diff line number Diff line Loading @@ -12,7 +12,6 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ package com.android.settings.search; Loading Loading @@ -41,13 +40,13 @@ public class DatabaseIndexingUtils { } catch (NoSuchFieldException e) { Log.d(TAG, "Cannot find field '" + FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'"); } catch (SecurityException se) { Log.d(TAG, "Security exception for field '" + FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'"); Log.d(TAG, "Security exception for field '" + FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'"); } catch (IllegalAccessException e) { Log.d(TAG, "Illegal access to field '" + FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'"); } catch (IllegalArgumentException e) { Log.d(TAG, "Illegal argument when accessing field '" + FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'"); Log.d(TAG, "Illegal argument when accessing field '" + FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'"); } return null; } Loading tests/robotests/src/com/android/settings/search/SearchIndexProviderCodeInspector.java +10 −3 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import com.android.settings.SettingsPreferenceFragment; import com.android.settings.core.codeinspection.CodeInspector; import com.android.settings.dashboard.DashboardFragmentSearchIndexProviderInspector; import com.android.settingslib.search.Indexable; import com.android.settingslib.search.SearchIndexableData; import com.android.settingslib.search.SearchIndexableResources; import org.robolectric.RuntimeEnvironment; Loading Loading @@ -79,6 +80,13 @@ public class SearchIndexProviderCodeInspector extends CodeInspector { final Set<String> notInSearchProviderRegistry = new ArraySet<>(); final Set<String> notSharingPreferenceControllers = new ArraySet<>(); final Set<String> notProvidingValidResource = new ArraySet<>(); final Set<Class> providerClasses = new ArraySet<>(); final SearchFeatureProvider provider = new SearchFeatureProviderImpl(); for (SearchIndexableData bundle : provider.getSearchIndexableResources().getProviderValues()) { providerClasses.add(bundle.getTargetClass()); } for (Class clazz : mClasses) { if (!isConcreteSettingsClass(clazz)) { Loading Loading @@ -108,8 +116,7 @@ public class SearchIndexProviderCodeInspector extends CodeInspector { continue; } // Must be in SearchProviderRegistry SearchFeatureProvider provider = new SearchFeatureProviderImpl(); if (!provider.getSearchIndexableResources().getProviderValues().contains(clazz)) { if (!providerClasses.contains(clazz)) { if (!notInSearchIndexableRegistryGrandfatherList.remove(className)) { notInSearchProviderRegistry.add(className); } Loading Loading
src/com/android/settings/search/SettingsSearchIndexablesProvider.java +26 −29 Original line number Diff line number Diff line Loading @@ -68,6 +68,7 @@ import com.android.settings.slices.SettingsSliceProvider; import com.android.settingslib.drawer.DashboardCategory; import com.android.settingslib.drawer.Tile; import com.android.settingslib.search.Indexable; import com.android.settingslib.search.SearchIndexableData; import com.android.settingslib.search.SearchIndexableRaw; import java.util.ArrayList; Loading Loading @@ -260,14 +261,14 @@ public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider { } private List<String> getNonIndexableKeysFromProvider(Context context) { final Collection<Class> values = getIndexableProviderValues(context); final Collection<SearchIndexableData> bundles = FeatureFactory.getFactory(context) .getSearchFeatureProvider().getSearchIndexableResources().getProviderValues(); final List<String> nonIndexableKeys = new ArrayList<>(); for (Class<?> clazz : values) { for (SearchIndexableData bundle : bundles) { final long startTime = System.currentTimeMillis(); final Indexable.SearchIndexProvider provider = DatabaseIndexingUtils.getSearchIndexProvider(clazz); Indexable.SearchIndexProvider provider = bundle.getSearchIndexProvider(); List<String> providerNonIndexableKeys; try { providerNonIndexableKeys = provider.getNonIndexableKeys(context); Loading @@ -281,7 +282,8 @@ public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider { if (System.getProperty(SYSPROP_CRASH_ON_ERROR) != null) { throw new RuntimeException(e); } Log.e(TAG, "Error trying to get non-indexable keys from: " + clazz.getName(), e); Log.e(TAG, "Error trying to get non-indexable keys from: " + bundle.getTargetClass().getName(), e); continue; } Loading Loading @@ -310,12 +312,12 @@ public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider { } private List<SearchIndexableResource> getSearchIndexableResourcesFromProvider(Context context) { final Collection<Class> values = getIndexableProviderValues(context); final List<SearchIndexableResource> resourceList = new ArrayList<>(); final Collection<SearchIndexableData> bundles = FeatureFactory.getFactory(context) .getSearchFeatureProvider().getSearchIndexableResources().getProviderValues(); List<SearchIndexableResource> resourceList = new ArrayList<>(); for (Class<?> clazz : values) { final Indexable.SearchIndexProvider provider = DatabaseIndexingUtils.getSearchIndexProvider(clazz); for (SearchIndexableData bundle : bundles) { Indexable.SearchIndexProvider provider = bundle.getSearchIndexProvider(); final List<SearchIndexableResource> resList = provider.getXmlResourcesToIndex(context, true); Loading @@ -325,7 +327,7 @@ public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider { for (SearchIndexableResource item : resList) { item.className = TextUtils.isEmpty(item.className) ? clazz.getName() ? bundle.getTargetClass().getName() : item.className; } Loading @@ -336,14 +338,14 @@ public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider { } private List<SearchIndexableRaw> getSearchIndexableRawFromProvider(Context context) { final Collection<Class> values = getIndexableProviderValues(context); final Collection<SearchIndexableData> bundles = FeatureFactory.getFactory(context) .getSearchFeatureProvider().getSearchIndexableResources().getProviderValues(); final List<SearchIndexableRaw> rawList = new ArrayList<>(); for (Class<?> clazz : values) { final Indexable.SearchIndexProvider provider = DatabaseIndexingUtils.getSearchIndexProvider(clazz); final List<SearchIndexableRaw> providerRaws = provider.getRawDataToIndex(context, true /* enabled */); for (SearchIndexableData bundle : bundles) { Indexable.SearchIndexProvider provider = bundle.getSearchIndexProvider(); final List<SearchIndexableRaw> providerRaws = provider.getRawDataToIndex(context, true /* enabled */); if (providerRaws == null) { continue; Loading @@ -352,7 +354,7 @@ public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider { for (SearchIndexableRaw raw : providerRaws) { // The classname and intent information comes from the PreIndexData // This will be more clear when provider conversion is done at PreIndex time. raw.className = clazz.getName(); raw.className = bundle.getTargetClass().getName(); } rawList.addAll(providerRaws); Loading @@ -362,12 +364,12 @@ public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider { } private List<SearchIndexableRaw> getDynamicSearchIndexableRawFromProvider(Context context) { final Collection<Class> values = getIndexableProviderValues(context); final Collection<SearchIndexableData> bundles = FeatureFactory.getFactory(context) .getSearchFeatureProvider().getSearchIndexableResources().getProviderValues(); final List<SearchIndexableRaw> rawList = new ArrayList<>(); for (Class<?> clazz : values) { final Indexable.SearchIndexProvider provider = DatabaseIndexingUtils.getSearchIndexProvider(clazz); for (SearchIndexableData bundle : bundles) { final Indexable.SearchIndexProvider provider = bundle.getSearchIndexProvider(); final List<SearchIndexableRaw> providerRaws = provider.getDynamicRawDataToIndex(context, true /* enabled */); Loading @@ -378,7 +380,7 @@ public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider { for (SearchIndexableRaw raw : providerRaws) { // The classname and intent information comes from the PreIndexData // This will be more clear when provider conversion is done at PreIndex time. raw.className = clazz.getName(); raw.className = bundle.getTargetClass().getName(); } rawList.addAll(providerRaws); Loading Loading @@ -410,9 +412,4 @@ public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider { return rawList; } private Collection<Class> getIndexableProviderValues(Context context) { return FeatureFactory.getFactory(context) .getSearchFeatureProvider().getSearchIndexableResources().getProviderValues(); } }
src/com/android/settings/slices/SliceDataConverter.java +6 −7 Original line number Diff line number Diff line Loading @@ -53,9 +53,9 @@ import com.android.settings.core.PreferenceXmlParserUtils; import com.android.settings.core.PreferenceXmlParserUtils.MetadataFlag; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.overlay.FeatureFactory; import com.android.settings.search.DatabaseIndexingUtils; import com.android.settingslib.search.Indexable.SearchIndexProvider; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import com.android.settingslib.search.Indexable.SearchIndexProvider; import com.android.settingslib.search.SearchIndexableData; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; Loading Loading @@ -101,14 +101,13 @@ class SliceDataConverter { public List<SliceData> getSliceData() { List<SliceData> sliceData = new ArrayList<>(); final Collection<Class> indexableClasses = FeatureFactory.getFactory(mContext) final Collection<SearchIndexableData> bundles = FeatureFactory.getFactory(mContext) .getSearchFeatureProvider().getSearchIndexableResources().getProviderValues(); for (Class clazz : indexableClasses) { final String fragmentName = clazz.getName(); for (SearchIndexableData bundle : bundles) { final String fragmentName = bundle.getTargetClass().getName(); final SearchIndexProvider provider = DatabaseIndexingUtils.getSearchIndexProvider( clazz); final SearchIndexProvider provider = bundle.getSearchIndexProvider(); // CodeInspection test guards against the null check. Keep check in case of bad actors. if (provider == null) { Loading
tests/robotests/src/com/android/settings/core/XmlControllerAttributeTest.java +4 −10 Original line number Diff line number Diff line Loading @@ -10,12 +10,11 @@ import android.util.AttributeSet; import android.util.Xml; import com.android.settings.R; import com.android.settings.search.DatabaseIndexingUtils; import com.android.settings.search.SearchFeatureProvider; import com.android.settings.search.SearchFeatureProviderImpl; import com.android.settings.security.SecuritySettings; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settingslib.search.Indexable; import com.android.settingslib.search.SearchIndexableData; import org.junit.Before; import org.junit.Test; Loading @@ -35,9 +34,6 @@ import java.util.Set; @RunWith(RobolectricTestRunner.class) public class XmlControllerAttributeTest { // List of classes that are too hard to mock in order to retrieve xml information. private final List<Class> illegalClasses = Arrays.asList(SecuritySettings.class); // List of XML that could be retrieved from the illegalClasses list. private final List<Integer> whitelistXml = Arrays.asList(R.xml.security_dashboard_settings); Loading Loading @@ -112,14 +108,12 @@ public class XmlControllerAttributeTest { private Set<Integer> getIndexableXml() { Set<Integer> xmlResSet = new HashSet<>(); Collection<Class> indexableClasses = Collection<SearchIndexableData> SearchIndexableDatas = mSearchProvider.getSearchIndexableResources().getProviderValues(); indexableClasses.removeAll(illegalClasses); for (Class clazz : indexableClasses) { for (SearchIndexableData bundle : SearchIndexableDatas) { Indexable.SearchIndexProvider provider = DatabaseIndexingUtils.getSearchIndexProvider(clazz); Indexable.SearchIndexProvider provider = bundle.getSearchIndexProvider(); if (provider == null) { continue; Loading
src/com/android/settings/search/DatabaseIndexingUtils.java→tests/robotests/src/com/android/settings/search/DatabaseIndexingUtils.java +5 −6 Original line number Diff line number Diff line Loading @@ -12,7 +12,6 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ package com.android.settings.search; Loading Loading @@ -41,13 +40,13 @@ public class DatabaseIndexingUtils { } catch (NoSuchFieldException e) { Log.d(TAG, "Cannot find field '" + FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'"); } catch (SecurityException se) { Log.d(TAG, "Security exception for field '" + FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'"); Log.d(TAG, "Security exception for field '" + FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'"); } catch (IllegalAccessException e) { Log.d(TAG, "Illegal access to field '" + FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'"); } catch (IllegalArgumentException e) { Log.d(TAG, "Illegal argument when accessing field '" + FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'"); Log.d(TAG, "Illegal argument when accessing field '" + FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'"); } return null; } Loading
tests/robotests/src/com/android/settings/search/SearchIndexProviderCodeInspector.java +10 −3 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import com.android.settings.SettingsPreferenceFragment; import com.android.settings.core.codeinspection.CodeInspector; import com.android.settings.dashboard.DashboardFragmentSearchIndexProviderInspector; import com.android.settingslib.search.Indexable; import com.android.settingslib.search.SearchIndexableData; import com.android.settingslib.search.SearchIndexableResources; import org.robolectric.RuntimeEnvironment; Loading Loading @@ -79,6 +80,13 @@ public class SearchIndexProviderCodeInspector extends CodeInspector { final Set<String> notInSearchProviderRegistry = new ArraySet<>(); final Set<String> notSharingPreferenceControllers = new ArraySet<>(); final Set<String> notProvidingValidResource = new ArraySet<>(); final Set<Class> providerClasses = new ArraySet<>(); final SearchFeatureProvider provider = new SearchFeatureProviderImpl(); for (SearchIndexableData bundle : provider.getSearchIndexableResources().getProviderValues()) { providerClasses.add(bundle.getTargetClass()); } for (Class clazz : mClasses) { if (!isConcreteSettingsClass(clazz)) { Loading Loading @@ -108,8 +116,7 @@ public class SearchIndexProviderCodeInspector extends CodeInspector { continue; } // Must be in SearchProviderRegistry SearchFeatureProvider provider = new SearchFeatureProviderImpl(); if (!provider.getSearchIndexableResources().getProviderValues().contains(clazz)) { if (!providerClasses.contains(clazz)) { if (!notInSearchIndexableRegistryGrandfatherList.remove(className)) { notInSearchProviderRegistry.add(className); } Loading