Hi all
I'm on a program of reading incoming image set through socket.
This works perfect for some time.
But after some time it gives an error
java.lang.OutOfMemoryError: Java heap space
at java.awt.image.BufferedImage.getRGB(Unknown Source)
at com.sun.kvem.midp.GraphicsBridge.loadImage(Unknown Source)
at com.sun.kvem.midp.GraphicsBridge.createImageFromData(Unknown Source)
at sun.reflect.GeneratedMethodAccessor14.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.sun.kvem.sublime.MethodExecution.process(Unknown Source)
at com.sun.kvem.sublime.SublimeExecutor.processRequest(Unknown Source)
at com.sun.kvem.sublime.SublimeExecutor.run(Unknown Source)
This is my client code
public class ChangeImage extends Thread
{
private SocketConnection sock = null;
private Image img = null;
private CanvasKey canvas = null;
private InputStream in = null;
public ChangeImage(SocketConnection sock, Canvas canvas) throws IOException
{
this.sock = sock;
this.canvas = (CanvasKey) canvas;
in = sock.openInputStream();
}
public void run()
{
super.run();
short length;
while (true)
{
DataInputStream din = null;
try
{
din = new DataInputStream(in);
length = din.readShort(); // to determine next data packet size
byte[] arr = new byte[length]; // next data packet store here
din.readFully(arr); //read image
img = Image.createImage(arr, 0, arr.length);
canvas.setImage(img);
ChangeImage.sleep(50);
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}
}
Can u please tell me y?