Skip to content

Commit

Permalink
[EJBCLIENT-539] wrap the call to ContextManager.setGlobalDefaultSuppl…
Browse files Browse the repository at this point in the history
…ier with privileged block

(cherry picked from commit 326acb5)
  • Loading branch information
soul2zimate committed Oct 11, 2024
1 parent 87774d1 commit 2a46eee
Showing 1 changed file with 24 additions and 20 deletions.
44 changes: 24 additions & 20 deletions src/main/java/org/jboss/ejb/client/legacy/JBossEJBProperties.java
Original file line number Diff line number Diff line change
Expand Up @@ -120,32 +120,36 @@ public final class JBossEJBProperties implements Contextual<JBossEJBProperties>

static {
final AtomicReference<JBossEJBProperties> onceRef = new AtomicReference<>();
CONTEXT_MANAGER.setGlobalDefaultSupplier(() -> {
JBossEJBProperties value = onceRef.get();
if (value == null) {
synchronized (onceRef) {
value = onceRef.get();
if (value == null) {
try {
if (CONFIGURED_PATH_NAME != null) try {
File propertiesFile = new File(CONFIGURED_PATH_NAME);
if (! propertiesFile.isAbsolute()) {
propertiesFile = new File(SecurityUtils.getString(SystemProperties.USER_DIR), propertiesFile.toString());
doPrivileged((PrivilegedAction<Void>) () -> {
CONTEXT_MANAGER.setGlobalDefaultSupplier(() -> {
JBossEJBProperties value = onceRef.get();
if (value == null) {
synchronized (onceRef) {
value = onceRef.get();
if (value == null) {
try {
if (CONFIGURED_PATH_NAME != null) try {
File propertiesFile = new File(CONFIGURED_PATH_NAME);
if (!propertiesFile.isAbsolute()) {
propertiesFile = new File(SecurityUtils.getString(SystemProperties.USER_DIR), propertiesFile.toString());
}
value = JBossEJBProperties.fromFile(propertiesFile);
} catch (IOException e) {
Logs.MAIN.failedToFindEjbClientConfigFileSpecifiedBySysProp(SystemProperties.PROPERTIES_FILE_PATH, e);
value = JBossEJBProperties.fromClassPath();
}
else {
value = JBossEJBProperties.fromClassPath();
}
value = JBossEJBProperties.fromFile(propertiesFile);
} catch (IOException e) {
Logs.MAIN.failedToFindEjbClientConfigFileSpecifiedBySysProp(SystemProperties.PROPERTIES_FILE_PATH, e);
value = JBossEJBProperties.fromClassPath();
} else {
value = JBossEJBProperties.fromClassPath();
}
} catch (IOException e) {
onceRef.set(value);
}
onceRef.set(value);
}
}
}
return value;
return value;
});
return null; // PrivilegedAction<Void> requires a return value
});
}

Expand Down

0 comments on commit 2a46eee

Please sign in to comment.