From ebafa5b990a9e153c9782a1d5935ca06dd8126c2 Mon Sep 17 00:00:00 2001 From: Shai Almog <67850168+shai-almog@users.noreply.github.com> Date: Tue, 27 Jan 2026 04:35:53 +0200 Subject: [PATCH] Fixed PMD P2 issues and UseUtilityClass, EmptyCatchBlock --- .github/scripts/generate-quality-report.py | 5 ++++- CodenameOne/src/com/codename1/capture/Capture.java | 2 +- .../src/com/codename1/charts/util/ColorUtil.java | 2 +- .../src/com/codename1/charts/views/PkgUtils.java | 3 ++- .../src/com/codename1/compat/java/util/Objects.java | 3 +++ .../src/com/codename1/components/MasterDetail.java | 4 +++- .../src/com/codename1/io/ConnectionRequest.java | 1 + .../src/com/codename1/io/FileSystemStorage.java | 1 + CodenameOne/src/com/codename1/io/JSONParser.java | 4 ++-- CodenameOne/src/com/codename1/io/Preferences.java | 4 ++-- CodenameOne/src/com/codename1/io/Properties.java | 1 + CodenameOne/src/com/codename1/io/Socket.java | 3 +-- CodenameOne/src/com/codename1/io/Util.java | 12 ++++-------- .../src/com/codename1/io/WebServiceProxyCall.java | 2 +- .../src/com/codename1/io/gzip/GZIPInputStream.java | 3 +++ CodenameOne/src/com/codename1/io/gzip/JZlib.java | 2 ++ CodenameOne/src/com/codename1/io/rest/Rest.java | 2 +- CodenameOne/src/com/codename1/io/tar/Octal.java | 4 +++- CodenameOne/src/com/codename1/io/tar/TarEntry.java | 1 + CodenameOne/src/com/codename1/io/tar/TarUtils.java | 4 +++- .../src/com/codename1/location/GeofenceManager.java | 1 + .../src/com/codename1/media/MediaManager.java | 2 +- .../com/codename1/media/RemoteControlCallback.java | 2 +- .../com/codename1/processing/EvaluatorFactory.java | 2 +- .../src/com/codename1/processing/PrettyPrinter.java | 2 +- CodenameOne/src/com/codename1/properties/SQLMap.java | 1 + CodenameOne/src/com/codename1/social/Login.java | 1 + CodenameOne/src/com/codename1/ui/Component.java | 3 +++ CodenameOne/src/com/codename1/ui/LeadUtil.java | 2 +- CodenameOne/src/com/codename1/ui/Transform.java | 1 + .../src/com/codename1/ui/geom/GeneralPath.java | 5 +++-- .../src/com/codename1/ui/html/HTMLComponent.java | 3 +++ CodenameOne/src/com/codename1/ui/html/HTMLUtils.java | 1 + .../src/com/codename1/ui/layouts/mig/LayoutUtil.java | 1 + .../src/com/codename1/ui/plaf/StyleParser.java | 2 +- CodenameOne/src/com/codename1/ui/scene/Node.java | 3 ++- .../src/com/codename1/ui/spinner/TimeSpinner3D.java | 1 + .../src/com/codename1/util/AsyncResource.java | 2 ++ CodenameOne/src/com/codename1/util/Base64.java | 2 +- CodenameOne/src/com/codename1/util/StringUtil.java | 2 +- CodenameOne/src/com/codename1/util/TDivision.java | 4 +++- .../src/com/codename1/util/regex/RECharacter.java | 2 +- CodenameOne/src/com/codename1/util/regex/REUtil.java | 2 +- maven/core-unittests/pmd.xml | 11 +++++++++++ 44 files changed, 84 insertions(+), 37 deletions(-) diff --git a/.github/scripts/generate-quality-report.py b/.github/scripts/generate-quality-report.py index fca959ca8f..e670dfd991 100755 --- a/.github/scripts/generate-quality-report.py +++ b/.github/scripts/generate-quality-report.py @@ -924,7 +924,10 @@ def _is_exempt(f: Finding) -> bool: "UselessQualifiedThis", "AvoidBranchingStatementAsLastInLoop", "AvoidUsingVolatile", - "DoNotCallGarbageCollectionExplicitly" + "DoNotCallGarbageCollectionExplicitly", + "SuspiciousEqualsMethodName", + "UseUtilityClass", + "EmptyCatchBlock" } violations = [f for f in pmd.findings if f.rule in forbidden_pmd_rules] if violations: diff --git a/CodenameOne/src/com/codename1/capture/Capture.java b/CodenameOne/src/com/codename1/capture/Capture.java index 3777d5c1e2..995c23dd15 100644 --- a/CodenameOne/src/com/codename1/capture/Capture.java +++ b/CodenameOne/src/com/codename1/capture/Capture.java @@ -49,7 +49,7 @@ * * @author Chen */ -public class Capture { +public abstract class Capture { /** * Returns true if the device has camera false otherwise. diff --git a/CodenameOne/src/com/codename1/charts/util/ColorUtil.java b/CodenameOne/src/com/codename1/charts/util/ColorUtil.java index 2b5d7be920..c84f6ac4d7 100644 --- a/CodenameOne/src/com/codename1/charts/util/ColorUtil.java +++ b/CodenameOne/src/com/codename1/charts/util/ColorUtil.java @@ -26,7 +26,7 @@ /** * @author shannah */ -public class ColorUtil { +public abstract class ColorUtil { public static final int LTGRAY = IColor.LightGray.argb; public static final int BLUE = IColor.Blue.argb; public static final int BLACK = IColor.Black.argb; diff --git a/CodenameOne/src/com/codename1/charts/views/PkgUtils.java b/CodenameOne/src/com/codename1/charts/views/PkgUtils.java index 4c970deebf..94c9a969be 100644 --- a/CodenameOne/src/com/codename1/charts/views/PkgUtils.java +++ b/CodenameOne/src/com/codename1/charts/views/PkgUtils.java @@ -27,7 +27,8 @@ /** * @author shannah */ -class PkgUtils { +final class PkgUtils { + private PkgUtils() {} static Rectangle2D makeRect(double x1, double y1, double x2, double y2) { return new Rectangle2D(x1, y1, x2 - x1, y2 - y1); } diff --git a/CodenameOne/src/com/codename1/compat/java/util/Objects.java b/CodenameOne/src/com/codename1/compat/java/util/Objects.java index 3e9400e86c..67d1ac7b49 100644 --- a/CodenameOne/src/com/codename1/compat/java/util/Objects.java +++ b/CodenameOne/src/com/codename1/compat/java/util/Objects.java @@ -37,6 +37,8 @@ * @author shannah */ public final class Objects { + private Objects() {} + /** * Returns true if the arguments are equal to each other and false otherwise. Consequently, if both arguments are null, true is returned and if exactly one argument is null, false is returned. Otherwise, equality is determined by using the equals method of the first argument. * @@ -44,6 +46,7 @@ public final class Objects { * @param b * @return */ + @SuppressWarnings("PMD.SuspiciousEqualsMethodName") public static boolean equals(Object a, Object b) { if (a == b) { //NOPMD CompareObjectsWithEquals return true; diff --git a/CodenameOne/src/com/codename1/components/MasterDetail.java b/CodenameOne/src/com/codename1/components/MasterDetail.java index 61b9b83754..a04f26eb8e 100644 --- a/CodenameOne/src/com/codename1/components/MasterDetail.java +++ b/CodenameOne/src/com/codename1/components/MasterDetail.java @@ -41,7 +41,9 @@ * @author Shai Almog * @deprecated this was a half baked idea that made it into the public API */ -public class MasterDetail { +public final class MasterDetail { + private MasterDetail() {} + /** * @deprecated this was a half baked idea that made it into the public API */ diff --git a/CodenameOne/src/com/codename1/io/ConnectionRequest.java b/CodenameOne/src/com/codename1/io/ConnectionRequest.java index 0c597bcc98..1bdd9f77dc 100644 --- a/CodenameOne/src/com/codename1/io/ConnectionRequest.java +++ b/CodenameOne/src/com/codename1/io/ConnectionRequest.java @@ -1402,6 +1402,7 @@ private Date parseDate(String date, String... formats) { SimpleDateFormat sdf = new SimpleDateFormat(format); return sdf.parse(date); } catch (Throwable t) { + Log.e(t); } } return null; diff --git a/CodenameOne/src/com/codename1/io/FileSystemStorage.java b/CodenameOne/src/com/codename1/io/FileSystemStorage.java index 23a8908a1b..ce3a30d781 100644 --- a/CodenameOne/src/com/codename1/io/FileSystemStorage.java +++ b/CodenameOne/src/com/codename1/io/FileSystemStorage.java @@ -160,6 +160,7 @@ public void delete(String file) { * @param file file to delete * @param retryCount the number of times to retry */ + @SuppressWarnings("PMD.EmptyCatchBlock") public void deleteRetry(final String file, final int retryCount) { try { Util.getImplementation().deleteFile(file); diff --git a/CodenameOne/src/com/codename1/io/JSONParser.java b/CodenameOne/src/com/codename1/io/JSONParser.java index 3d6cbedfda..f65daf3e95 100644 --- a/CodenameOne/src/com/codename1/io/JSONParser.java +++ b/CodenameOne/src/com/codename1/io/JSONParser.java @@ -366,7 +366,7 @@ public static void parse(Reader i, JSONParseCallback callback) throws IOExceptio callback.keyValue(lastKey, currentToken.toString()); lastKey = null; } - } catch (NumberFormatException err) { + } catch (NumberFormatException err) { // NOPMD EmptyCatchBlock // this isn't a number! } } @@ -404,7 +404,7 @@ public static void parse(Reader i, JSONParseCallback callback) throws IOExceptio callback.keyValue(lastKey, currentToken.toString()); lastKey = null; } - } catch (NumberFormatException err) { + } catch (NumberFormatException err) { // NOPMD EmptyCatchBlock // this isn't a number! } } diff --git a/CodenameOne/src/com/codename1/io/Preferences.java b/CodenameOne/src/com/codename1/io/Preferences.java index 9a6b767e52..26d96e24bb 100644 --- a/CodenameOne/src/com/codename1/io/Preferences.java +++ b/CodenameOne/src/com/codename1/io/Preferences.java @@ -47,7 +47,7 @@ * @author Shai Almog * @author Miguel Mu\u00f1oz */ -public class Preferences { +public final class Preferences { private static final HashMap> listenerMap = new HashMap>(); private static Hashtable p; private static String preferencesLocation = "CN1Preferences"; @@ -55,7 +55,7 @@ public class Preferences { /** * Block instantiation of preferences */ - Preferences() { + private Preferences() { } /** diff --git a/CodenameOne/src/com/codename1/io/Properties.java b/CodenameOne/src/com/codename1/io/Properties.java index 32591b81ee..0b3a4b82af 100644 --- a/CodenameOne/src/com/codename1/io/Properties.java +++ b/CodenameOne/src/com/codename1/io/Properties.java @@ -424,6 +424,7 @@ private void selectProperties(Hashtable selectProperties, final b * handling. */ @Deprecated + @SuppressWarnings("PMD.EmptyCatchBlock") public void save(OutputStream out, String comment) { try { store(out, comment); diff --git a/CodenameOne/src/com/codename1/io/Socket.java b/CodenameOne/src/com/codename1/io/Socket.java index d9508faf20..76e399500b 100644 --- a/CodenameOne/src/com/codename1/io/Socket.java +++ b/CodenameOne/src/com/codename1/io/Socket.java @@ -267,11 +267,10 @@ private void throwEOF() throws IOException { } } - // [ddyer 12/2015] // try to read some data into the buffer if we think there is some // available, but don't wait if there is not. This is used to get // additional data for a read that has more room in it's buffer. - // + @SuppressWarnings("PMD.EmptyCatchBlock") private boolean getDataIfAvailable() { try { if (available() > 0) { diff --git a/CodenameOne/src/com/codename1/io/Util.java b/CodenameOne/src/com/codename1/io/Util.java index 1172158dbd..b7a11396c7 100644 --- a/CodenameOne/src/com/codename1/io/Util.java +++ b/CodenameOne/src/com/codename1/io/Util.java @@ -73,7 +73,7 @@ * * @author Shai Almog */ -public class Util { +public final class Util { private static final Random downloadUrlSafelyRandom = new Random(System.currentTimeMillis()); private static CodenameOneImplementation implInstance; private static Hashtable externalizables = new Hashtable(); @@ -110,6 +110,7 @@ public static void setIgnorCharsWhileEncoding(String s) { ignoreCharsWhenEncoding = s; } + private Util() {} /** * Helper to get a reader from an input stream with UTF-8 encoding @@ -279,17 +280,12 @@ public static void writeStringToFile(File file, String contents, String charset) if (charset == null) { charset = "UTF-8"; } - OutputStream output = null; + OutputStream output = null; // NOPMD CloseResource - false positive try { output = FileSystemStorage.getInstance().openOutputStream(file.getAbsolutePath()); output.write(contents.getBytes(charset)); } finally { - if (output != null) { - try { - output.close(); - } catch (Exception ex) { - } - } + cleanup(output); } } diff --git a/CodenameOne/src/com/codename1/io/WebServiceProxyCall.java b/CodenameOne/src/com/codename1/io/WebServiceProxyCall.java index 98534032ad..e711b07718 100644 --- a/CodenameOne/src/com/codename1/io/WebServiceProxyCall.java +++ b/CodenameOne/src/com/codename1/io/WebServiceProxyCall.java @@ -38,7 +38,7 @@ * * @author Shai Almog */ -public class WebServiceProxyCall { +public abstract class WebServiceProxyCall { /** * Web protocol argument/return type */ diff --git a/CodenameOne/src/com/codename1/io/gzip/GZIPInputStream.java b/CodenameOne/src/com/codename1/io/gzip/GZIPInputStream.java index 4dec699626..f04c9fd57b 100644 --- a/CodenameOne/src/com/codename1/io/gzip/GZIPInputStream.java +++ b/CodenameOne/src/com/codename1/io/gzip/GZIPInputStream.java @@ -29,6 +29,8 @@ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING package com.codename1.io.gzip; +import com.codename1.io.Log; + import java.io.IOException; import java.io.InputStream; @@ -137,6 +139,7 @@ private int fill(byte[] buf) { try { i = in.read(buf, n, buf.length - n); } catch (IOException e) { + Log.e(e); } if (i == -1) { break; diff --git a/CodenameOne/src/com/codename1/io/gzip/JZlib.java b/CodenameOne/src/com/codename1/io/gzip/JZlib.java index 994975931e..cb5d12eb3d 100644 --- a/CodenameOne/src/com/codename1/io/gzip/JZlib.java +++ b/CodenameOne/src/com/codename1/io/gzip/JZlib.java @@ -74,6 +74,8 @@ public static String version() { return version; } + private JZlib() {} + /** * @deprecated Use {@link #adler32Combine(long, long, long)}. */ diff --git a/CodenameOne/src/com/codename1/io/rest/Rest.java b/CodenameOne/src/com/codename1/io/rest/Rest.java index 85ae2d41ae..d797075afc 100644 --- a/CodenameOne/src/com/codename1/io/rest/Rest.java +++ b/CodenameOne/src/com/codename1/io/rest/Rest.java @@ -28,7 +28,7 @@ * * @author Chen Fishbein */ -public class Rest { +public abstract class Rest { /** * Creates a GET request builder diff --git a/CodenameOne/src/com/codename1/io/tar/Octal.java b/CodenameOne/src/com/codename1/io/tar/Octal.java index 94c1bfafbc..4b822fadcd 100644 --- a/CodenameOne/src/com/codename1/io/tar/Octal.java +++ b/CodenameOne/src/com/codename1/io/tar/Octal.java @@ -23,7 +23,9 @@ /** * @author Kamran Zafar */ -public class Octal { +public final class Octal { + + private Octal() {} /** * Parse an octal string from a header buffer. This is used for the file diff --git a/CodenameOne/src/com/codename1/io/tar/TarEntry.java b/CodenameOne/src/com/codename1/io/tar/TarEntry.java index 89424560cb..8dcb2c7964 100644 --- a/CodenameOne/src/com/codename1/io/tar/TarEntry.java +++ b/CodenameOne/src/com/codename1/io/tar/TarEntry.java @@ -47,6 +47,7 @@ public TarEntry(byte[] headerBuf) { this.parseTarHeader(headerBuf); } + @SuppressWarnings("PMD.SuspiciousEqualsMethodName") public boolean equals(TarEntry it) { return this.header.name.toString().equals(it.header.name.toString()); } diff --git a/CodenameOne/src/com/codename1/io/tar/TarUtils.java b/CodenameOne/src/com/codename1/io/tar/TarUtils.java index 2ef4f49494..31acea7709 100644 --- a/CodenameOne/src/com/codename1/io/tar/TarUtils.java +++ b/CodenameOne/src/com/codename1/io/tar/TarUtils.java @@ -27,7 +27,9 @@ /** * @author Kamran */ -public class TarUtils { +public final class TarUtils { + private TarUtils() {} + /** * Determines the tar file size of the given folder/file path * diff --git a/CodenameOne/src/com/codename1/location/GeofenceManager.java b/CodenameOne/src/com/codename1/location/GeofenceManager.java index f9a22fce26..d0dde533df 100644 --- a/CodenameOne/src/com/codename1/location/GeofenceManager.java +++ b/CodenameOne/src/com/codename1/location/GeofenceManager.java @@ -155,6 +155,7 @@ private synchronized Map getExpiryTimes(boolean reload) { try { expiryTimes = (Map) Storage.getInstance().readObject(EXPIRATIONS_KEY); } catch (Throwable t) { + Log.e(t); } if (expiryTimes == null) { expiryTimes = new HashMap(); diff --git a/CodenameOne/src/com/codename1/media/MediaManager.java b/CodenameOne/src/com/codename1/media/MediaManager.java index febb94694a..48908e428c 100644 --- a/CodenameOne/src/com/codename1/media/MediaManager.java +++ b/CodenameOne/src/com/codename1/media/MediaManager.java @@ -61,7 +61,7 @@ * * Demonstrates capturing of audio files and their playback using the Codename One APIs Media, MediaManager and MediaRecorderBuilder */ -public class MediaManager { +public abstract class MediaManager { /** * A static map of audio buffers. These can be used to register an Audio buffer to receive diff --git a/CodenameOne/src/com/codename1/media/RemoteControlCallback.java b/CodenameOne/src/com/codename1/media/RemoteControlCallback.java index 754db1ea58..9ec731c0c0 100644 --- a/CodenameOne/src/com/codename1/media/RemoteControlCallback.java +++ b/CodenameOne/src/com/codename1/media/RemoteControlCallback.java @@ -28,7 +28,7 @@ * @author shannah * @deprecated for internal use only. */ -class RemoteControlCallback { +abstract class RemoteControlCallback { private static final RemoteControlListener nullListener = new RemoteControlListener(); private static RemoteControlListener l() { diff --git a/CodenameOne/src/com/codename1/processing/EvaluatorFactory.java b/CodenameOne/src/com/codename1/processing/EvaluatorFactory.java index 3c62245775..66ebb27dad 100644 --- a/CodenameOne/src/com/codename1/processing/EvaluatorFactory.java +++ b/CodenameOne/src/com/codename1/processing/EvaluatorFactory.java @@ -39,7 +39,7 @@ * * @author Eric Coolman */ -class EvaluatorFactory { +abstract class EvaluatorFactory { /** * Construct an evaluator for a given predicate expression. * diff --git a/CodenameOne/src/com/codename1/processing/PrettyPrinter.java b/CodenameOne/src/com/codename1/processing/PrettyPrinter.java index b77d722ea2..ccde53ce36 100644 --- a/CodenameOne/src/com/codename1/processing/PrettyPrinter.java +++ b/CodenameOne/src/com/codename1/processing/PrettyPrinter.java @@ -127,7 +127,7 @@ static String valueToString(Object value, int indentFactor, int indent) { if (value instanceof String) { return quote((String) value); } - } catch (Exception e) { + } catch (Exception e) { // NOPMD EmptyCatchBlock /* forget about it */ } if (value instanceof Float || value instanceof Double || diff --git a/CodenameOne/src/com/codename1/properties/SQLMap.java b/CodenameOne/src/com/codename1/properties/SQLMap.java index bfcc530374..c2462dec8b 100644 --- a/CodenameOne/src/com/codename1/properties/SQLMap.java +++ b/CodenameOne/src/com/codename1/properties/SQLMap.java @@ -744,6 +744,7 @@ public SelectBuilder orderBy(PropertyBase property, boolean ascending) { * @param property the property * @return the builder instance */ + @SuppressWarnings("PMD.SuspiciousEqualsMethodName") public SelectBuilder equals(PropertyBase property) { return new SelectBuilder(property, " = ", null, null, this); } diff --git a/CodenameOne/src/com/codename1/social/Login.java b/CodenameOne/src/com/codename1/social/Login.java index 329950ddae..dd7b88ecb8 100644 --- a/CodenameOne/src/com/codename1/social/Login.java +++ b/CodenameOne/src/com/codename1/social/Login.java @@ -333,6 +333,7 @@ public void validateToken() throws IOException { Preferences.set(getClass().getName() + "Token", getAccessToken().getToken()); return; } catch (Throwable t) { + Log.e(t); } } diff --git a/CodenameOne/src/com/codename1/ui/Component.java b/CodenameOne/src/com/codename1/ui/Component.java index 22913a323a..715e290ea8 100644 --- a/CodenameOne/src/com/codename1/ui/Component.java +++ b/CodenameOne/src/com/codename1/ui/Component.java @@ -28,6 +28,7 @@ import com.codename1.components.InfiniteProgress; import com.codename1.components.InteractionDialog; import com.codename1.impl.CodenameOneImplementation; +import com.codename1.io.Log; import com.codename1.ui.TextSelection.TextSelectionSupport; import com.codename1.ui.animations.Animation; import com.codename1.ui.animations.ComponentAnimation; @@ -575,6 +576,7 @@ public static Dimension parsePreferredSize(String preferredSize, Dimension baseS } } } catch (Throwable t) { + Log.e(t); } try { @@ -586,6 +588,7 @@ public static Dimension parsePreferredSize(String preferredSize, Dimension baseS baseSize.setHeight(Integer.parseInt(hStr)); } } catch (Throwable t) { + Log.e(t); } return baseSize; } diff --git a/CodenameOne/src/com/codename1/ui/LeadUtil.java b/CodenameOne/src/com/codename1/ui/LeadUtil.java index 99d791da63..894be87fb2 100644 --- a/CodenameOne/src/com/codename1/ui/LeadUtil.java +++ b/CodenameOne/src/com/codename1/ui/LeadUtil.java @@ -28,7 +28,7 @@ * @author Steve Hannah * @since 7.0 */ -class LeadUtil { +abstract class LeadUtil { /** * Gets the lead parent for a component, or the component itself if there is diff --git a/CodenameOne/src/com/codename1/ui/Transform.java b/CodenameOne/src/com/codename1/ui/Transform.java index 9adf45b91b..b6049dcf94 100644 --- a/CodenameOne/src/com/codename1/ui/Transform.java +++ b/CodenameOne/src/com/codename1/ui/Transform.java @@ -895,6 +895,7 @@ public Transform copy() { } + @SuppressWarnings("PMD.SuspiciousEqualsMethodName") public boolean equals(Transform t2) { if (type == TYPE_IDENTITY && t2.type == TYPE_IDENTITY) { return true; diff --git a/CodenameOne/src/com/codename1/ui/geom/GeneralPath.java b/CodenameOne/src/com/codename1/ui/geom/GeneralPath.java index f83d2e7d9c..2e99e57d21 100644 --- a/CodenameOne/src/com/codename1/ui/geom/GeneralPath.java +++ b/CodenameOne/src/com/codename1/ui/geom/GeneralPath.java @@ -1805,8 +1805,9 @@ static class EPoint { /** * @author shannah */ - static class ShapeUtil { - + final static class ShapeUtil { + private ShapeUtil() { + } /** * Rectangle cross segment diff --git a/CodenameOne/src/com/codename1/ui/html/HTMLComponent.java b/CodenameOne/src/com/codename1/ui/html/HTMLComponent.java index 1af7a6b291..241aa8a432 100644 --- a/CodenameOne/src/com/codename1/ui/html/HTMLComponent.java +++ b/CodenameOne/src/com/codename1/ui/html/HTMLComponent.java @@ -1867,6 +1867,7 @@ void applyAllCSS() { * * @param head The HEAD element of the document */ + @SuppressWarnings("PMD.EmptyCatchBlock") private void checkRedirect(HTMLElement head) { if (head != null) { HTMLElement meta = head.getFirstChildByTagId(HTMLElement.TAG_META); @@ -2425,6 +2426,7 @@ private void handleImage(HTMLElement imgElement, int align, Command cmd) { * * @param areaTag The AREA tag */ + @SuppressWarnings("PMD.EmptyCatchBlock") private void handleImageMapArea(HTMLElement areaTag) { if (curImageMap != null) { String shape = areaTag.getAttributeById(HTMLElement.ATTR_SHAPE); @@ -3993,6 +3995,7 @@ public String setPropertyValue(String name, Object value) { * @param counterStr The counter-increment/reset property value which is the string counter name followed optionally by the factor by which to increment or the value to reset to * @param reset true to reset, false to increment */ + @SuppressWarnings("PMD.EmptyCatchBlock") void incCounter(String counterStr, boolean reset) { counterStr = counterStr.trim(); int value = reset ? 0 : 1; // 0 is the default value to reset to, while 1 is the default increment step diff --git a/CodenameOne/src/com/codename1/ui/html/HTMLUtils.java b/CodenameOne/src/com/codename1/ui/html/HTMLUtils.java index 37bd0c72e4..caa76a0398 100644 --- a/CodenameOne/src/com/codename1/ui/html/HTMLUtils.java +++ b/CodenameOne/src/com/codename1/ui/html/HTMLUtils.java @@ -105,6 +105,7 @@ public static String convertHTMLCharEntity(String charEntity) { * @param userDefinedCharEntities A hashtable containing (String,int) dentoing the char entity name and its unicode * @return A string containing a single char, or the original char entity string (with & and ;) if the char entity couldn't be resolved */ + @SuppressWarnings("PMD.EmptyCatchBlock") public static String convertCharEntity(String charEntity, boolean lookupHTMLentities, Hashtable userDefinedCharEntities) { int charCode = -1; if (charEntity.startsWith("#")) { //numbered char entity diff --git a/CodenameOne/src/com/codename1/ui/layouts/mig/LayoutUtil.java b/CodenameOne/src/com/codename1/ui/layouts/mig/LayoutUtil.java index e18c33bfba..d5697e78a7 100644 --- a/CodenameOne/src/com/codename1/ui/layouts/mig/LayoutUtil.java +++ b/CodenameOne/src/com/codename1/ui/layouts/mig/LayoutUtil.java @@ -447,6 +447,7 @@ static int[] roundSizes(float[] sizes) { * @param o2 The second object. May be null. * @return Returns true if o1 and o2 are equal (using .equals()) or both are null. */ + @SuppressWarnings("PMD.SuspiciousEqualsMethodName") static boolean equals(Object o1, Object o2) { return o1 == o2 || (o1 != null && o2 != null && o1.equals(o2)); //NOPMD CompareObjectsWithEquals } diff --git a/CodenameOne/src/com/codename1/ui/plaf/StyleParser.java b/CodenameOne/src/com/codename1/ui/plaf/StyleParser.java index c29daeceb3..66422fc8b6 100644 --- a/CodenameOne/src/com/codename1/ui/plaf/StyleParser.java +++ b/CodenameOne/src/com/codename1/ui/plaf/StyleParser.java @@ -148,7 +148,7 @@ * * @author shannah */ -public class StyleParser { +public abstract class StyleParser { public static final byte UNIT_INHERIT = 99; private static final Map BG_TYPES = createBgTypes(); diff --git a/CodenameOne/src/com/codename1/ui/scene/Node.java b/CodenameOne/src/com/codename1/ui/scene/Node.java index c6af479dcb..959f2aae78 100644 --- a/CodenameOne/src/com/codename1/ui/scene/Node.java +++ b/CodenameOne/src/com/codename1/ui/scene/Node.java @@ -22,6 +22,7 @@ */ package com.codename1.ui.scene; +import com.codename1.io.Log; import com.codename1.properties.Property; import com.codename1.ui.Container; import com.codename1.ui.Graphics; @@ -630,7 +631,7 @@ void render(Graphics g) { g.drawRect(getX(), getY(), getWidth() - 1, getHeight() - 1); g.setAlpha(alpha); } catch (Throwable t) { - + Log.e(t); } } } diff --git a/CodenameOne/src/com/codename1/ui/spinner/TimeSpinner3D.java b/CodenameOne/src/com/codename1/ui/spinner/TimeSpinner3D.java index 17be7fbb51..1f8f05b63a 100644 --- a/CodenameOne/src/com/codename1/ui/spinner/TimeSpinner3D.java +++ b/CodenameOne/src/com/codename1/ui/spinner/TimeSpinner3D.java @@ -545,6 +545,7 @@ public String format(String input) { private static class MinuteRowFormatter implements RowFormatter { @Override + @SuppressWarnings("PMD.EmptyCatchBlock") public String format(String input) { if (input != null) { try { diff --git a/CodenameOne/src/com/codename1/util/AsyncResource.java b/CodenameOne/src/com/codename1/util/AsyncResource.java index 85f6f5b90d..fad15347e3 100644 --- a/CodenameOne/src/com/codename1/util/AsyncResource.java +++ b/CodenameOne/src/com/codename1/util/AsyncResource.java @@ -24,6 +24,7 @@ import com.codename1.annotations.Async; +import com.codename1.io.Log; import com.codename1.io.Util; import com.codename1.ui.CN; import com.codename1.util.promise.Promise; @@ -240,6 +241,7 @@ public void waitFor() { try { get(); } catch (Throwable t) { + Log.e(t); } } diff --git a/CodenameOne/src/com/codename1/util/Base64.java b/CodenameOne/src/com/codename1/util/Base64.java index ce2ee16d1b..2d223e1d72 100644 --- a/CodenameOne/src/com/codename1/util/Base64.java +++ b/CodenameOne/src/com/codename1/util/Base64.java @@ -25,7 +25,7 @@ * This class implements Base64 encoding/decoding functionality * as specified in RFC 2045 (http://www.ietf.org/rfc/rfc2045.txt). */ -public class Base64 { +public abstract class Base64 { private static final byte[] map = new byte[] {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', diff --git a/CodenameOne/src/com/codename1/util/StringUtil.java b/CodenameOne/src/com/codename1/util/StringUtil.java index d2afbfcecc..61c158b7a3 100644 --- a/CodenameOne/src/com/codename1/util/StringUtil.java +++ b/CodenameOne/src/com/codename1/util/StringUtil.java @@ -34,7 +34,7 @@ * * @author Chen Fishbein */ -public class StringUtil { +public abstract class StringUtil { private static CodenameOneImplementation impl; diff --git a/CodenameOne/src/com/codename1/util/TDivision.java b/CodenameOne/src/com/codename1/util/TDivision.java index 8a5cf64be0..74edf2b087 100644 --- a/CodenameOne/src/com/codename1/util/TDivision.java +++ b/CodenameOne/src/com/codename1/util/TDivision.java @@ -38,7 +38,9 @@ * * */ -class TDivision { +final class TDivision { + + private TDivision() {} /** * Divides the array 'a' by the array 'b' and gets the quotient and the diff --git a/CodenameOne/src/com/codename1/util/regex/RECharacter.java b/CodenameOne/src/com/codename1/util/regex/RECharacter.java index af18b0b793..e69125ff42 100644 --- a/CodenameOne/src/com/codename1/util/regex/RECharacter.java +++ b/CodenameOne/src/com/codename1/util/regex/RECharacter.java @@ -19,7 +19,7 @@ /** * @author Nikolay Neizvesny */ -public class RECharacter { +public abstract class RECharacter { public static final byte UNASSIGNED = 0; public static final byte UPPERCASE_LETTER = 1; diff --git a/CodenameOne/src/com/codename1/util/regex/REUtil.java b/CodenameOne/src/com/codename1/util/regex/REUtil.java index a714000d28..e26ec0d39c 100644 --- a/CodenameOne/src/com/codename1/util/regex/REUtil.java +++ b/CodenameOne/src/com/codename1/util/regex/REUtil.java @@ -23,7 +23,7 @@ * @author Jonathan Locke * @version $Id: REUtil.java 518156 2007-03-14 14:31:26Z vgritsenko $ */ -public class REUtil { +public abstract class REUtil { /** * complex: */ diff --git a/maven/core-unittests/pmd.xml b/maven/core-unittests/pmd.xml index 2c088bd470..b3b1efd44f 100644 --- a/maven/core-unittests/pmd.xml +++ b/maven/core-unittests/pmd.xml @@ -16,6 +16,17 @@ + + + + + + + + + +