Skip to content

Providing fix for Lazy Loading#38

Merged
svenrog merged 1 commit intoGeta:masterfrom
emarksonopti:bugfix/LazyLoading
Aug 4, 2025
Merged

Providing fix for Lazy Loading#38
svenrog merged 1 commit intoGeta:masterfrom
emarksonopti:bugfix/LazyLoading

Conversation

@emarksonopti
Copy link
Copy Markdown
Contributor

The Generic Links package began running into issues in v1.9.2 where on startup, LinkDataCollection would not populate with data from the DB until a save had taken place. Looking into the issue this appears to be due to the _linkItemCollection inPropertyLinkDataCollection being defaulted to an empty array rather than null. When reverting this in theSetDefaultValue method to null, the ILazyProperty functionality works as expected and we see the LinkDataCollection objects populating as expected at startup.

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Summary of Changes

Hello @emarksonopti, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

I've addressed a lazy loading bug within the Generic Links package that prevented LinkDataCollection from populating with data on application startup. The root cause was the _linkItemCollection being defaulted to an empty array instead of null, which interfered with the expected behavior of ILazyProperty. This fix ensures that data is loaded correctly from the database when the application starts.

Highlights

  • Bug Fix - Lazy Loading: Corrected an issue in the Generic Links package where LinkDataCollection was not populating with data from the database on startup. This was due to an incorrect default initialization of an internal collection.
  • Code Change - PropertyLinkDataCollection.cs: Modified the SetDefaultValue method within PropertyLinkDataCollection.cs to initialize the _linkItemCollection field to null instead of an empty array ([]). This change ensures that the ILazyProperty functionality works as expected, allowing the LinkDataCollection objects to populate correctly at startup.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments or fill out our survey to provide feedback.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@emarksonopti
Copy link
Copy Markdown
Contributor Author

@svenrog - Please let me know if you have any questions

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request correctly addresses a lazy loading issue in PropertyLinkDataCollection by initializing the collection to null. This is a good first step. However, I've identified a related and significant performance issue in the lazy loading implementation that I've detailed in a review comment. Addressing it will make the lazy loading implementation robust and performant.

Comment thread src/Geta.Optimizely.GenericLinks/PropertyLinkDataCollection.cs
@svenrog
Copy link
Copy Markdown
Collaborator

svenrog commented Aug 4, 2025

I'll happily revert this.

@svenrog svenrog merged commit 7b60f94 into Geta:master Aug 4, 2025
0 of 2 checks passed
@svenrog
Copy link
Copy Markdown
Collaborator

svenrog commented Aug 4, 2025

Uploaded a nuget package (2.0.4) for review @ Optimizely, should be available tomorrow.

@emarksonopti
Copy link
Copy Markdown
Contributor Author

@svenrog - Looks like its not updated yet. Anything I can help do on the Opti side to push this through?

@emarksonopti emarksonopti deleted the bugfix/LazyLoading branch August 5, 2025 18:54
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.

2 participants