<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://jogamp.org/bugzilla/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.2"
          urlbase="https://jogamp.org/bugzilla/"
          
          maintainer="sgothel@jausoft.com"
>

    <bug>
          <bug_id>463</bug_id>
          
          <creation_ts>2011-01-24 23:52:39 +0100</creation_ts>
          <short_desc>GLUgl2.gluScaleImage() consumes all memory</short_desc>
          <delta_ts>2011-02-02 21:31:29 +0100</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>3</classification_id>
          <classification>JogAmp</classification>
          <product>Jogl</product>
          <component>opengl</component>
          <version>2</version>
          <rep_platform>All</rep_platform>
          <op_sys>all</op_sys>
          <bug_status>VERIFIED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>---</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wade Walker">wwalker3</reporter>
          <assigned_to name="Sven Gothel">sgothel</assigned_to>
          <cc>odimond</cc>
          
          <cf_type>---</cf_type>
          <cf_scm_refs></cf_scm_refs>
          <cf_workaround>---</cf_workaround>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>788</commentid>
    <comment_count>0</comment_count>
    <who name="Wade Walker">wwalker3</who>
    <bug_when>2011-01-24 23:52:39 +0100</bug_when>
    <thetext>A simple call to GLUgl2.gluScaleImage() can consume all memory. For example:

int widthin = 559;
int heightin = 425;
        
int widthout = 1024;
int heightout = 512;
        
int textureInLength = widthin * heightin * 4;
int textureOutLength = widthout * heightout * 4;
        
byte[] datain = new byte[textureInLength];
byte[] dataout = new byte[textureOutLength];
        
ByteBuffer bufferIn  = ByteBuffer.wrap(datain);
ByteBuffer bufferOut = ByteBuffer.wrap(dataout);      
GLUgl2 glu = new GLUgl2();
glu.gluScaleImage( GL.GL_RGBA,
                   widthin, heightin, GL.GL_UNSIGNED_BYTE, bufferIn,
                   widthout, heightout, GL.GL_UNSIGNED_BYTE, bufferOut );

This runs out of memory on an 8GB machine within seconds, then starts paging.

CentOS 5.4, x86_64, Java 1.6.0_21-b06, JOGL autobuild b266.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789</commentid>
    <comment_count>1</comment_count>
      <attachid>222</attachid>
    <who name="Wade Walker">wwalker3</who>
    <bug_when>2011-01-24 23:53:43 +0100</bug_when>
    <thetext>Created attachment 222
JOGL 2 unit test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790</commentid>
    <comment_count>2</comment_count>
      <attachid>223</attachid>
    <who name="Wade Walker">wwalker3</who>
    <bug_when>2011-01-24 23:54:24 +0100</bug_when>
    <thetext>Created attachment 223
JOGL 1 unit test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791</commentid>
    <comment_count>3</comment_count>
    <who name="Wade Walker">wwalker3</who>
    <bug_when>2011-01-24 23:58:37 +0100</bug_when>
    <thetext>Problem identified in Type_Widget. In JOGL 1, the constructor was:

public Type_Widget() {
    buffer = ByteBuffer.allocate( 4 );
}

In JOGL 2, it&apos;s this:

public Type_Widget() {
    buffer = ByteBuffer.allocateDirect( 4 );
}

When I change it back to how it was in JOGL 1, the unit test no longer eats all memory and crashes. Apparently creating these direct buffers inside the inner loops of Image.fill_image() and Image.empty_image() is more than the JVM can handle for some reason. With this fix, the unit test consumes hardly any memory; without the fix, it eats &gt; 6GB before hitting the page file.

I&apos;ll submit the JOGL2 unit test and fix as a pull request shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810</commentid>
    <comment_count>4</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2011-02-02 21:31:29 +0100</bug_when>
    <thetext>merged, passed in #280</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>222</attachid>
            <date>2011-01-24 23:53:43 +0100</date>
            <delta_ts>2011-01-24 23:53:43 +0100</delta_ts>
            <desc>JOGL 2 unit test</desc>
            <filename>GluScaleImage.java</filename>
            <type>text/plain</type>
            <size>2287</size>
            <attacher name="Wade Walker">wwalker3</attacher>
            
              <data encoding="base64">cGFja2FnZSBuYW1lLndhZGV3YWxrZXIuam9nbDJ0ZXN0czsKCmltcG9ydCBqYXZhLmF3dC5GcmFt
ZTsKaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0FkYXB0ZXI7CmltcG9ydCBqYXZhLmF3dC5l
dmVudC5XaW5kb3dFdmVudDsKaW1wb3J0IGphdmEubmlvLkJ5dGVCdWZmZXI7CgppbXBvcnQgamF2
YXgubWVkaWEub3BlbmdsLkdMOwppbXBvcnQgamF2YXgubWVkaWEub3BlbmdsLkdMQXV0b0RyYXdh
YmxlOwppbXBvcnQgamF2YXgubWVkaWEub3BlbmdsLkdMQ2FwYWJpbGl0aWVzOwppbXBvcnQgamF2
YXgubWVkaWEub3BlbmdsLkdMRXZlbnRMaXN0ZW5lcjsKaW1wb3J0IGphdmF4Lm1lZGlhLm9wZW5n
bC5HTFByb2ZpbGU7CmltcG9ydCBqYXZheC5tZWRpYS5vcGVuZ2wuYXd0LkdMQ2FudmFzOwppbXBv
cnQgamF2YXgubWVkaWEub3BlbmdsLmdsdS5nbDIuR0xVZ2wyOwoKaW1wb3J0IG9yZy5qdW5pdC5U
ZXN0OwoKcHVibGljIGNsYXNzIEdsdVNjYWxlSW1hZ2UgaW1wbGVtZW50cyBHTEV2ZW50TGlzdGVu
ZXIgewoKICAgIEBPdmVycmlkZQogICAgcHVibGljIHZvaWQgaW5pdChHTEF1dG9EcmF3YWJsZSBk
cmF3YWJsZSkgewogICAgfQoKICAgIEBPdmVycmlkZQogICAgcHVibGljIHZvaWQgZGlzcGxheShH
TEF1dG9EcmF3YWJsZSBkcmF3YWJsZSkgewogICAgICAgIGludCB3aWR0aGluID0gNTU5OwogICAg
ICAgIGludCBoZWlnaHRpbiA9IDQyNTsKICAgICAgICAKICAgICAgICBpbnQgd2lkdGhvdXQgPSAx
MDI0OwogICAgICAgIGludCBoZWlnaHRvdXQgPSA1MTI7CiAgICAgICAgCiAgICAgICAgaW50IHRl
eHR1cmVJbkxlbmd0aCA9IHdpZHRoaW4gKiBoZWlnaHRpbiAqIDQ7CiAgICAgICAgaW50IHRleHR1
cmVPdXRMZW5ndGggPSB3aWR0aG91dCAqIGhlaWdodG91dCAqIDQ7CiAgICAgICAgCiAgICAgICAg
Ynl0ZVtdIGRhdGFpbiA9IG5ldyBieXRlW3RleHR1cmVJbkxlbmd0aF07CiAgICAgICAgYnl0ZVtd
IGRhdGFvdXQgPSBuZXcgYnl0ZVt0ZXh0dXJlT3V0TGVuZ3RoXTsKICAgICAgICAKICAgICAgICBC
eXRlQnVmZmVyIGJ1ZmZlckluICA9IEJ5dGVCdWZmZXIud3JhcChkYXRhaW4pOwogICAgICAgIEJ5
dGVCdWZmZXIgYnVmZmVyT3V0ID0gQnl0ZUJ1ZmZlci53cmFwKGRhdGFvdXQpOyAgICAgIAogICAg
ICAgIEdMVWdsMiBnbHUgPSBuZXcgR0xVZ2wyKCk7CiAgICAgICAgZ2x1LmdsdVNjYWxlSW1hZ2Uo
IEdMLkdMX1JHQkEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoaW4sIGhlaWdodGlu
LCBHTC5HTF9VTlNJR05FRF9CWVRFLCBidWZmZXJJbiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgd2lkdGhvdXQsIGhlaWdodG91dCwgR0wuR0xfVU5TSUdORURfQllURSwgYnVmZmVyT3V0ICk7
CiAgICB9CgogICAgQE92ZXJyaWRlCiAgICBwdWJsaWMgdm9pZCByZXNoYXBlKEdMQXV0b0RyYXdh
YmxlIGRyYXdhYmxlLCBpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCkgewogICAg
fQoKCiAgICBAT3ZlcnJpZGUKICAgIHB1YmxpYyB2b2lkIGRpc3Bvc2UoR0xBdXRvRHJhd2FibGUg
ZHJhd2FibGUpIHsKICAgIH0KCiAgICBAVGVzdAogICAgcHVibGljIHZvaWQgdGVzdDAxKCkgewog
ICAgICAgIEZyYW1lIGZyYW1lID0gbmV3IEZyYW1lKCJUZXN0Iik7CiAgICAgICAgR0xQcm9maWxl
IGdscHJvZmlsZSA9IEdMUHJvZmlsZS5nZXREZWZhdWx0KCk7CiAgICAgICAgR0xDYXBhYmlsaXRp
ZXMgZ2xDYXBhYmlsaXRpZXMgPSBuZXcgR0xDYXBhYmlsaXRpZXMoZ2xwcm9maWxlKTsKICAgICAg
ICBmaW5hbCBHTENhbnZhcyBjYW52YXMgPSBuZXcgR0xDYW52YXMoZ2xDYXBhYmlsaXRpZXMpOwog
ICAgICAgIGZyYW1lLnNldFNpemUoMjU2LCAyNTYpOwogICAgICAgIGZyYW1lLmFkZChjYW52YXMp
OwogICAgICAgIGZyYW1lLnNldFZpc2libGUoIHRydWUgKTsKICAgICAgICBjYW52YXMuYWRkR0xF
dmVudExpc3RlbmVyKCB0aGlzICk7CgogICAgICAgIGZyYW1lLmFkZFdpbmRvd0xpc3RlbmVyKG5l
dyBXaW5kb3dBZGFwdGVyKCkgewogICAgICAgICAgICBwdWJsaWMgdm9pZCB3aW5kb3dDbG9zaW5n
KCBXaW5kb3dFdmVudCBlICkgewogICAgICAgICAgICAgICAgU3lzdGVtLmV4aXQoMCk7CiAgICAg
ICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICBjYW52YXMuZGlzcGxheSgpOwogICB9CgogICAg
cHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3NbXSkgewogICAgICAgIG9yZy5qdW5p
dC5ydW5uZXIuSlVuaXRDb3JlLm1haW4oR2x1U2NhbGVJbWFnZS5jbGFzcy5nZXROYW1lKCkpOwog
ICAgfQp9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>223</attachid>
            <date>2011-01-24 23:54:24 +0100</date>
            <delta_ts>2011-01-24 23:54:24 +0100</delta_ts>
            <desc>JOGL 1 unit test</desc>
            <filename>GluScaleImage.java</filename>
            <type>text/plain</type>
            <size>2220</size>
            <attacher name="Wade Walker">wwalker3</attacher>
            
              <data encoding="base64">cGFja2FnZSBuYW1lLndhZGV3YWxrZXIuam9nbDF0ZXN0czsKCmltcG9ydCBqYXZhLmF3dC5GcmFt
ZTsKaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0FkYXB0ZXI7CmltcG9ydCBqYXZhLmF3dC5l
dmVudC5XaW5kb3dFdmVudDsKaW1wb3J0IGphdmEubmlvLkJ5dGVCdWZmZXI7CgppbXBvcnQgamF2
YXgubWVkaWEub3BlbmdsLkdMOwppbXBvcnQgamF2YXgubWVkaWEub3BlbmdsLkdMQXV0b0RyYXdh
YmxlOwppbXBvcnQgamF2YXgubWVkaWEub3BlbmdsLkdMQ2FudmFzOwppbXBvcnQgamF2YXgubWVk
aWEub3BlbmdsLkdMQ2FwYWJpbGl0aWVzOwppbXBvcnQgamF2YXgubWVkaWEub3BlbmdsLkdMRXZl
bnRMaXN0ZW5lcjsKaW1wb3J0IGphdmF4Lm1lZGlhLm9wZW5nbC5nbHUuR0xVOwoKaW1wb3J0IG9y
Zy5qdW5pdC5UZXN0OwoKcHVibGljIGNsYXNzIEdsdVNjYWxlSW1hZ2UgaW1wbGVtZW50cyBHTEV2
ZW50TGlzdGVuZXIgewoKICAgIEBPdmVycmlkZQogICAgcHVibGljIHZvaWQgaW5pdChHTEF1dG9E
cmF3YWJsZSBkcmF3YWJsZSkgewogICAgfQoKICAgIEBPdmVycmlkZQogICAgcHVibGljIHZvaWQg
ZGlzcGxheShHTEF1dG9EcmF3YWJsZSBkcmF3YWJsZSkgewogICAgICAgIGludCB3aWR0aGluID0g
NTU5OwogICAgICAgIGludCBoZWlnaHRpbiA9IDQyNTsKICAgICAgICAKICAgICAgICBpbnQgd2lk
dGhvdXQgPSAxMDI0OwogICAgICAgIGludCBoZWlnaHRvdXQgPSA1MTI7CiAgICAgICAgCiAgICAg
ICAgaW50IHRleHR1cmVJbkxlbmd0aCA9IHdpZHRoaW4gKiBoZWlnaHRpbiAqIDQ7CiAgICAgICAg
aW50IHRleHR1cmVPdXRMZW5ndGggPSB3aWR0aG91dCAqIGhlaWdodG91dCAqIDQ7CiAgICAgICAg
CiAgICAgICAgYnl0ZVtdIGRhdGFpbiA9IG5ldyBieXRlW3RleHR1cmVJbkxlbmd0aF07CiAgICAg
ICAgYnl0ZVtdIGRhdGFvdXQgPSBuZXcgYnl0ZVt0ZXh0dXJlT3V0TGVuZ3RoXTsKICAgICAgICAK
ICAgICAgICBCeXRlQnVmZmVyIGJ1ZmZlckluICA9IEJ5dGVCdWZmZXIud3JhcChkYXRhaW4pOwog
ICAgICAgIEJ5dGVCdWZmZXIgYnVmZmVyT3V0ID0gQnl0ZUJ1ZmZlci53cmFwKGRhdGFvdXQpOyAg
ICAgIAogICAgICAgIEdMVSBnbHUgPSBuZXcgR0xVKCk7CiAgICAgICAgZ2x1LmdsdVNjYWxlSW1h
Z2UoIEdMLkdMX1JHQkEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoaW4sIGhlaWdo
dGluLCBHTC5HTF9VTlNJR05FRF9CWVRFLCBidWZmZXJJbiwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgd2lkdGhvdXQsIGhlaWdodG91dCwgR0wuR0xfVU5TSUdORURfQllURSwgYnVmZmVyT3V0
ICk7CiAgICB9CgogICAgQE92ZXJyaWRlCiAgICBwdWJsaWMgdm9pZCByZXNoYXBlKEdMQXV0b0Ry
YXdhYmxlIGRyYXdhYmxlLCBpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCkgewog
ICAgfQoKICAgIEBPdmVycmlkZQogICAgcHVibGljIHZvaWQgZGlzcGxheUNoYW5nZWQoR0xBdXRv
RHJhd2FibGUgZHJhd2FibGUsIGJvb2xlYW4gbW9kZUNoYW5nZWQsIGJvb2xlYW4gZGV2aWNlQ2hh
bmdlZCkgewogICAgfQoKICAgIEBUZXN0CiAgICBwdWJsaWMgdm9pZCB0ZXN0MDEoKSB7CiAgICAg
ICAgRnJhbWUgZnJhbWUgPSBuZXcgRnJhbWUoIlRlc3QiKTsKICAgICAgICBHTENhcGFiaWxpdGll
cyBnbENhcGFiaWxpdGllcyA9IG5ldyBHTENhcGFiaWxpdGllcygpOwogICAgICAgIGZpbmFsIEdM
Q2FudmFzIGNhbnZhcyA9IG5ldyBHTENhbnZhcyhnbENhcGFiaWxpdGllcyk7CiAgICAgICAgZnJh
bWUuc2V0U2l6ZSgyNTYsIDI1Nik7CiAgICAgICAgZnJhbWUuYWRkKGNhbnZhcyk7CiAgICAgICAg
ZnJhbWUuc2V0VmlzaWJsZSggdHJ1ZSApOwogICAgICAgIGNhbnZhcy5hZGRHTEV2ZW50TGlzdGVu
ZXIoIHRoaXMgKTsKCiAgICAgICAgZnJhbWUuYWRkV2luZG93TGlzdGVuZXIobmV3IFdpbmRvd0Fk
YXB0ZXIoKSB7CiAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoIFdpbmRvd0V2
ZW50IGUgKSB7CiAgICAgICAgICAgICAgICBTeXN0ZW0uZXhpdCgwKTsKICAgICAgICAgICAgfQog
ICAgICAgIH0pOwogICAgICAgIGNhbnZhcy5kaXNwbGF5KCk7CiAgIH0KCiAgICBwdWJsaWMgc3Rh
dGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB7CiAgICAgICAgb3JnLmp1bml0LnJ1bm5lci5K
VW5pdENvcmUubWFpbihHbHVTY2FsZUltYWdlLmNsYXNzLmdldE5hbWUoKSk7CiAgICB9Cn0K
</data>

          </attachment>
      

    </bug>

</bugzilla>