Skip to content

Tidy up java code in o.a.s.filestore package - #4657

Open
epugh wants to merge 6 commits into
apache:mainfrom
epugh:tidy-filestore-java
Open

Tidy up java code in o.a.s.filestore package#4657
epugh wants to merge 6 commits into
apache:mainfrom
epugh:tidy-filestore-java

Conversation

@epugh

@epugh epugh commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Description

Reviewing code in the org.apache.solr.filestore package for potential improvements.

Solution

Mostly driven by what IntelliJ is suggesting are weaknesses. Specifically, found what looks like dead code in the DistribFileStore.

Tests

Same tests. And Claude review.

@epugh epugh changed the title Imporve code for java style and dead code Improve code for java style and dead code Jul 23, 2026
@epugh epugh changed the title Improve code for java style and dead code Improve code for java style and remove dead code Jul 23, 2026
@epugh
epugh requested a review from Copilot July 23, 2026 18:22
@epugh epugh added this to the 10.x milestone Jul 23, 2026

Copilot AI left a comment

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.

Pull request overview

This PR refactors parts of org.apache.solr.filestore to align better with Java style expectations and to remove code that appears unused, primarily in DistribFileStore.

Changes:

  • Removed unused/disconnected code paths and variables in DistribFileStore (including an unused in-memory map and related code).
  • Simplified CryptoKeys variable initialization in validation paths (removing redundant = null).
  • Cleaned up some minor formatting/comment issues while adjusting the file distribution logic.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

File Description
solr/core/src/java/org/apache/solr/filestore/FileStoreUtils.java Minor cleanup in signature validation setup (CryptoKeys initialization).
solr/core/src/java/org/apache/solr/filestore/DistribFileStore.java Removes dead/unused code and refactors parts of distribution/fetch logic; some leftover logic needs follow-up.
solr/core/src/java/org/apache/solr/filestore/ClusterFileStore.java Minor cleanup in signature validation setup (CryptoKeys initialization).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 402 to 406
.submit(
() -> {
try {
Thread.sleep(10 * 1000);
} finally {
tmpFiles.remove(info.path);
}
Thread.sleep(10 * 1000);
return null;
});

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.

Okay, I looked at this, and yeah, it turns out we had an extra try/catch loop as well...

if (i == FETCHFROM_SRC) {
// This is just an optimization
// at this point a bunch of nodes are already downloading from me
// at this point a bunch of nodes are already downloading from me.

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.

humm... I don't totally feel comfortable changing these comments up, as the code isn't super clear to me in the first place.

Comment on lines 110 to 112
this.path = path;
}

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.

That's correct. The two buffers are now unused and can be removed.

@epugh epugh changed the title Improve code for java style and remove dead code Tidy up java code in o.a.s.filestore package Jul 26, 2026
int FETCHFROM_SRC = 50;
String myNodeName = coreContainer.getZkController().getNodeName();
String getFrom = "";
try {

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.

@psalagnac can you eyeball one more cahnge? So I looked at what copilot said, and then I eneded up removing the entire outer try loop, and then the:

 coreContainer
          .getUpdateShardHandler()
          .getUpdateExecutor()
          .submit(

because at this point, there isn't anything left. Does this all make sense? I'm always nervous around threds ;-)

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 looks good to me.
Now that tmpFiles is removed, this async task does nothing else than sleeping.
I'm good with this removal.

Comment on lines 110 to 112
this.path = path;
}

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.

That's correct. The two buffers are now unused and can be removed.

int FETCHFROM_SRC = 50;
String myNodeName = coreContainer.getZkController().getNodeName();
String getFrom = "";
try {

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 looks good to me.
Now that tmpFiles is removed, this async task does nothing else than sleeping.
I'm good with this removal.

Comment thread solr/core/src/java/org/apache/solr/filestore/DistribFileStore.java Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants