Skip to content

Misc assay issues fixes for 25.7 - part 3#6795

Merged
cnathe merged 16 commits intodevelopfrom
fb_cory257FixesV3
Jun 27, 2025
Merged

Misc assay issues fixes for 25.7 - part 3#6795
cnathe merged 16 commits intodevelopfrom
fb_cory257FixesV3

Conversation

@cnathe
Copy link
Copy Markdown
Contributor

@cnathe cnathe commented Jun 25, 2025

Rationale

#763: App assay creation allows for assay names that only differ by casing
#795: LKS Schema Browser "missing schema" error when assay name has special characters
Issue 52075: labkey default assay run IDs replace all special characters in the assay name with underscores
Issue 53355: check for null schema

Related Pull Requests

Changes

  • Assay create/save check name collision to be case-insensitive
  • Schema browser click on sub-schema name with special characters
  • Generated Assay ID for tmp file case to use original assay name instead of encoded name
  • getCompileTimeContainer to check for null schema

public static String generateFileName(ExpProtocol protocol, boolean shouldEncode)
{
Date dateCreated = new Date();
String dateString = DateUtil.formatDateTime(dateCreated, "yyy-MM-dd-HHmmss");
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we be using the container configured dateTime format string, or do we care?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is an interesting decision point. Feels like having these hard-coded to a single format will be more stable, however, I can understand wanting to align it with user date reading. Are there other places we've had to make a similar decision? Perhaps @labkey-jeckels has thoughts.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We do something similar with a hardcoded format (ISO, with substitutions to make it filename friendly) in FileUtil.makeFileNameWithTimestamp(). Maybe we should use that here.

I haven't heard any requests to use the configured date/time formats.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the idea to use FileUtil.makeFileNameWithTimestamp() here. It has the added benefit of removing the custom code for converting/encoding characters for the file name. Done.

String oldAssayName = null;

// Issue 51321: check reserved domain name: First, All
if ("First".equalsIgnoreCase(assay.getName()) || "All".equalsIgnoreCase(assay.getName()))
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've seen a number of places where we check for these strings. Would it make sense to introduce enums or constants or consolidate the checks?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good idea. Consolidated checks into DomainUtil.validateReservedName

@cnathe cnathe requested a review from labkey-klum June 27, 2025 13:44
@cnathe cnathe merged commit 9d5dba4 into develop Jun 27, 2025
6 of 14 checks passed
@cnathe cnathe deleted the fb_cory257FixesV3 branch June 27, 2025 19:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants