From ceacda7f30d0a7d39bed5e2aa21bf1a74cec2604 Mon Sep 17 00:00:00 2001 From: labkey-matthewb Date: Tue, 29 Jul 2025 09:49:54 -0700 Subject: [PATCH 1/2] checkpoint - migrate to using long/Long to represent any integer ID value (rowId, objectId, etc). --- .../api-src/org/labkey/dbutils/api/SimpleQuery.java | 10 ++++++---- .../notification/WaterMonitoringNotification.java | 3 ++- .../wnprc_purchasing/WNPRC_PurchasingController.java | 3 ++- .../notification/ViralLoadQueueNotification.java | 7 ++++--- .../resources/transform/src/MicrobiomeTransform.java | 2 +- 5 files changed, 15 insertions(+), 10 deletions(-) diff --git a/DBUtils/api-src/org/labkey/dbutils/api/SimpleQuery.java b/DBUtils/api-src/org/labkey/dbutils/api/SimpleQuery.java index d9951606d..73b1c27ac 100644 --- a/DBUtils/api-src/org/labkey/dbutils/api/SimpleQuery.java +++ b/DBUtils/api-src/org/labkey/dbutils/api/SimpleQuery.java @@ -1,5 +1,6 @@ package org.labkey.dbutils.api; +import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.NotNull; import org.json.JSONObject; import org.labkey.api.data.ColumnInfo; @@ -267,15 +268,16 @@ protected Map getColModel(DisplayColumn dc, TableInfo tableInfo) extGridColumn.put("tooltip", dc.getDescription()); if (dc.getWidth() != null) { + extGridColumn.put("width", dc.getWidth()); try { //try to parse as integer (which is what Ext wants) - extGridColumn.put("width", Integer.parseInt(dc.getWidth())); + if (StringUtils.isNotBlank(dc.getWidth())) + extGridColumn.put("width", Integer.parseInt(dc.getWidth())); } - catch(NumberFormatException e) + catch (NumberFormatException e) { - //include it as a string - extGridColumn.put("width", dc.getWidth()); + // pass } } diff --git a/WNPRC_EHR/src/org/labkey/wnprc_ehr/notification/WaterMonitoringNotification.java b/WNPRC_EHR/src/org/labkey/wnprc_ehr/notification/WaterMonitoringNotification.java index 6eb9e6a9a..d879b4aba 100644 --- a/WNPRC_EHR/src/org/labkey/wnprc_ehr/notification/WaterMonitoringNotification.java +++ b/WNPRC_EHR/src/org/labkey/wnprc_ehr/notification/WaterMonitoringNotification.java @@ -17,6 +17,7 @@ import org.apache.logging.log4j.Logger; import org.labkey.api.collections.CaseInsensitiveHashMap; +import org.labkey.api.collections.IntHashMap; import org.labkey.api.data.ColumnInfo; import org.labkey.api.data.CompareType; import org.labkey.api.data.Container; @@ -149,7 +150,7 @@ protected void findAnimalsWithEnoughWater(final Container c, final User u, final { //Organizing report by project Map[] totalWaterForDay = ts.getMapArray(); - Map>> projectMap = new HashMap<>(); + Map>> projectMap = new IntHashMap<>(); int animalsWaterMeaning = 0; for(Map mapItem : totalWaterForDay){ int projectNum = ConvertHelper.convert(mapItem.get("project"),Integer.class); diff --git a/WNPRC_Purchasing/src/org/labkey/wnprc_purchasing/WNPRC_PurchasingController.java b/WNPRC_Purchasing/src/org/labkey/wnprc_purchasing/WNPRC_PurchasingController.java index 7e30cd010..3b16c6e7d 100644 --- a/WNPRC_Purchasing/src/org/labkey/wnprc_purchasing/WNPRC_PurchasingController.java +++ b/WNPRC_Purchasing/src/org/labkey/wnprc_purchasing/WNPRC_PurchasingController.java @@ -38,6 +38,7 @@ import org.labkey.api.action.SimpleViewAction; import org.labkey.api.action.SpringActionController; import org.labkey.api.admin.notification.NotificationService; +import org.labkey.api.collections.IntHashMap; import org.labkey.api.data.ColumnInfo; import org.labkey.api.data.ContainerManager; import org.labkey.api.data.Filter; @@ -398,7 +399,7 @@ private void sendRequestChangeEmailNotification(String oldStatus, EmailTemplateF private Map getPurchasingDirectorUserIds() { - Map purchasingDirUserIds = new HashMap<>(); + Map purchasingDirUserIds = new IntHashMap<>(); for (RoleAssignment roleAssignment : getContainer().getPolicy().getAssignments()) { if (roleAssignment.getRole().getName().equals(WNPRC_PurchasingDirectorRole.PURCHASING_DIRECTOR_ROLE_NAME)) diff --git a/WNPRC_Virology/src/org/labkey/wnprc_virology/notification/ViralLoadQueueNotification.java b/WNPRC_Virology/src/org/labkey/wnprc_virology/notification/ViralLoadQueueNotification.java index 5c563bbbe..d40670e1c 100644 --- a/WNPRC_Virology/src/org/labkey/wnprc_virology/notification/ViralLoadQueueNotification.java +++ b/WNPRC_Virology/src/org/labkey/wnprc_virology/notification/ViralLoadQueueNotification.java @@ -4,6 +4,7 @@ import jakarta.mail.Message; import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.Logger; +import org.labkey.api.collections.IntHashMap; import org.labkey.api.data.Container; import org.labkey.api.data.ContainerManager; import org.labkey.api.data.Results; @@ -65,7 +66,7 @@ public class ViralLoadQueueNotification extends AbstractEHRNotification public Map _emailSummaryTable; - public Map _accounts = new HashMap<>(); + public Map _accounts = new IntHashMap<>(); private static final Logger _log = LogHelper.getLogger(ViralLoadQueueNotification.class, "Server-side logger for WNPRC_Virology notifications"); public ViralLoadQueueNotification(Module owner) @@ -210,7 +211,7 @@ public void setUp() } // old notes: //emails.put(createdByUserId, getEmailArray(notifyEmails)); - old way, user id is unique. - //used to use public Map> emails = new HashMap>(); + //used to use public Map> emails = new IntHashMap>(); //but ideally instead of Integer as the key it would be a a string of: //submitter email + notify email string(normalized = sorted in such a way there arent repeats). countEmailsAndPut(notifyEmails); @@ -247,7 +248,7 @@ public void getRowsAndSendMessage() }*/ //pull out accounts Set accounts = new HashSet<>(); - Map accountsAndCount = new HashMap<>(); + Map accountsAndCount = new IntHashMap<>(); Integer arr[] = new Integer[VLSampleListResults.size()]; for (int i = 0; i < VLSampleListResults.size(); i++) { diff --git a/WNPRC_r24/resources/transform/src/MicrobiomeTransform.java b/WNPRC_r24/resources/transform/src/MicrobiomeTransform.java index 45364c2ca..d9ef94ad9 100644 --- a/WNPRC_r24/resources/transform/src/MicrobiomeTransform.java +++ b/WNPRC_r24/resources/transform/src/MicrobiomeTransform.java @@ -31,7 +31,7 @@ public class MicrobiomeTransform extends AbstractAssayValidator { private File _errorFile; private Map _runProperties = new HashMap<>(); - private Map _colMap = new HashMap<>(); + private Map _colMap = new IntHashMap<>(); private Map _dictionary = new HashMap<>(); private final int numHeaderCols = 4; From 43ffef2d775991422631f1e6c9ff11c590fb21e3 Mon Sep 17 00:00:00 2001 From: Matthew Bellew Date: Wed, 6 Aug 2025 15:23:00 -0700 Subject: [PATCH 2/2] remove (Integer) casts --- .../org/labkey/wnprc_purchasing/WNPRC_PurchasingManager.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/WNPRC_Purchasing/src/org/labkey/wnprc_purchasing/WNPRC_PurchasingManager.java b/WNPRC_Purchasing/src/org/labkey/wnprc_purchasing/WNPRC_PurchasingManager.java index c01a19a7b..9187eb6ad 100644 --- a/WNPRC_Purchasing/src/org/labkey/wnprc_purchasing/WNPRC_PurchasingManager.java +++ b/WNPRC_Purchasing/src/org/labkey/wnprc_purchasing/WNPRC_PurchasingManager.java @@ -44,6 +44,8 @@ import java.util.List; import java.util.Map; +import static org.labkey.api.exp.api.ExperimentService.asInteger; + public class WNPRC_PurchasingManager { private static final WNPRC_PurchasingManager _instance = new WNPRC_PurchasingManager(); @@ -240,7 +242,7 @@ else if (null != requestForm.getVendor() && newVendorData.size() == 0) insertedPurchasingReq = qus.updateRows(user, container, purchasingRequestsData, null, errors, null, null); if (null != insertedPurchasingReq) - requestForm.setRowId((Integer) insertedPurchasingReq.get(0).get("rowId")); + requestForm.setRowId(asInteger(insertedPurchasingReq.get(0).get("rowId"))); else { requestOrderErrors.addError(new SimpleValidationError("Unable to submit purchasing request"));