You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2025/04/26 21:52:34 UTC
(commons-imaging) 01/03: Fix SpotBugs CT_CONSTRUCTOR_THROW
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-imaging.git
commit 24bab44e07e692d8bae4d1740e6d1802b63099ba
Author: Gary D. Gregory <ga...@gmail.com>
AuthorDate: Sat Apr 26 17:34:28 2025 -0400
Fix SpotBugs CT_CONSTRUCTOR_THROW
- Use "Compliant Solution (Final)" from
https://wiki.sei.cmu.edu/confluence/display/java/OBJ11-J.+Be+wary+of+letting+constructors+throw+exceptions
---
src/changes/changes.xml | 1 +
src/main/java/org/apache/commons/imaging/common/ImageBuilder.java | 2 +-
.../org/apache/commons/imaging/formats/jpeg/segments/App2Segment.java | 2 +-
.../org/apache/commons/imaging/formats/jpeg/segments/DhtSegment.java | 2 +-
.../org/apache/commons/imaging/formats/jpeg/segments/DqtSegment.java | 2 +-
.../org/apache/commons/imaging/formats/jpeg/segments/JfifSegment.java | 2 +-
.../org/apache/commons/imaging/formats/jpeg/segments/SofnSegment.java | 2 +-
.../org/apache/commons/imaging/formats/jpeg/segments/SosSegment.java | 2 +-
.../org/apache/commons/imaging/formats/png/chunks/PngChunkGama.java | 2 +-
.../org/apache/commons/imaging/formats/png/chunks/PngChunkIccp.java | 2 +-
.../org/apache/commons/imaging/formats/png/chunks/PngChunkIhdr.java | 2 +-
.../org/apache/commons/imaging/formats/png/chunks/PngChunkItxt.java | 2 +-
.../org/apache/commons/imaging/formats/png/chunks/PngChunkPhys.java | 2 +-
.../org/apache/commons/imaging/formats/png/chunks/PngChunkPlte.java | 2 +-
.../org/apache/commons/imaging/formats/png/chunks/PngChunkScal.java | 2 +-
.../org/apache/commons/imaging/formats/png/chunks/PngChunkText.java | 2 +-
.../org/apache/commons/imaging/formats/png/chunks/PngChunkZtxt.java | 2 +-
.../formats/png/transparencyfilters/TransparencyFilterGrayscale.java | 2 +-
.../formats/png/transparencyfilters/TransparencyFilterTrueColor.java | 2 +-
.../org/apache/commons/imaging/formats/tiff/TiffRasterDataFloat.java | 2 +-
.../java/org/apache/commons/imaging/formats/tiff/TiffRasterDataInt.java | 2 +-
.../tiff/photometricinterpreters/PhotometricInterpreterPalette.java | 2 +-
.../photometricinterpreters/floatingpoint/PaletteEntryForRange.java | 2 +-
.../photometricinterpreters/floatingpoint/PaletteEntryForValue.java | 2 +-
.../floatingpoint/PhotometricInterpreterFloat.java | 2 +-
25 files changed, 25 insertions(+), 24 deletions(-)
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 5e6bf2a0..43673ead 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -56,6 +56,7 @@ The <action> type attribute can be add,update,fix,remove.
<action dev="ggregory" type="fix" due-to="Gary Gregory">Increase default block size in byte sources from 1024 to 8192 bytes.</action>
<action dev="ggregory" type="fix" due-to="Sebastian Schlatow">Remove double ImagingException from method signatures #462.</action>
<action dev="ggregory" type="fix" due-to="Gary Gregory">Fix all PMD issues.</action>
+ <action dev="ggregory" type="fix" due-to="Gary Gregory">Fix SpotBugs CT_CONSTRUCTOR_THROW.</action>
<!-- ADD -->
<action dev="ggregory" type="add" due-to="Arnout Engelen">Add an Imaging-specific security page #439.</action>
<action dev="ggregory" type="add" due-to="Gary Gregory">Add Maven property commons.taglist.version for debugging.</action>
diff --git a/src/main/java/org/apache/commons/imaging/common/ImageBuilder.java b/src/main/java/org/apache/commons/imaging/common/ImageBuilder.java
index 35d64651..48559bea 100644
--- a/src/main/java/org/apache/commons/imaging/common/ImageBuilder.java
+++ b/src/main/java/org/apache/commons/imaging/common/ImageBuilder.java
@@ -53,7 +53,7 @@ import java.util.Properties;
/**
* A utility class primary intended for storing data obtained by reading image files.
*/
-public class ImageBuilder {
+public final class ImageBuilder {
private final int[] data;
private final int width;
private final int height;
diff --git a/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/App2Segment.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/App2Segment.java
index a92a49fd..3bb3c090 100644
--- a/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/App2Segment.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/App2Segment.java
@@ -27,7 +27,7 @@ import java.io.InputStream;
import org.apache.commons.imaging.ImagingException;
import org.apache.commons.imaging.formats.jpeg.JpegConstants;
-public class App2Segment extends AppnSegment implements Comparable<App2Segment> {
+public final class App2Segment extends AppnSegment implements Comparable<App2Segment> {
private final byte[] iccBytes;
public final int curMarker;
public final int numMarkers;
diff --git a/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/DhtSegment.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/DhtSegment.java
index 8ddfc4d2..d1e5ff3d 100644
--- a/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/DhtSegment.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/DhtSegment.java
@@ -26,7 +26,7 @@ import java.util.List;
import org.apache.commons.imaging.common.Allocator;
-public class DhtSegment extends AbstractSegment {
+public final class DhtSegment extends AbstractSegment {
public static class HuffmanTable {
// some arrays are better off one-based
diff --git a/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/DqtSegment.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/DqtSegment.java
index 4c8df85a..e2fbc799 100644
--- a/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/DqtSegment.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/DqtSegment.java
@@ -26,7 +26,7 @@ import java.util.List;
import org.apache.commons.imaging.ImagingException;
-public class DqtSegment extends AbstractSegment {
+public final class DqtSegment extends AbstractSegment {
public static class QuantizationTable {
public final int precision;
public final int destinationIdentifier;
diff --git a/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/JfifSegment.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/JfifSegment.java
index 6b487640..022209b4 100644
--- a/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/JfifSegment.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/JfifSegment.java
@@ -28,7 +28,7 @@ import java.io.InputStream;
import org.apache.commons.imaging.ImagingException;
import org.apache.commons.imaging.formats.jpeg.JpegConstants;
-public class JfifSegment extends AbstractSegment {
+public final class JfifSegment extends AbstractSegment {
public final int jfifMajorVersion;
public final int jfifMinorVersion;
public final int densityUnits;
diff --git a/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/SofnSegment.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/SofnSegment.java
index fc267a6e..32536b9d 100644
--- a/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/SofnSegment.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/SofnSegment.java
@@ -29,7 +29,7 @@ import org.apache.commons.imaging.ImagingException;
import org.apache.commons.imaging.common.Allocator;
import org.apache.commons.imaging.formats.jpeg.JpegConstants;
-public class SofnSegment extends AbstractSegment {
+public final class SofnSegment extends AbstractSegment {
public static class Component {
static final int SHALLOW_SIZE = 32;
diff --git a/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/SosSegment.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/SosSegment.java
index 6ace959b..5d5d20af 100644
--- a/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/SosSegment.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/SosSegment.java
@@ -26,7 +26,7 @@ import java.util.logging.Logger;
import org.apache.commons.imaging.common.Allocator;
-public class SosSegment extends AbstractSegment {
+public final class SosSegment extends AbstractSegment {
public static class Component {
static final int SHALLOW_SIZE = 24;
diff --git a/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkGama.java b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkGama.java
index 86160bce..4983a53b 100644
--- a/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkGama.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkGama.java
@@ -21,7 +21,7 @@ import static org.apache.commons.imaging.common.BinaryFunctions.read4Bytes;
import java.io.ByteArrayInputStream;
import java.io.IOException;
-public class PngChunkGama extends PngChunk {
+public final class PngChunkGama extends PngChunk {
private final int gamma;
diff --git a/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkIccp.java b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkIccp.java
index d41767a8..b828c6fe 100644
--- a/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkIccp.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkIccp.java
@@ -35,7 +35,7 @@ import org.apache.commons.io.IOUtils;
*
* @see <a href="http://www.libpng.org/pub/png/spec/1.2/PNG-Chunks.html">PNG Specification</a>
*/
-public class PngChunkIccp extends PngChunk {
+public final class PngChunkIccp extends PngChunk {
/*
* Logger.
diff --git a/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkIhdr.java b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkIhdr.java
index 22ca5f08..b7437613 100644
--- a/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkIhdr.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkIhdr.java
@@ -26,7 +26,7 @@ import org.apache.commons.imaging.ImagingException;
import org.apache.commons.imaging.formats.png.InterlaceMethod;
import org.apache.commons.imaging.formats.png.PngColorType;
-public class PngChunkIhdr extends PngChunk {
+public final class PngChunkIhdr extends PngChunk {
private final int width;
private final int height;
diff --git a/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkItxt.java b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkItxt.java
index 1e5c17e1..e66dc355 100644
--- a/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkItxt.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkItxt.java
@@ -28,7 +28,7 @@ import org.apache.commons.imaging.formats.png.AbstractPngText;
import org.apache.commons.imaging.formats.png.PngConstants;
import org.apache.commons.io.IOUtils;
-public class PngChunkItxt extends AbstractPngTextChunk {
+public final class PngChunkItxt extends AbstractPngTextChunk {
private final String keyword;
private final String text;
diff --git a/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkPhys.java b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkPhys.java
index cee8071b..f56a1b63 100644
--- a/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkPhys.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkPhys.java
@@ -22,7 +22,7 @@ import static org.apache.commons.imaging.common.BinaryFunctions.readByte;
import java.io.ByteArrayInputStream;
import java.io.IOException;
-public class PngChunkPhys extends PngChunk {
+public final class PngChunkPhys extends PngChunk {
private final int pixelsPerUnitXAxis;
private final int pixelsPerUnitYAxis;
diff --git a/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkPlte.java b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkPlte.java
index cefa2d8f..b95b304a 100644
--- a/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkPlte.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkPlte.java
@@ -26,7 +26,7 @@ import org.apache.commons.imaging.ImagingException;
import org.apache.commons.imaging.common.Allocator;
import org.apache.commons.imaging.formats.png.GammaCorrection;
-public class PngChunkPlte extends PngChunk {
+public final class PngChunkPlte extends PngChunk {
private final int[] rgb;
public PngChunkPlte(final int length, final int chunkType, final int crc, final byte[] bytes) throws ImagingException, IOException {
diff --git a/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkScal.java b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkScal.java
index 4ae1810a..d49c0b04 100644
--- a/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkScal.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkScal.java
@@ -21,7 +21,7 @@ import java.nio.charset.StandardCharsets;
import org.apache.commons.imaging.ImagingException;
import org.apache.commons.imaging.common.BinaryFunctions;
-public class PngChunkScal extends PngChunk {
+public final class PngChunkScal extends PngChunk {
private final double unitsPerPixelXAxis;
private final double unitsPerPixelYAxis;
diff --git a/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkText.java b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkText.java
index 33cb18bc..161c96a5 100644
--- a/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkText.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkText.java
@@ -24,7 +24,7 @@ import org.apache.commons.imaging.ImagingException;
import org.apache.commons.imaging.common.BinaryFunctions;
import org.apache.commons.imaging.formats.png.AbstractPngText;
-public class PngChunkText extends AbstractPngTextChunk {
+public final class PngChunkText extends AbstractPngTextChunk {
private static final Logger LOGGER = Logger.getLogger(PngChunkText.class.getName());
diff --git a/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkZtxt.java b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkZtxt.java
index d560e041..5b6252d0 100644
--- a/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkZtxt.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkZtxt.java
@@ -28,7 +28,7 @@ import org.apache.commons.imaging.formats.png.AbstractPngText;
import org.apache.commons.imaging.formats.png.PngConstants;
import org.apache.commons.io.IOUtils;
-public class PngChunkZtxt extends AbstractPngTextChunk {
+public final class PngChunkZtxt extends AbstractPngTextChunk {
private final String keyword;
private final String text;
diff --git a/src/main/java/org/apache/commons/imaging/formats/png/transparencyfilters/TransparencyFilterGrayscale.java b/src/main/java/org/apache/commons/imaging/formats/png/transparencyfilters/TransparencyFilterGrayscale.java
index 3b1f8a99..73c786fe 100644
--- a/src/main/java/org/apache/commons/imaging/formats/png/transparencyfilters/TransparencyFilterGrayscale.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/transparencyfilters/TransparencyFilterGrayscale.java
@@ -23,7 +23,7 @@ import java.io.IOException;
import org.apache.commons.imaging.ImagingException;
-public class TransparencyFilterGrayscale extends AbstractTransparencyFilter {
+public final class TransparencyFilterGrayscale extends AbstractTransparencyFilter {
private final int transparentColor;
public TransparencyFilterGrayscale(final byte[] bytes) throws IOException {
diff --git a/src/main/java/org/apache/commons/imaging/formats/png/transparencyfilters/TransparencyFilterTrueColor.java b/src/main/java/org/apache/commons/imaging/formats/png/transparencyfilters/TransparencyFilterTrueColor.java
index c839b5dc..e8f99a3a 100644
--- a/src/main/java/org/apache/commons/imaging/formats/png/transparencyfilters/TransparencyFilterTrueColor.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/transparencyfilters/TransparencyFilterTrueColor.java
@@ -23,7 +23,7 @@ import java.io.IOException;
import org.apache.commons.imaging.ImagingException;
-public class TransparencyFilterTrueColor extends AbstractTransparencyFilter {
+public final class TransparencyFilterTrueColor extends AbstractTransparencyFilter {
private final int transparentColor;
public TransparencyFilterTrueColor(final byte[] bytes) throws IOException {
diff --git a/src/main/java/org/apache/commons/imaging/formats/tiff/TiffRasterDataFloat.java b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffRasterDataFloat.java
index 8a1468e4..01a70b41 100644
--- a/src/main/java/org/apache/commons/imaging/formats/tiff/TiffRasterDataFloat.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffRasterDataFloat.java
@@ -36,7 +36,7 @@ import org.apache.commons.imaging.common.Allocator;
* index = y * width + x + iSample * width * height;
* </pre>
*/
-public class TiffRasterDataFloat extends TiffRasterData {
+public final class TiffRasterDataFloat extends TiffRasterData {
private final float[] data;
diff --git a/src/main/java/org/apache/commons/imaging/formats/tiff/TiffRasterDataInt.java b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffRasterDataInt.java
index 953a556d..ebe06936 100644
--- a/src/main/java/org/apache/commons/imaging/formats/tiff/TiffRasterDataInt.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffRasterDataInt.java
@@ -34,7 +34,7 @@ import org.apache.commons.imaging.common.Allocator;
* index = y * width + x + iSample * width * height;
* </pre>
*/
-public class TiffRasterDataInt extends TiffRasterData {
+public final class TiffRasterDataInt extends TiffRasterData {
private final int[] data;
diff --git a/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/PhotometricInterpreterPalette.java b/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/PhotometricInterpreterPalette.java
index a2e5baab..ddeb9eeb 100644
--- a/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/PhotometricInterpreterPalette.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/PhotometricInterpreterPalette.java
@@ -25,7 +25,7 @@ import org.apache.commons.imaging.common.AllocationRequestException;
import org.apache.commons.imaging.common.Allocator;
import org.apache.commons.imaging.common.ImageBuilder;
-public class PhotometricInterpreterPalette extends PhotometricInterpreter {
+public final class PhotometricInterpreterPalette extends PhotometricInterpreter {
/**
* The color map of integer ARGB values tied to the pixel index of the palette.
diff --git a/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/floatingpoint/PaletteEntryForRange.java b/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/floatingpoint/PaletteEntryForRange.java
index 9fe1b691..f671acc3 100644
--- a/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/floatingpoint/PaletteEntryForRange.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/floatingpoint/PaletteEntryForRange.java
@@ -25,7 +25,7 @@ import java.awt.Color;
* In keeping with the conventions of many Geographic Information Systems (GIS) and art applications, this instance "covered" values in the range v0 ≤ f <
* v1. Thus, a value that exactly matches the upper bound of the range is not considered "covered".
*/
-public class PaletteEntryForRange implements PaletteEntry {
+public final class PaletteEntryForRange implements PaletteEntry {
private final float v0;
private final float v1;
diff --git a/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/floatingpoint/PaletteEntryForValue.java b/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/floatingpoint/PaletteEntryForValue.java
index c6b04560..4e76078c 100644
--- a/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/floatingpoint/PaletteEntryForValue.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/floatingpoint/PaletteEntryForValue.java
@@ -22,7 +22,7 @@ import java.awt.Color;
* Provides a palette entry for a color assignment to a single value. This class will assign a color to a value only if it is an exact match for the input. This
* class will also support Float.NaN
*/
-public class PaletteEntryForValue implements PaletteEntry {
+public final class PaletteEntryForValue implements PaletteEntry {
private final float value;
private final int iColor;
diff --git a/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/floatingpoint/PhotometricInterpreterFloat.java b/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/floatingpoint/PhotometricInterpreterFloat.java
index 37193b65..d84df931 100644
--- a/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/floatingpoint/PhotometricInterpreterFloat.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/floatingpoint/PhotometricInterpreterFloat.java
@@ -45,7 +45,7 @@ import org.apache.commons.imaging.formats.tiff.photometricinterpreters.Photometr
* <p>
* To use this class, an application must access the TIFF file using the low-level, TIFF-specific API provided by the Apache Commons Imaging library.
*/
-public class PhotometricInterpreterFloat extends PhotometricInterpreter {
+public final class PhotometricInterpreterFloat extends PhotometricInterpreter {
ArrayList<PaletteEntry> rangePaletteEntries = new ArrayList<>();
ArrayList<PaletteEntry> singleValuePaletteEntries = new ArrayList<>();