Skip to content

Commit 70d95c3

Browse files
committed
Merge remote-tracking branch 'origin/release26.3-SNAPSHOT' into 26.3_fb_sql_server_migration_1
2 parents 2372f5b + 56326d1 commit 70d95c3

7 files changed

Lines changed: 26 additions & 14 deletions

File tree

api/src/org/labkey/api/admin/AdminBean.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import org.labkey.api.data.ContainerManager;
2525
import org.labkey.api.data.CoreSchema;
2626
import org.labkey.api.data.DbScope;
27-
import org.labkey.api.module.Module;
2827
import org.labkey.api.module.ModuleLoader;
2928
import org.labkey.api.security.UserManager;
3029
import org.labkey.api.settings.AppProps;
@@ -43,7 +42,6 @@
4342
import java.util.ArrayList;
4443
import java.util.Arrays;
4544
import java.util.Collections;
46-
import java.util.Comparator;
4745
import java.util.List;
4846
import java.util.Map;
4947
import java.util.TreeMap;
@@ -82,7 +80,6 @@ public static class RecentUser
8280
public static final String sessionTimeout = Formats.commaf0.format(ModuleLoader.getServletContext().getSessionTimeout());
8381
public static final String buildTime = ModuleLoader.getInstance().getCoreModule().getBuildTime();
8482
public static final String serverStartupTime = DateUtil.formatDateTime(ContainerManager.getRoot());
85-
public static final List<Module> modules;
8683

8784
public static String asserts = "disabled";
8885

@@ -116,9 +113,6 @@ public static class RecentUser
116113

117114
//noinspection ConstantConditions,AssertWithSideEffects
118115
assert null != (asserts = "enabled");
119-
120-
modules = new ArrayList<>(ModuleLoader.getInstance().getModules());
121-
modules.sort(Comparator.comparing(Module::getName, String.CASE_INSENSITIVE_ORDER));
122116
}
123117

124118
private static @Nullable String getValue(Field field)

api/src/org/labkey/api/data/BeanViewForm.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,10 @@
2020
import org.apache.commons.beanutils.ConvertUtils;
2121
import org.apache.commons.beanutils.DynaBean;
2222
import org.apache.commons.beanutils.DynaClass;
23+
import org.labkey.api.action.BaseViewAction.BeanUtilsPropertyBindingResult;
2324
import org.labkey.api.action.HasBindParameters;
25+
import org.labkey.api.action.NullSafeBindException;
26+
import org.springframework.validation.BindException;
2427

2528
import java.util.HashMap;
2629
import java.util.Map;
@@ -86,6 +89,13 @@ public void setBean(K bean)
8689
setTypedValues(factory.toMap(bean, null), false);
8790
}
8891

92+
@Override
93+
public BindException createErrors()
94+
{
95+
// Teaches Spring to resolve field names via string lookups instead of getters. e.g., errors.rejectValue().
96+
return new NullSafeBindException(new BeanUtilsPropertyBindingResult(this, "form"));
97+
}
98+
8999
@Override
90100
public Map<String, Object> getValuesToBind()
91101
{

api/src/org/labkey/api/data/TableViewForm.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
import org.labkey.api.action.NullSafeBindException;
3131
import org.labkey.api.action.SpringActionController;
3232
import org.labkey.api.collections.CaseInsensitiveHashMap;
33-
import org.labkey.api.ontology.Quantity;
3433
import org.labkey.api.query.FieldKey;
3534
import org.labkey.api.security.permissions.DeletePermission;
3635
import org.labkey.api.security.permissions.InsertPermission;
@@ -897,10 +896,16 @@ else if (orig.getName().startsWith(ARRAY_MARKER) && orig.getValue()!=null)
897896
setValueToBind(pv.getName(), pv.getValue());
898897
}
899898

900-
BindException errors = new NullSafeBindException(this, "form");
899+
BindException errors = createErrors();
901900
validateBind(errors);
902901
return errors;
903902
}
903+
904+
// Construct and return a BindException that's appropriate for this form
905+
public BindException createErrors()
906+
{
907+
return new NullSafeBindException(this, "form");
908+
}
904909
}
905910

906911

api/src/org/labkey/api/query/UserSchemaAction.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717

