Skip to content

Commit d237006

Browse files
committed
Fix "Debug on Server" deployment failure caused by JVM module access error on restart
1 parent 7f7afa4 commit d237006

1 file changed

Lines changed: 21 additions & 2 deletions

File tree

src/main/fish/payara/server/PayaraServerInstanceController.ts

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -744,6 +744,25 @@ export class PayaraServerInstanceController extends PayaraInstanceController {
744744
});
745745
}
746746

747+
private async stopAndStartInDebugMode(payaraServer: PayaraLocalServerInstance, debugPort: string, callback?: (status: boolean) => any): Promise<void> {
748+
let endpoints: RestEndpoints = new RestEndpoints(payaraServer);
749+
endpoints.invoke("stop-domain", async (_res) => {
750+
payaraServer.setState(InstanceState.STOPPED);
751+
payaraServer.setDebug(false);
752+
await new Promise(resolve => setTimeout(resolve, 2000));
753+
this.refreshServerList();
754+
payaraServer.disconnectOutput();
755+
this.startServer(payaraServer, true, debugPort, callback);
756+
},
757+
(_res, message) => {
758+
vscode.window.showErrorMessage('Unable to stop the Payara Server before restarting in debug mode. ' + message);
759+
if (callback) {
760+
callback(false);
761+
}
762+
}
763+
);
764+
}
765+
747766
public async renameServer(payaraServer: PayaraServerInstance): Promise<void> {
748767
if (payaraServer) {
749768
await vscode.window.showInputBox({
@@ -848,7 +867,7 @@ export class PayaraServerInstanceController extends PayaraInstanceController {
848867
if (server instanceof PayaraLocalServerInstance && !server.isStarted()) {
849868
this.startServer(server, debug, debugPort, deploy);
850869
} else if (server instanceof PayaraLocalServerInstance && debug && !server.isDebug()) {
851-
this.restartServer(server, debug, deploy);
870+
this.stopAndStartInDebugMode(server, debugPort, deploy);
852871
} else {
853872
deploy(true);
854873
}
@@ -860,7 +879,7 @@ export class PayaraServerInstanceController extends PayaraInstanceController {
860879
this.selectListedServer(callback);
861880
}
862881
}
863-
882+
864883
public readDebugPortFromWorkspace(uri: Uri) {
865884
const workspaceFolder = vscode.workspace.getWorkspaceFolder(uri);
866885
if (workspaceFolder) {

0 commit comments

Comments
 (0)