Кажется, изображение, которое вы пытаетесь изменить, не изменено.Попробуйте создать новое чистое буферизованное изображение с двойной шириной
На первой итерации здесь:
width = bufferedImage.getWidth();
rx = width*2 - 1;
...
bufferedImage.setRGB(rx, y, p);
rx выходит за пределы, попробуйте в конструкторе создать новое чистое изображение
BufferedImage newImage = new BufferedImage(2 * bufferedImage.getWidth(), bufferedImage.getHieght(), BufferedImage.TYPE_INT_ARGB);
и зеркало поверх этого, так что в вашем цикле
//read from the old one
int p = bufferedImage.getRGB(lx,y);
// and write in the new one
newImage.setRGB(lx, y, p);
newImage.setRGB(rx, y, p);