Menu

#21 ID3Frame.parse out of memory

Bug
closed-fixed
None
5
2001-11-25
2001-01-24
Mike Comb
No

Jempeg runs out of memory while parsing some MP3s for ID3 tags. Probably a bad MP3, but emplode seems to deal with it OK. Send me an email if you want a mp3 sample.

-Mike

ID3Tag.parseFrames: Parsing frame at 84...
ID3FrameHeader.parse: id = TMED
ID3Frame.parse: Parsed field: [ID3Field: id = [mschrag.id3lib.ID3FieldID: value = 1]; type = [mschrag.id3lib.ID3FieldType: value = 0]; value = 0]
ID3Frame.parse: Parsed field: [ID3Field: id = [mschrag.id3lib.ID3FieldID: value = 2]; type = [mschrag.id3lib.ID3FieldType: value = 2]; value = UNKNOWN]
ID3Tag.parseFrames: Parsing frame at 102...
ID3FrameHeader.parse: id = APIC
Exception occurred during event dispatching:
java.lang.OutOfMemoryError:
at mschrag.id3lib.ID3Frame.parse(ID3Frame.java:364)
at mschrag.id3lib.ID3Tag.parseFrames(ID3Tag.java:783)
at mschrag.id3lib.ID3Tag.parse(ID3Tag.java:916)
at mschrag.id3lib.ID3Tag.parseID3v2(ID3Tag.java:840)
at mschrag.id3lib.ID3Tag.parseFile(ID3Tag.java:937)
at mschrag.id3lib.ID3Tag.link(ID3Tag.java:547)
at mschrag.id3lib.ID3Tag.link(ID3Tag.java:552)
at mschrag.empeg.core.FileMagic.extractTags(FileMagic.java:182)
at mschrag.empeg.core.FileMagic.identifyMP3(FileMagic.java:173)
at mschrag.empeg.core.FileMagic.identify(FileMagic.java:119)
at mschrag.empeg.core.FileMagic.<init>(FileMagic.java:43)
at mschrag.empeg.emptool.PlayerDatabase.identify(PlayerDatabase.java:92) at mschrag.empeg.emplode.Emplode.uploadFiles(Emplode.java:328)
at mschrag.empeg.emplode.action.NewTuneAction.actionPerformed(NewTuneAction.java:75)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1066)
at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1101)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:378)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:250)
at javax.swing.AbstractButton.doClick(AbstractButton.java:226)
at javax.swing.plaf.basic.BasicMenuItemUI$MouseInputHandler.mouseReleased(BasicMenuItemUI.java:754)
at java.awt.Component.processMouseEvent(Component.java:3162)
at java.awt.Component.processEvent(Component.java:3001)
at java.awt.Container.processEvent(Container.java:1011)
at java.awt.Component.dispatchEventImpl(Component.java:2396)
at java.awt.Container.dispatchEventImpl(Container.java:1056)
at java.awt.Component.dispatchEvent(Component.java:2309)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:2064)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:1848) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:1751)
at java.awt.Container.dispatchEventImpl(Container.java:1043)
at java.awt.Window.dispatchEventImpl(Window.java:749)
at java.awt.Component.dispatchEvent(Component.java:2309)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:287)
at java.awt.EventDispatchThread.pumpOneEvent(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:92)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:83)

Discussion

  • Daniel M. Zimmerman

    • milestone: 100100 --> Bug
    • status: open --> open-later
     
  • Daniel M. Zimmerman

    I've fixed it so that we don't get the OutOfMemoryError any more (the problem was reading the wrong bytes of the tag to determine how big a compressed frame was and then, in this case, trying to allocate a 1.2 GB byte array based on this value to hold the uncompressed data). However, we still can't parse the tag properly. On the bright side, there are some commercial apps which can't parse it properly either.

    Thus, I've resolved this one with "Later", since the important part for now is taken care of - you can now add the track to the Empeg, but not get its information automatically filled in.

     
  • Mike Schrag

    Mike Schrag - 2001-01-26

    Is this "fixed" now?

     
  • Mike Schrag

    Mike Schrag - 2001-01-26
    • assigned_to: nobody --> dmzimmerman
     
  • Mike Comb

    Mike Comb - 2001-02-21

    This still seems to be causing problems. I now get an error dialog with no error text when it tries to upload one of these files. After the sync the file ends up in Unattached Items.

     
  • Mike Comb

    Mike Comb - 2001-11-05

    Logged In: YES
    user_id=67724

    This should be fixed as part of the patch I gave Mike Schrag today. It was a problem parsing ID3v2 GEOB frames. Since the empeg does not care about these frames the patch just catches and drops the exception.

     
  • Daniel M. Zimmerman

    • status: open-later --> closed-later
     
  • Daniel M. Zimmerman

    Logged In: YES
    user_id=71113

    Completely replaced the ID3 tag parsing framework, solving this problem in the process.

     
  • Daniel M. Zimmerman

    • status: closed-later --> closed-fixed
     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.