RescaleOp.filter crash

Oi pessoal.
Estou desenvolvendo um programa que trabalha com edicao de imagens. Tenho um metodo que edita o brilho da imagem: [code]
public void brighten()
{
float a = 1.5f;
float b = -20.0f;
RescaleOp op = new RescaleOp(a,b,null);
filter(op);

}


private void filter(BufferedImageOp op)//Metodo que faz o filtro e joga a imagem no panel
{
	JScrollPane sp=(JScrollPane)images.getSelectedComponent();

	if(sp!=null){
		ImagePanel ip=(ImagePanel)sp.getViewport().getView();
		sp=new JScrollPane();
		BufferedImage filteredImage
		= new BufferedImage(imagem.getWidth(), imagem.getHeight(), imagem.getType());
		op.filter(imagem, filteredImage);
		imagem = filteredImage;
		Graphics2D g2d = filteredImage.createGraphics();     
		g2d.drawImage(filteredImage, 0, 0, null);
		g2d.dispose(); 

		ip.setImage(filteredImage);
	}
}

[/code]
Quando esse método é executado, o programa fecha e ocorre um erro que fica em um log:

#An unexpected error has been detected by Java Runtime Environment:

EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6d0ad5ad, pid=4152, tid=3760

Java VM: Java HotSpot™ Client VM (1.6.0_03-b05 mixed mode, sharing)

Problematic frame:

C [awt.dll+0xad5ad]

An error report file with more information is saved as hs_err_pid4152.log

If you would like to submit a bug report, please visit:

http://java.sun.com/webapps/bugreport/crash.jsp

Alguem poderia me ajudar??

Assim, isso é um bug da própria JVM, não tem muito o que fazer quanto a isso não além de você reportar o bug no link que eles passaram ou atualizar pra uma versão mais recente da JVM.

Outra coisa a se fazer é utilizar outra biblioteca pra mexer com imagens, o o ImageMagick -> http://www.yeo.id.au/jmagick/

Ok,vou tentar instalar esse programinha ai…
Obrigada

Só não entendi pq deu esse erro agora, pois antes de aplicar no meu programa principal, testei o código do brilho e funcionou. Também, os metodos do blur e sharpen funcionam normais, só o brilho q gera o erro.
Para os codigos do sharpen e do blur tem um metodo convolve:

private void convolve(float[] elements) { Kernel kernel = new Kernel(3,3,elements); ConvolveOp op = new ConvolveOp(kernel); filter(op); }

Código do blur:

[code] public void blur()
{
float weight = 1.0f/9.0f;
float[] elements = new float[9];
for (int i = 0; i<9; i++)
elements[i] = weight;
convolve(elements);

}[/code]

Código do sharpen:

public void sharpen() { float[] elements= {0.0f,-1.0f,0.0f, -1.0f, 5.f, -1.0f, 0.0f,-1.0f,0.0f }; convolve(elements); }

E todos passam pelo metodo filter ja citado acima.
Tem uma explicação isso?