1818
import org.jetbrains.annotations.Nullable;
1919
import org.labkey.api.action.FormViewAction;
20-
import org.labkey.api.action.NullSafeBindException;
2120
import org.labkey.api.action.SpringActionController;
2221
import org.labkey.api.attachments.SpringAttachmentFile;
2322
import org.labkey.api.audit.TransactionAuditProvider;
@@ -79,7 +78,7 @@ public BindException bindParameters(PropertyValues m) throws Exception
7978
QueryUpdateForm command = new QueryUpdateForm(_table, getViewContext(), null);
8079
if (command.isBulkUpdate())
8180
command.setValidateRequired(false);
82-
BindException errors = new NullSafeBindException(new BeanUtilsPropertyBindingResult(command, "form"));
81+
BindException errors = command.createErrors();
8382
command.validateBind(errors);
8483
return errors;
8584
}

core/src/org/labkey/core/admin/AdminController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9193,7 +9193,7 @@ protected void renderView(Object model, HtmlWriter out)
91939193
if (null != module.getZippedPath())
91949194
p = module.getZippedPath().toPath();
91959195
if (isDevMode && ModuleEditorService.get().canEditSourceModule(module))
9196-
if (!module.getExplodedPath().getPath().equals(module.getSourcePath()))
9196+
if (!isBlank(module.getSourcePath()) && !module.getExplodedPath().getPath().equals(module.getSourcePath()))
91979197
p = Paths.get(module.getSourcePath());
91989198
fullPathToModule = p.toString();
91999199
shortPathToModule = fullPathToModule;

core/src/org/labkey/core/admin/admin.jsp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
<%@ page import="org.labkey.api.files.FileContentService" %>
2424
<%@ page import="org.labkey.api.module.DefaultModule" %>
2525
<%@ page import="org.labkey.api.module.Module" %>
26+
<%@ page import="org.labkey.api.module.ModuleLoader"%>
2627
<%@ page import="org.labkey.api.moduleeditor.api.ModuleEditorService" %>
2728
<%@ page import="org.labkey.api.settings.AdminConsole" %>
2829
<%@ page import="org.labkey.api.settings.AdminConsole.AdminLink" %>
@@ -36,7 +37,9 @@
3637
<%@ page import="java.time.Duration" %>
3738
<%@ page import="java.time.LocalDateTime" %>
3839
<%@ page import="java.time.format.DateTimeFormatter" %>
40+
<%@ page import="java.util.ArrayList" %>
3941
<%@ page import="java.util.Collection" %>
42+
<%@ page import="java.util.Comparator" %>
4043
<%@ page import="java.util.Map" %>
4144
<%@ page import="java.util.TreeMap" %>
4245
<%@ page import="org.apache.commons.lang3.Strings" %>
@@ -152,7 +155,9 @@
152155
<%=link("Module Details", AdminController.ModulesAction.class)%>
153156
<br/><br/>
154157
<table><%
155-
for (Module module : AdminBean.modules)
158+
ArrayList<Module> modules = new ArrayList<>(ModuleLoader.getInstance().getModules());
159+
modules.sort(Comparator.comparing(Module::getName, String.CASE_INSENSITIVE_ORDER));
160+
for (Module module : modules)
156161
{
157162
String guid = makeId("m_");
158163
String toggleScript = "return LABKEY.Utils.toggleLink(document.getElementById(" + q(guid) + "), false);";

study/src/org/labkey/study/pipeline/FileAnalysisDatasetTask.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
package org.labkey.study.pipeline;
1717

1818
import org.jetbrains.annotations.NotNull;
19-
import org.labkey.api.action.BaseViewAction;
2019
import org.labkey.api.action.NullSafeBindException;
2120
import org.labkey.api.admin.PipelineJobLoggerGetter;
2221
import org.labkey.api.assay.transform.DataTransformService;
@@ -114,7 +113,7 @@ else if (params.containsKey(DataTransformService.ORIGINAL_SOURCE_PATH))
114113
for (String error : readerErrors)
115114
_ctx.getLogger().error(error);
116115

117-
BindException errors = new NullSafeBindException(new BaseViewAction.BeanUtilsPropertyBindingResult(this, "pipeline"));
116+
BindException errors = new NullSafeBindException(this, "pipeline");
118117
boolean allowDomainUpdates = true;
119118
if (_ctx.getProperties().containsKey(StudyImportContext.ALLOW_DOMAIN_UPDATES))
120119
allowDomainUpdates = Boolean.parseBoolean(_ctx.getProperties().get(StudyImportContext.ALLOW_DOMAIN_UPDATES));

0 commit comments

Comments
 (0)