incubator-jena-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Simon Helsen (Commented) (JIRA)" <>
Subject [jira] [Commented] (JENA-91) extremely large buffer is being created in ObjectFileStorage
Date Thu, 06 Oct 2011 13:36:29 GMT


Simon Helsen commented on JENA-91:

Andy, I think the problem is how you communicate fixes. It would help if you add comments
to the issues explaining what you did. At some point, Paolo created JENA-128. Then he closed
it as a duplicate of JENA-91. Then at some point, you close this one saying the problems have
been resolved, but without any explanation. It was not clear to me why you closed this defect.

I will pick up the latest build as soon as I have the time and verify if the problem have
disappeared. I will create a new defect if new and/or other problems occur.

As I have mentioned numerous times before, we don't use mapped mode (ever) because of the
windows problem. In fact, I am not sure why you at all support mapped mode given that it does
not work, but that is a different discussion
> extremely large buffer is being created in ObjectFileStorage
> ------------------------------------------------------------
>                 Key: JENA-91
>                 URL:
>             Project: Jena
>          Issue Type: Bug
>          Components: TDB
>            Reporter: Simon Helsen
>            Assignee: Andy Seaborne
>            Priority: Critical
>         Attachments: JENA-91_NodeTableTrans_r1159121.patch, TestTransSystem.patch, TestTransSystem2.patch,
TestTransSystem3.patch, TestTransSystem4.patch
> I tried to debug the OME and check why a bytebuffer is causing my native memory to explode
in almost no time. It all seems to happen in this bit of code in com.hp.hpl.jena.tdb.base.objectfile.ObjectFileStorage
(lines 243 onwards)
>   // No - it's in the underlying file storage.
>         lengthBuffer.clear() ;
>         int x =, loc) ;
>         if ( x != 4 )
>             throw new FileException(""+loc+")["+filesize+"]["+file.size()+"]:
Failed to read the length : got "+x+" bytes") ;
>         int len = lengthBuffer.getInt(0) ;
>         ByteBuffer bb = ByteBuffer.allocate(len) ;
> My debugger shows that x==4. It also shows the lengthBuffer has the following content:
[111, 110, 61, 95]. This amounts to the value of len=1869495647, which is rather a lot :-)
Obviously, the next statement (ByteBuffer.allocate) causes the OME.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


View raw message