diff --git a/java/java3d/files/patch-freebsd b/java/java3d/files/patch-freebsd
deleted file mode 100644
index 7e5635a72e8e..000000000000
--- a/java/java3d/files/patch-freebsd
+++ /dev/null
@@ -1,176 +0,0 @@
-diff -ruN ../java3d-1.5.2/j3d-core/build.xml ./j3d-core/build.xml
---- ../java3d-1.5.2/j3d-core/build.xml 2008-05-24 08:31:19.000000000 +1200
-+++ ./j3d-core/build.xml 2009-07-12 13:20:26.000000000 +1200
-@@ -142,6 +142,16 @@
-
-
-
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-
-
-
-@@ -232,7 +242,7 @@
-
-
-
-+ depends="init, setupBuildType, setupFreeBSD, setupSolaris, setupSolarisX86, setupLinux, setupLinuxAmd64, setupLinuxIA64, setupLinuxPPC, setupWindows, setupWindowsAmd64, setupMacOSX, setupJogl">
-
-
-
-diff -ruN ../java3d-1.5.2/j3d-core/src/classes/build.xml ./j3d-core/src/classes/build.xml
---- ../java3d-1.5.2/j3d-core/src/classes/build.xml 2008-02-29 09:17:18.000000000 +1300
-+++ ./j3d-core/src/classes/build.xml 2009-07-12 13:19:17.000000000 +1200
-@@ -95,6 +95,7 @@
-
-diff -ruN ../java3d-1.5.2/j3d-core/src/native/build.xml ./j3d-core/src/native/build.xml
---- ../java3d-1.5.2/j3d-core/src/native/build.xml 2008-02-29 09:17:58.000000000 +1300
-+++ ./j3d-core/src/native/build.xml 2009-07-12 13:19:17.000000000 +1200
-@@ -3,6 +3,19 @@
-
-
-
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-
-
-
-@@ -62,7 +75,7 @@
-
-
-
--
-+
-
-
-@@ -128,7 +141,7 @@
-
-
-
--
-+
-
-
-@@ -347,6 +360,7 @@
-
-
-
-+
-
-
-
-diff -ruN ../java3d-1.5.2/j3d-core/src/native/ogl/build-freebsd.xml ./j3d-core/src/native/ogl/build-freebsd.xml
---- ../java3d-1.5.2/j3d-core/src/native/ogl/build-freebsd.xml 1970-01-01 12:00:00.000000000 +1200
-+++ ./j3d-core/src/native/ogl/build-freebsd.xml 2009-07-12 13:21:41.000000000 +1200
-@@ -0,0 +1,74 @@
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
diff --git a/java/java3d/files/patch-ImageComponentState.java b/java/java3d/files/patch-j3d-core-utils_src_classes_share_com_sun_j3d_utils_scenegraph_io_state_javax_media_j3d_ImageComponentState.java
similarity index 84%
rename from java/java3d/files/patch-ImageComponentState.java
rename to java/java3d/files/patch-j3d-core-utils_src_classes_share_com_sun_j3d_utils_scenegraph_io_state_javax_media_j3d_ImageComponentState.java
index 6eacc3fa0a09..9a230c2f8413 100644
--- a/java/java3d/files/patch-ImageComponentState.java
+++ b/java/java3d/files/patch-j3d-core-utils_src_classes_share_com_sun_j3d_utils_scenegraph_io_state_javax_media_j3d_ImageComponentState.java
@@ -1,50 +1,49 @@
-work/java3d-1.5.2/j3d-core-utils/src/classes/share/com/sun/j3d/utils/scenegraph/io/state/javax/media/j3d
---- j3d-core-utils/src/classes/share/com/sun/j3d/utils/scenegraph/io/state/javax/media/j3d/ImageComponentState.java.orig
+--- j3d-core-utils/src/classes/share/com/sun/j3d/utils/scenegraph/io/state/javax/media/j3d/ImageComponentState.java.orig 2007-02-09 17:20:35 UTC
+++ j3d-core-utils/src/classes/share/com/sun/j3d/utils/scenegraph/io/state/javax/media/j3d/ImageComponentState.java
-@@ -61,10 +61,7 @@ import com.sun.j3d.utils.scenegraph.io.r
+@@ -61,10 +61,7 @@ import java.awt.image.DataBuffer;
import com.sun.j3d.utils.scenegraph.io.retained.SGIORuntimeException;
import java.awt.color.ColorSpace;
import java.awt.image.DataBuffer;
-import com.sun.image.codec.jpeg.JPEGImageEncoder;
-import com.sun.image.codec.jpeg.JPEGImageDecoder;
-import com.sun.image.codec.jpeg.JPEGCodec;
-import com.sun.image.codec.jpeg.JPEGEncodeParam;
+import javax.imageio.ImageIO;
public abstract class ImageComponentState extends NodeComponentState {
-@@ -203,10 +200,9 @@ public abstract class ImageComponentStat
+@@ -203,10 +200,9 @@ public abstract class ImageComponentState extends Node
private void writeBufferedImageJpegCompression( DataOutput out, BufferedImage image ) throws IOException {
ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
- JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder( byteStream );
-
- encoder.encode( image );
- byteStream.close();
+ if (!ImageIO.write(image, "jpeg", byteStream)) {
+ throw new AssertionError("No JPEG encoder available");
+ }
byte[] buffer = byteStream.toByteArray();
out.writeInt( buffer.length );
-@@ -261,11 +257,15 @@ public abstract class ImageComponentStat
+@@ -261,11 +257,15 @@ public abstract class ImageComponentState extends Node
byte[] buffer = new byte[ size ];
in.readFully( buffer );
ByteArrayInputStream byteStream = new ByteArrayInputStream( buffer );
-
- JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder( byteStream );
- byteStream.close();
-
- return decoder.decodeAsBufferedImage();
+ try {
+ BufferedImage img = ImageIO.read(byteStream);
+ if (img == null) {
+ throw new AssertionError("No ImageReader available.");
+ }
+ return img;
+ } finally {
+ byteStream.close();
+ }
}
private void writeColorModel( DataOutput out, ColorModel colorModel ) throws IOException {
diff --git a/java/java3d/files/patch-j3d-core_build.xml b/java/java3d/files/patch-j3d-core_build.xml
new file mode 100644
index 000000000000..27cf7573bdb2
--- /dev/null
+++ b/java/java3d/files/patch-j3d-core_build.xml
@@ -0,0 +1,28 @@
+--- j3d-core/build.xml.orig 2008-05-23 20:31:19 UTC
++++ j3d-core/build.xml
+@@ -142,6 +142,16 @@
+
+
+
++
++
++
++
++
++
++
++
++
++
+
+
+
+@@ -232,7 +242,7 @@
+
+
+
++ depends="init, setupBuildType, setupFreeBSD, setupSolaris, setupSolarisX86, setupLinux, setupLinuxAmd64, setupLinuxIA64, setupLinuxPPC, setupWindows, setupWindowsAmd64, setupMacOSX, setupJogl">
+
+
+
diff --git a/java/java3d/files/patch-j3d-core_src_classes_build.xml b/java/java3d/files/patch-j3d-core_src_classes_build.xml
new file mode 100644
index 000000000000..7bfc8635f7e5
--- /dev/null
+++ b/java/java3d/files/patch-j3d-core_src_classes_build.xml
@@ -0,0 +1,19 @@
+--- j3d-core/src/classes/build.xml.orig 2008-02-28 20:17:18 UTC
++++ j3d-core/src/classes/build.xml
+@@ -95,6 +95,7 @@
+
diff --git a/java/java3d/files/patch-j3d-core_src_native_build.xml b/java/java3d/files/patch-j3d-core_src_native_build.xml
new file mode 100644
index 000000000000..905364d04866
--- /dev/null
+++ b/java/java3d/files/patch-j3d-core_src_native_build.xml
@@ -0,0 +1,48 @@
+--- j3d-core/src/native/build.xml.orig 2008-02-28 20:17:58 UTC
++++ j3d-core/src/native/build.xml
+@@ -3,6 +3,19 @@
+
+
+
++
++
++
++
++
++
++
++
++
++
++
++
++
+
+
+
+@@ -62,7 +75,7 @@
+
+
+
+-
++
+
+
+@@ -128,7 +141,7 @@
+
+
+
+-
++
+
+
+@@ -347,6 +360,7 @@
+
+
+
++
+
+
+
diff --git a/java/java3d/files/patch-j3d-core_src_native_ogl_build-freebsd.xml b/java/java3d/files/patch-j3d-core_src_native_ogl_build-freebsd.xml
new file mode 100644
index 000000000000..738dbc9f237d
--- /dev/null
+++ b/java/java3d/files/patch-j3d-core_src_native_ogl_build-freebsd.xml
@@ -0,0 +1,77 @@
+--- j3d-core/src/native/ogl/build-freebsd.xml.orig 2026-04-09 07:04:07 UTC
++++ j3d-core/src/native/ogl/build-freebsd.xml
+@@ -0,0 +1,74 @@
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++