title: Exception in thread "Thread" java.lang.OutOfMemoryError: Requested array size exceeds VM limit
body: <p>The only thing difference is there is two different crop location.
  The question is why i get this error??</p>
  
  <p><b>Method call</b></p>
  
  <pre><code>CropRealOriginalImage1 orderName = new CropRealOriginalImage1();
          FourAreaCropAgain1 orderNameFirst=new FourAreaCropAgain1();
          orderNameFirst.orderNameFirst();
          Decode decode= new Decode();
          decode.inputImage("C:/TEMP/Image/Embed Image/Four Area/OrderFirst.png");
          if(decode.s.equals("")){
              System.out.println("OderFirst=null");
          }else{
              //put b into txt file
              System.out.println("decode.s" +decode.s);
          }
  </code></pre>
  
  <p><b> Work: </b></p>
  
  <pre><code>  public void orderNameFirst(){
         ImageIcon icon = new ImageIcon("C:/TEMP/Image/Embed Image/Really Original.png");
      image = icon.getImage();
      image = createImage(new FilteredImageSource(image.getSource(),
          new CropImageFilter(icon.getIconWidth()-290, 0, 10, 33)));
              //new CropImageFilter(icon.getIconWidth()/2, icon.getIconHeight()/2, icon.getIconWidth()/2, icon.getIconHeight()/2)));
  
      BufferedImage bufferedImage = new BufferedImage(icon.getIconWidth(),
              icon.getIconHeight(), BufferedImage.TYPE_INT_RGB);
      Graphics graphics = bufferedImage.getGraphics();
      graphics.drawImage(icon.getImage(), 0, 0, null);
  
      Graphics2D g = bufferedImage.createGraphics();
      g.setColor(Color.WHITE);
      g.fillRect(icon.getIconWidth()-290, 0, 10, 33);
  
   }
  </code></pre>
  
  <p><b>Not Work</b></p>
  
  <pre><code>   public void orderNameFirst(){
          ImageIcon icon = new ImageIcon("C:/TEMP/Image/Embed Image/Really Original.png");
      image = icon.getImage();
      image = createImage(new FilteredImageSource(image.getSource(),
          new CropImageFilter(3*icon.getIconWidth()/8, 0, icon.getIconWidth()/8, icon.getIconHeight()/2)));
              //new CropImageFilter(icon.getIconWidth()/2, icon.getIconHeight()/2, icon.getIconWidth()/2, icon.getIconHeight()/2)));
  
      BufferedImage bufferedImage = new BufferedImage(icon.getIconWidth(),
              icon.getIconHeight(), BufferedImage.TYPE_INT_RGB);
      Graphics graphics = bufferedImage.getGraphics();
      graphics.drawImage(icon.getImage(), 0, 0, null);
  
      Graphics2D g = bufferedImage.createGraphics();
      g.setColor(Color.WHITE);
      g.fillRect(3*icon.getIconWidth()/8, 0, icon.getIconWidth()/8, icon.getIconHeight()/2);
     }
  </code></pre>
  
  <p><b> Error: </b> Decode integerLength: 2147483647
  Exception in thread "Thread" java.lang.OutOfMemoryError: Requested array size exceeds VM limit</p>