This is an automated email from the ASF dual-hosted git repository.
jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git
The following commit(s) were added to refs/heads/master by this push:
new 586f1e36f2 SonarQube bug fixes
586f1e36f2 is described below
commit 586f1e36f25e076ea01836ba19fd75fde7b40bc1
Author: James Bognar <[email protected]>
AuthorDate: Wed Feb 18 11:55:11 2026 -0500
SonarQube bug fixes
---
.../java/org/apache/juneau/svl/vars/ArgsVar.java | 11 ++++---
.../apache/juneau/svl/vars/ManifestFileVar.java | 9 ++++--
.../apache/juneau/microservice/Microservice.java | 25 +++++++---------
.../microservice/jetty/JettyMicroservice.java | 34 ++++++++++------------
.../org/apache/juneau/rest/mock/MockLogger.java | 32 +++++++++++---------
5 files changed, 59 insertions(+), 52 deletions(-)
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/ArgsVar.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/ArgsVar.java
index 0e0512565a..98e75ffbc3 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/ArgsVar.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/ArgsVar.java
@@ -18,6 +18,8 @@ package org.apache.juneau.svl.vars;
import static org.apache.juneau.commons.utils.Utils.*;
+import java.util.concurrent.atomic.AtomicReference;
+
import org.apache.juneau.collections.*;
import org.apache.juneau.svl.*;
@@ -62,7 +64,7 @@ public class ArgsVar extends DefaultingVar {
/** The name of this variable. */
public static final String NAME = "A";
- private static volatile Args staticArgs;
+ private static final AtomicReference<Args> staticArgs = new
AtomicReference<>();
/**
* Initialize the args for this variable.
@@ -70,7 +72,7 @@ public class ArgsVar extends DefaultingVar {
* @param args The parsed command-line arguments.
*/
public static void init(Args args) {
- staticArgs = args;
+ staticArgs.set(args);
}
private final Args args;
@@ -80,8 +82,9 @@ public class ArgsVar extends DefaultingVar {
*/
public ArgsVar() {
super(NAME);
- if (nn(staticArgs))
- this.args = staticArgs;
+ var sa = staticArgs.get();
+ if (nn(sa))
+ this.args = sa;
else {
var s = System.getProperty("sun.java.command");
if (ne(s)) {
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/ManifestFileVar.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/ManifestFileVar.java
index 934a6c9e54..201ebac957 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/ManifestFileVar.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/ManifestFileVar.java
@@ -16,6 +16,8 @@
*/
package org.apache.juneau.svl.vars;
+import java.util.concurrent.atomic.AtomicReference;
+
import org.apache.juneau.svl.*;
import org.apache.juneau.utils.*;
@@ -56,7 +58,7 @@ public class ManifestFileVar extends DefaultingVar {
/** The name of this variable. */
public static final String NAME = "MF";
- private static volatile ManifestFile manifestFile;
+ private static final AtomicReference<ManifestFile> manifestFile = new
AtomicReference<>();
/**
* Initialize the manifest file for this variable.
@@ -64,7 +66,7 @@ public class ManifestFileVar extends DefaultingVar {
* @param manifestFile The parsed manifest file.
*/
public static void init(ManifestFile manifestFile) {
- ManifestFileVar.manifestFile = manifestFile;
+ ManifestFileVar.manifestFile.set(manifestFile);
}
/**
@@ -76,6 +78,7 @@ public class ManifestFileVar extends DefaultingVar {
@Override /* Overridden from Var */
public String resolve(VarResolverSession session, String key) {
- return manifestFile == null ? "" : manifestFile.getString(key);
+ var mf = manifestFile.get();
+ return mf == null ? "" : mf.getString(key);
}
}
\ No newline at end of file
diff --git
a/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/Microservice.java
b/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/Microservice.java
index 30c3f78c9b..a09316c7e0 100755
---
a/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/Microservice.java
+++
b/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/Microservice.java
@@ -27,6 +27,7 @@ import java.nio.file.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
+import java.util.concurrent.atomic.AtomicReference;
import java.util.jar.*;
import java.util.logging.*;
@@ -508,7 +509,7 @@ public class Microservice implements ConfigEventListener {
}
}
- private static volatile Microservice instance;
+ private static final AtomicReference<Microservice> instance = new
AtomicReference<>();
/**
* Creates a new builder for this object.
@@ -529,15 +530,11 @@ public class Microservice implements ConfigEventListener {
* @return The Microservice instance, or <jk>null</jk> if there isn't
one.
*/
public static Microservice getInstance() {
- synchronized (Microservice.class) {
- return instance;
- }
+ return instance.get();
}
private static void setInstance(Microservice m) {
- synchronized (Microservice.class) {
- instance = m;
- }
+ instance.set(m);
}
final Messages messages = Messages.of(Microservice.class);
@@ -556,7 +553,7 @@ public class Microservice implements ConfigEventListener {
final File workingDir;
private final String configName;
- private volatile Logger logger;
+ private final AtomicReference<Logger> logger = new AtomicReference<>();
/**
* Constructor.
@@ -896,7 +893,7 @@ public class Microservice implements ConfigEventListener {
*
* @return The logger for this microservice.
*/
- public Logger getLogger() { return logger; }
+ public Logger getLogger() { return logger.get(); }
/**
* Returns the main jar manifest file contents as a simple {@link
JsonMap}.
@@ -960,11 +957,11 @@ public class Microservice implements ConfigEventListener {
//
--------------------------------------------------------------------------------
// Initialize logging.
//
--------------------------------------------------------------------------------
- this.logger = builder.logger;
+ logger.set(builder.logger);
var logConfig = nn(builder.logConfig) ? builder.logConfig : new
LogConfig();
- if (this.logger == null) {
+ if (logger.get() == null) {
LogManager.getLogManager().reset();
- this.logger = Logger.getLogger("");
+ logger.set(Logger.getLogger(""));
var logFile = firstNonNull(logConfig.logFile,
config.get("Logging/logFile").orElse(null));
if (ne(logFile)) {
@@ -989,12 +986,12 @@ public class Microservice implements ConfigEventListener {
}
fh.setFormatter(f);
fh.setLevel(firstNonNull(logConfig.fileLevel,
config.get("Logging/fileLevel").as(Level.class).orElse(Level.INFO)));
- logger.addHandler(fh);
+ logger.get().addHandler(fh);
var ch = new ConsoleHandler();
ch.setLevel(firstNonNull(logConfig.consoleLevel,
config.get("Logging/consoleLevel").as(Level.class).orElse(Level.WARNING)));
ch.setFormatter(f);
- logger.addHandler(ch);
+ logger.get().addHandler(ch);
}
}
diff --git
a/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/JettyMicroservice.java
b/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/JettyMicroservice.java
index 6025d7cede..228edef61e 100644
---
a/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/JettyMicroservice.java
+++
b/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/JettyMicroservice.java
@@ -28,6 +28,7 @@ import java.io.*;
import java.net.*;
import java.nio.file.*;
import java.util.*;
+import java.util.concurrent.atomic.AtomicReference;
import java.util.logging.*;
import org.apache.juneau.collections.*;
@@ -398,7 +399,7 @@ public class JettyMicroservice extends Microservice {
private static final String KEY_SERVLET_CONTEXT_HANDLER =
"ServletContextHandler";
private static final Random RANDOM = new Random();
- private static volatile JettyMicroservice instance;
+ private static final AtomicReference<JettyMicroservice> instance = new
AtomicReference<>();
/**
* Creates a new microservice builder.
@@ -418,9 +419,7 @@ public class JettyMicroservice extends Microservice {
* @return The Microservice instance, or <jk>null</jk> if there isn't
one.
*/
public static JettyMicroservice getInstance() {
- synchronized (JettyMicroservice.class) {
- return instance;
- }
+ return instance.get();
}
/**
@@ -456,9 +455,7 @@ public class JettyMicroservice extends Microservice {
}
private static void setInstance(JettyMicroservice m) {
- synchronized (JettyMicroservice.class) {
- instance = m;
- }
+ instance.set(m);
}
final Messages messages2 = Messages.of(JettyMicroservice.class);
@@ -467,7 +464,7 @@ public class JettyMicroservice extends Microservice {
private final JettyServerFactory factory;
- volatile Server server;
+ private final AtomicReference<Server> server = new AtomicReference<>();
/**
* Constructor.
@@ -578,7 +575,7 @@ public class JettyMicroservice extends Microservice {
getLogger().info(jettyXml);
try {
- server = factory.create(jettyXml);
+ server.set(factory.create(jettyXml));
} catch (Exception e2) {
throw new ExecutableException(e2);
}
@@ -620,7 +617,7 @@ public class JettyMicroservice extends Microservice {
if (System.getProperty("juneau.serverPort") == null)
System.setProperty("juneau.serverPort",
String.valueOf(availablePort));
- return server;
+ return server.get();
}
/**
@@ -629,9 +626,9 @@ public class JettyMicroservice extends Microservice {
* @throws Exception Error occurred.
*/
public void destroyServer() throws Exception {
- if (nn(server))
- server.destroy();
- server = null;
+ var s = server.getAndSet(null);
+ if (nn(s))
+ s.destroy();
}
/**
@@ -699,7 +696,7 @@ public class JettyMicroservice extends Microservice {
*
* @return The underlying Jetty server, or <jk>null</jk> if {@link
#createServer()} has not yet been called.
*/
- public Server getServer() { return Objects.requireNonNull(server,
"Server not found. createServer() must be called first."); }
+ public Server getServer() { return Objects.requireNonNull(server.get(),
"Server not found. createServer() must be called first."); }
/**
* Finds and returns the servlet context handler defined in the Jetty
container.
@@ -736,7 +733,7 @@ public class JettyMicroservice extends Microservice {
@Override /* Overridden from Microservice */
public JettyMicroservice join() throws Exception {
- server.join();
+ server.get().join();
return this;
}
@@ -762,11 +759,12 @@ public class JettyMicroservice extends Microservice {
@Override /* Overridden from Thread */
public void run() {
try {
- if (server == null ||
server.isStopping() || server.isStopped())
+ var s = server.get();
+ if (s == null || s.isStopping() ||
s.isStopped())
return;
listener.onStopServer(JettyMicroservice.this);
out(mb2, "StoppingServer");
- server.stop();
+ s.stop();
out(mb2, "ServerStopped");
listener.onPostStopServer(JettyMicroservice.this);
} catch (Exception e) {
@@ -802,7 +800,7 @@ public class JettyMicroservice extends Microservice {
*/
protected int startServer() throws Exception {
listener.onStartServer(this);
- server.start();
+ server.get().start();
out(messages2, "ServerStarted", getPort());
listener.onPostStartServer(this);
return getPort();
diff --git
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockLogger.java
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockLogger.java
index 963503c3dd..430601c5c6 100644
---
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockLogger.java
+++
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockLogger.java
@@ -22,6 +22,7 @@ import static
org.apache.juneau.commons.utils.ThrowableUtils.*;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.*;
+import java.util.concurrent.atomic.AtomicReference;
import java.util.logging.*;
import java.util.logging.Formatter;
@@ -87,9 +88,9 @@ public class MockLogger extends Logger {
private final List<LogRecord> logRecords = list();
private final ByteArrayOutputStream baos = new ByteArrayOutputStream();
- private volatile Formatter formatter;
+ private final AtomicReference<Formatter> formatter = new
AtomicReference<>();
- private volatile String format = "%4$s: %5$s%6$s%n";
+ private final AtomicReference<String> format = new
AtomicReference<>("%4$s: %5$s%6$s%n");
/**
* Constructor.
@@ -160,7 +161,7 @@ public class MockLogger extends Logger {
* @return This object.
*/
public synchronized MockLogger format(String format) {
- this.format = format;
+ this.format.set(format);
return this;
}
@@ -174,7 +175,7 @@ public class MockLogger extends Logger {
* @return This object.
*/
public synchronized MockLogger formatter(Formatter formatter) {
- this.formatter = formatter;
+ this.formatter.set(formatter);
return this;
}
@@ -219,18 +220,23 @@ public class MockLogger extends Logger {
}
private Formatter getFormatter() {
- if (formatter == null) {
+ var f = formatter.get();
+ if (f == null) {
synchronized (this) {
- String oldFormat =
System.getProperty(FORMAT_PROPERTY);
- System.setProperty(FORMAT_PROPERTY, format);
- formatter = new SimpleFormatter();
- if (oldFormat == null)
- System.clearProperty(FORMAT_PROPERTY);
- else
- System.setProperty(FORMAT_PROPERTY,
oldFormat);
+ f = formatter.get();
+ if (f == null) {
+ String oldFormat =
System.getProperty(FORMAT_PROPERTY);
+ System.setProperty(FORMAT_PROPERTY,
format.get());
+ f = new SimpleFormatter();
+ formatter.set(f);
+ if (oldFormat == null)
+
System.clearProperty(FORMAT_PROPERTY);
+ else
+
System.setProperty(FORMAT_PROPERTY, oldFormat);
+ }
}
}
- return formatter;
+ return f;
}
private LogRecord last() {