Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: disable custom security manager for tests which indirectly look up the path of mvn executable #617

Merged
merged 1 commit into from
Nov 15, 2021
Merged

Conversation

algomaster99
Copy link
Member

Fixes #612

After a long debugging session with @slarse , we finally decided to disable our custom security manager (SystemExitHandler) as that was causing problems. See this comment for explanation.

@algomaster99 algomaster99 changed the title fix: disable security manager for tests which look need the path to mvn executable fix: disable security manager for tests which indirectly look up the path of mvn executable Nov 15, 2021
@algomaster99 algomaster99 changed the title fix: disable security manager for tests which indirectly look up the path of mvn executable fix: disable custom security manager for tests which indirectly look up the path of mvn executable Nov 15, 2021
@algomaster99
Copy link
Member Author

@slarse This is ready for reviews.

I just had one question. Do we need to restore our custom security manager after execution of the previously failed tests? We did something like this in diffmin when we tried to catch the System.exit() calls.

@khaes-kth
Copy link
Collaborator

I guess this is ready to be merged @algomaster99 . Right?

@algomaster99
Copy link
Member Author

@khaes-kth I think so. The patch I have proposed are coherent which @slarse 's explanation so I think we should be good.

@khaes-kth
Copy link
Collaborator

Great! I'll merge it. You can always add me/Fernanda/... as a reviewer for the PR when it is ready to be merged.

@khaes-kth khaes-kth merged commit 2f7125e into ASSERT-KTH:master Nov 15, 2021
@algomaster99 algomaster99 deleted the fix-M2_HOME-not-set branch November 15, 2021 12:49
@algomaster99
Copy link
Member Author

You can always add me/Fernanda/... as a reviewer for the PR

Okay, I will mention you both.

Comment on lines +22 to +23
// use the default security manager
System.setSecurityManager(null);
Copy link
Collaborator

Choose a reason for hiding this comment

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

@algomaster99 Just as a note here, there is no "default security manager", really. Setting it to null means there is no security manager, which happens to be the default.

I'd personally also have added a link to the issue detailing why this is necessary. The next person who gets here will have no idea of why we must unset the security manager.

Copy link
Member Author

Choose a reason for hiding this comment

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

Setting it to null means there is no security manager, which happens to be the default.

Setting it to null indirectly means that we have the default SecurityManager enabled, like you said. So are you saying that it is incorrect to not specify the premise and directly write the conclusion?

I'd personally also have added a link to the issue detailing why this is necessary.

I gave a thought about this too. However, I felt that I would have to write that same link at 4 places in the code. Instead, I felt that it would be better if someone just looks up the PR because I have linked the issues properly in the description.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Setting it to null indirectly means that we have the default SecurityManager enabled, like you said. So are you saying that it is incorrect to not specify the premise and directly write the conclusion?

Well, it's a little bit misleading, because there is no default security manager. The default is to not have a security manager. Saying "use the default security manager" implies that there actually is one. But null is the absence of a value, and null is not a security manager.

Instead, I felt that it would be better if someone just looks up the PR because I have linked the issues properly in the description.

That's great until someone modifies that line and (perhaps changes indentation, moves it, etc) and git blame gives you the wrong answer, and you have to start a bisect to find where the line originated. Perhaps not even in the same file. Sooo, I'd definitely have duplicated that link.

Copy link
Collaborator

@slarse slarse Nov 15, 2021

Choose a reason for hiding this comment

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

For context, a typical Java application does not run with a security manager "unless the application itself defines one": https://docs.oracle.com/javase/tutorial/essential/environment/security.html

Copy link
Member Author

Choose a reason for hiding this comment

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

Right! I will update the comments.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Eh, too much effort imo :). I mean we want to fix this in Spoon, so this should all be removed after that.

Copy link
Member Author

Choose a reason for hiding this comment

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

I mean we want to fix this in Spoon

Yeah, we won't need this then. :)
I will just create an issue so that at least we don't forget about it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

Scheduled tests on master is failing
3 participants