diff --git a/.github/scripts/generate-quality-report.py b/.github/scripts/generate-quality-report.py
index 7855cad769..0f46f75376 100755
--- a/.github/scripts/generate-quality-report.py
+++ b/.github/scripts/generate-quality-report.py
@@ -815,6 +815,7 @@ def main() -> None:
"NM_CONFUSING",
"NM_FIELD_NAMING_CONVENTION",
"NM_METHOD_NAMING_CONVENTION",
+ "NN_NAKED_NOTIFY",
"NO_NOTIFY_NOT_NOTIFYALL",
"NP_LOAD_OF_KNOWN_NULL_VALUE",
"NP_BOOLEAN_RETURN_NULL",
@@ -851,6 +852,8 @@ def _is_exempt(f: Finding) -> bool:
return True
if f.rule == "URF_UNREAD_FIELD" and "GridBagLayoutInfo" in loc:
return True
+ if f.rule == "NN_NAKED_NOTIFY" and "Display.java" in loc:
+ return True
return False
diff --git a/CodenameOne/src/com/codename1/capture/Capture.java b/CodenameOne/src/com/codename1/capture/Capture.java
index 4b65da9637..8571073ce2 100644
--- a/CodenameOne/src/com/codename1/capture/Capture.java
+++ b/CodenameOne/src/com/codename1/capture/Capture.java
@@ -257,8 +257,8 @@ public void actionPerformed(ActionEvent evt) {
} else {
url = (String) evt.getSource();
}
- completed = true;
synchronized (this) {
+ completed = true;
this.notifyAll();
}
}
diff --git a/CodenameOne/src/com/codename1/components/WebBrowser.java b/CodenameOne/src/com/codename1/components/WebBrowser.java
index 50f4791d8b..0067d89f00 100644
--- a/CodenameOne/src/com/codename1/components/WebBrowser.java
+++ b/CodenameOne/src/com/codename1/components/WebBrowser.java
@@ -154,8 +154,8 @@ protected void readResponse(InputStream input) throws IOException {
if (callback != null) {
callback.streamReady(input, docInfo);
} else {
- response[0] = input;
synchronized (LOCK) {
+ response[0] = input;
LOCK.notifyAll();
}
}
diff --git a/CodenameOne/src/com/codename1/impl/CodenameOneImplementation.java b/CodenameOne/src/com/codename1/impl/CodenameOneImplementation.java
index 0fdaad117e..b329e3adca 100644
--- a/CodenameOne/src/com/codename1/impl/CodenameOneImplementation.java
+++ b/CodenameOne/src/com/codename1/impl/CodenameOneImplementation.java
@@ -7177,13 +7177,9 @@ protected final void pushReceived(String data) {
* Sets the frequency for polling the server in case of polling based push notification
*
* @param freq the frequency in milliseconds
+ * @deprecated we no longer support push polling
*/
public void setPollingFrequency(int freq) {
- if (callback != null && pollingThreadRunning) {
- synchronized (callback) {
- callback.notifyAll();
- }
- }
}
/**
diff --git a/CodenameOne/src/com/codename1/io/NetworkManager.java b/CodenameOne/src/com/codename1/io/NetworkManager.java
index a96c460b8f..438917d40e 100644
--- a/CodenameOne/src/com/codename1/io/NetworkManager.java
+++ b/CodenameOne/src/com/codename1/io/NetworkManager.java
@@ -330,8 +330,8 @@ public void shutdown() {
}
}
}
- networkThreads = null;
synchronized (LOCK) {
+ networkThreads = null;
LOCK.notifyAll();
}
@@ -970,10 +970,10 @@ public void run() {
if (!runCurrentRequest(currentRequest)) {
continue;
}
- currentRequest = null;
// wakeup threads waiting for the completion of this network operation
synchronized (LOCK) {
+ currentRequest = null;
LOCK.notifyAll();
}
} else {
diff --git a/CodenameOne/src/com/codename1/ui/Display.java b/CodenameOne/src/com/codename1/ui/Display.java
index 45d8ebd0b5..d9c1db5ac5 100644
--- a/CodenameOne/src/com/codename1/ui/Display.java
+++ b/CodenameOne/src/com/codename1/ui/Display.java
@@ -506,9 +506,8 @@ public static void init(Object m) {
* Notice that minimize (being a Codename One method) MUST be invoked before invoking this method!
*/
public static void deinitialize() {
-
- INSTANCE.codenameOneRunning = false;
synchronized (lock) {
+ INSTANCE.codenameOneRunning = false;
lock.notifyAll();
}
}
@@ -4684,6 +4683,7 @@ public String getDatabasePath(String databaseName) {
* Sets the frequency for polling the server in case of polling based push notification
*
* @param freq the frequency in milliseconds
+ * @deprecated we no longer support push polling
*/
public void setPollingFrequency(int freq) {
impl.setPollingFrequency(freq);
diff --git a/CodenameOne/src/com/codename1/ui/RunnableWrapper.java b/CodenameOne/src/com/codename1/ui/RunnableWrapper.java
index 985534c41c..44c4643254 100644
--- a/CodenameOne/src/com/codename1/ui/RunnableWrapper.java
+++ b/CodenameOne/src/com/codename1/ui/RunnableWrapper.java
@@ -106,8 +106,8 @@ public void run() {
switch (type) {
case 0:
internal.run();
- done = true;
synchronized (Display.lock) {
+ done = true;
Display.lock.notifyAll();
}
break;
diff --git a/CodenameOne/src/com/codename1/ui/html/AsyncDocumentRequestHandlerImpl.java b/CodenameOne/src/com/codename1/ui/html/AsyncDocumentRequestHandlerImpl.java
index 15b65a0e5d..f4c02f4b74 100644
--- a/CodenameOne/src/com/codename1/ui/html/AsyncDocumentRequestHandlerImpl.java
+++ b/CodenameOne/src/com/codename1/ui/html/AsyncDocumentRequestHandlerImpl.java
@@ -155,8 +155,8 @@ protected void readResponse(InputStream input) throws IOException {
if (callback != null) {
callback.streamReady(input, docInfo);
} else {
- response[0] = input;
synchronized (LOCK) {
+ response[0] = input;
LOCK.notifyAll();
}
}
diff --git a/maven/core-unittests/spotbugs-exclude.xml b/maven/core-unittests/spotbugs-exclude.xml
index 83d432d54b..221cdb8d49 100644
--- a/maven/core-unittests/spotbugs-exclude.xml
+++ b/maven/core-unittests/spotbugs-exclude.xml
@@ -152,6 +152,15 @@
+
+
+
+
+
+