File: 06_java-compat.patch

package info (click to toggle)
java3d 1.5.2%2Bdfsg-16
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 19,376 kB
  • sloc: java: 183,632; cpp: 23,561; ansic: 21,361; xml: 1,964; sh: 40; makefile: 18
file content (65 lines) | stat: -rw-r--r-- 2,795 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Description: FTBFS with java7
 * Replace use of com.sun.image.codec.jpeg.* with ImageIO.
 * Extend class-path for javah
Author: Niels Thykier <niels@thykier.net>
Reviewed-by: James Page <james.page@ubuntu.com>

--- java3d-1.5.2+dfsg.orig/j3d-core-utils/src/classes/share/com/sun/j3d/utils/scenegraph/io/state/javax/media/j3d/ImageComponentState.java
+++ java3d-1.5.2+dfsg/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
 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
     
     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
         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 {
--- java3d-1.5.2+dfsg.orig/j3d-core/src/native/build.xml
+++ java3d-1.5.2+dfsg/j3d-core/src/native/build.xml
@@ -361,6 +361,7 @@
     <javah destdir="${javahCoreTarget}" force="yes">
 	<classpath>
 	    <pathelement path="${build}/${platform}/${bldType}/classes"/>
+	    <pathelement path="/usr/share/java/vecmath.jar" />
 	</classpath>
 	
 	<class name="javax.media.j3d.Background"/>