[Mono-bugs] [Bug 652299] New: stream.Read crashes with Java.IO.IOException for big files

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Tue Nov 9 05:26:01 EST 2010


https://bugzilla.novell.com/show_bug.cgi?id=652299

https://bugzilla.novell.com/show_bug.cgi?id=652299#c0


           Summary: stream.Read crashes with Java.IO.IOException for big
                    files
    Classification: Mono
           Product: MonoDroid
           Version: SVN
          Platform: Other
        OS/Version: Windows 7
            Status: NEW
          Severity: Major
          Priority: P5 - None
         Component: Runtime
        AssignedTo: mkestner at novell.com
        ReportedBy: Benjamin at exDream.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---
           Blocker: ---


User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.6)
Gecko/20100625 Firefox/3.6.6

The following code works fine for files below 1MB, but we have some big
textures (e.g. 1024x1024) with 1-2MB and they (always reproducible) crash when
attempting to read the input stream:

InputStream stream = assetManager.Open(contentFile, Access.Streaming);
//TODO: this crashes with Java.IO.IOException for big files:
byte[] buffer = new byte[stream.Available()];
stream.Read(buffer);
stream.Close();

We also tried to read the files in smaller chunks, but that does not help
either, it still crashes when reading big files:

//TODO: does not help either!
byte[] buffer = new byte[stream.Available()];
// Read in only 4kb blocks!
int offset = 0;
const int ReadLength = 4*1024;
while (offset < buffer.Length)
{
    int read = buffer.Length - offset;
    if (read > ReadLength)
        read = ReadLength;
    stream.Read(buffer, offset, read);
}
stream.Close();

For now we just use smaller textures and compression, but sooner or later we
will want to load bigger files. We also run out of memory pretty quickly with
20MB of textures, but this is probably just a GC issue that you are working on
anyways.

Reproducible: Always

Steps to Reproduce:
Just load any big file with 1MB or above.
Actual Results:  
stream.Read will crash with Javas IOException. Tested with Android Motorola
Droid and a Tegra2 Android device. Also happens in the Emulator.

Expected Results:  
Allow to load bigger files of 1MB and above.

-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the mono-bugs mailing list