import java.awt.color.ColorSpace;
import java.awt.color.ICC_ColorSpace;
import java.awt.color.ICC_Profile;
import java.awt.image.BufferedImage;
import java.awt.image.ColorConvertOp;

public class App {
    public static void main(String[] args) {
        //System.out.println("testColorConvertOpLeak, pid=" + ProcessHandle.current().pid());

        ICC_Profile srcProfile = ICC_Profile.getInstance(ColorSpace.CS_sRGB);
        ICC_Profile destProfile = ICC_Profile.getInstance(ColorSpace.CS_PYCC);

        ColorSpace srcColorSpace = new ICC_ColorSpace(srcProfile);
        ColorSpace destColorSpace = new ICC_ColorSpace(destProfile);

        BufferedImage srcImage = new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB);
        srcImage.getGraphics().setColor(java.awt.Color.RED);
        srcImage.getGraphics().fillRect(0, 0, 100, 100);

        long x = 0;
        while(true){
            if (x % 100000 == 0) {
                System.out.println("count=" + x);
            }
            x+=1;
            ColorConvertOp colorConvertOp = new ColorConvertOp(srcColorSpace, destColorSpace, null);
            colorConvertOp.filter(srcImage, null);
        }
    }
}