diff --git a/api/src/org/labkey/api/query/DefaultSchema.java b/api/src/org/labkey/api/query/DefaultSchema.java index 342c03e6703..08a9f865417 100644 --- a/api/src/org/labkey/api/query/DefaultSchema.java +++ b/api/src/org/labkey/api/query/DefaultSchema.java @@ -152,8 +152,6 @@ static public DefaultSchema get(User user, Container container) /** * Get QuerySchema for SchemaKey encoded schema path. * - * @param user - * @param container * @param schemaPath SchemaKey encoded schema path. * @return The QuerySchema resolved by the schema path. * @see QueryService#getUserSchema(org.labkey.api.security.User, org.labkey.api.data.Container, String) @@ -171,8 +169,6 @@ static public QuerySchema get(User user, Container container, String schemaPath) /** * Get QuerySchema for SchemaKey schema path. * - * @param user - * @param container * @param schemaPath SchemaKey schema path. * @return The QuerySchema resolved by the schema path. * @see QueryService#getUserSchema(org.labkey.api.security.User, org.labkey.api.data.Container, String) @@ -256,7 +252,16 @@ private QuerySchema _getSchema(@NotNull String name) SchemaProvider provider = _providers.get(name); if (provider != null) - return provider.getSchema(this); + { + QuerySchema result = provider.getSchema(this); + // Not all providers will be enabled in the current folder. For example, some are based on whether + // the module is enabled or not. If they don't resolve the schema, pass through to let dynamic providers + // (like linked schemas) claim the same name. This is helpful for automated testing. + if (result != null) + { + return result; + } + } if (name.startsWith("/")) { @@ -325,7 +330,6 @@ public Set getSchemaNames() /** * Get immediate UserSchema children names. - * @return */ public Set getUserSchemaNames(boolean includeHidden) { @@ -356,7 +360,7 @@ public Set getUserSchemaNames(boolean includeHidden) */ public Set getUserSchemaPaths(boolean includeHidden) { - SimpleSchemaTreeVisitor, Void> visitor = new SimpleSchemaTreeVisitor, Void>(includeHidden) + SimpleSchemaTreeVisitor, Void> visitor = new SimpleSchemaTreeVisitor<>(includeHidden) { @Override public Set reduce(Set r1, Set r2) @@ -410,7 +414,7 @@ public R accept(SchemaTreeVisitor visitor, SchemaTreeVisitor.Path p } @Override - public VisualizationProvider createVisualizationProvider() + public VisualizationProvider createVisualizationProvider() { return null; }