Skip to content

Conversation

@ndoschek
Copy link
Member

What it does

Copy bundled plugins to a user-writable directory for the built-in plugins since the AppImage mount point is read-only.

  • Add appimage-helpers.js with plugin copy utilities
  • Track plugin version metadata to update on version changes
  • Skip copy on startup if plugins are already up-to-date

Fixes GH-627

How to test

  • Build and package the Theia IDE locally
  • Check if the Java extensions behaves correctly (see issue for setup details)

Review checklist

Reminder for reviewers

@github-project-automation github-project-automation bot moved this to Waiting on reviewers in PR Backlog Dec 15, 2025
Copy link
Contributor

@jfaltermeier jfaltermeier left a comment

Choose a reason for hiding this comment

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

LGTM overall, thanks.

I added one comment inline.

Besides that, during testing I noticed that I no longer get the errors about failed mkdir calls in a readonly directory, which is expected.

However redhat.java still does not seem to work for me:

Activating plugin 'Test Runner for Java' failed: Dependent plugin 'redhat.java' is not installed.

2025-12-15T13:41:35.391Z plugin-host ERROR Promise rejection not handled in one second: EntryNotFound (FileSystemError): Unable to resolve nonexistent file '/home/johannes/.theia-ide/workspace-storage/fc230db0200f850796ea7fca3a00b37a/redhat.java', reason: EntryNotFound (FileSystemError): Unable to resolve nonexistent file '/home/johannes/.theia-ide/workspace-storage/fc230db0200f850796ea7fca3a00b37a/redhat.java'
2025-12-15T13:41:35.391Z plugin-host ERROR With stack trace: EntryNotFound (FileSystemError): Unable to resolve nonexistent file '/home/johannes/.theia-ide/workspace-storage/fc230db0200f850796ea7fca3a00b37a/redhat.java'
    at _handleError (/tmp/.mount_TheiaIiRrCU5/resources/app/lib/backend/339.js:1:616945)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)

Are you seeing this as well, or is this some local issue on my side?

I can see that the version on my system is a very recent pre release: https://open-vsx.org/extension/redhat/java (1.51.2025121108). Not sure if this could be the reason, but maybe we also need a more stable way to control which versions we get from an extension pack.

@ndoschek
Copy link
Member Author

Thanks for the review @jfaltermeier!
I double checked and did a fresh download of the built-ins (which pulls the same version as you mentioned) and it works for me. Also for both cases, if the built-ins were copied on the first start or if the copy is skipped on a following startup.

Copy bundled plugins to a user-writable directory for the built-in plugins since the AppImage mount point is read-only.

- Add appimage-helpers.js with plugin copy utilities
- Track plugin version metadata to update on version changes
- Skip copy on startup if plugins are already up-to-date

Fixes GH-627
Copy link
Contributor

@jfaltermeier jfaltermeier left a comment

Choose a reason for hiding this comment

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

Thanks, lgtm.

I redownloaded the plugins and also renamed my old .theia-ide directory, and I do not get the error anymore. So this was probably just local on my machine.

Edit: Going back to the former also brings back the error, so I think it is confirmed that it was on my machine only

@github-project-automation github-project-automation bot moved this from Waiting on reviewers to Needs merge in PR Backlog Dec 15, 2025
@ndoschek ndoschek merged commit 7727b3f into master Dec 15, 2025
8 of 9 checks passed
@ndoschek ndoschek deleted the GH-627 branch December 15, 2025 15:45
@github-project-automation github-project-automation bot moved this from Needs merge to Done in PR Backlog Dec 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

Java extensions fail to activate when running Theia IDE from AppImage

3 participants