Axiom
  1. Axiom
  2. AXIOM-403

Avoid buffering the root part of an XOP/MTOM message unless necessary

    Details

    • Type: Improvement Improvement
    • Status: Resolved
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 1.2.12
    • Fix Version/s: 1.2.13
    • Component/s: API
    • Labels:
      None

      Description

      Currently, the root part of an XOP/MTOM message is always buffered in memory. However, in many cases, the entire root part is processed before any of the attachment parts are accessed. Therefore the root part should only be buffered if necessary, i.e. when an attachment part is accessed before the entire root part has been consumed. One way to achieve this is to use a DetachableInputStream. Note that DetachableInputStream always buffers the content in memory (and never on disk), but this is already the case for the root part (see the code in PartContentFactory).

        Activity

        Andreas Veithen created issue -
        Andreas Veithen made changes -
        Field Original Value New Value
        Fix Version/s 1.2.13 [ 12316677 ]
        Description Currently, the root part of an XOP/MTOM message is always buffered in memory. However, in many cases, the entire root part is processed before any of the attachment parts are accessed. Therefore the root part should only be buffered if necessary, i.e. when an attachment part is accessed before the entire root part has been consumed. One way to achieve this is to use a DetachableInputStream. Note that DetachableInputStream always buffers the content in memory (and never on disk), but this already the case for the root part (see the code in PartContentFactory). Currently, the root part of an XOP/MTOM message is always buffered in memory. However, in many cases, the entire root part is processed before any of the attachment parts are accessed. Therefore the root part should only be buffered if necessary, i.e. when an attachment part is accessed before the entire root part has been consumed. One way to achieve this is to use a DetachableInputStream. Note that DetachableInputStream always buffers the content in memory (and never on disk), but this is already the case for the root part (see the code in PartContentFactory).
        Andreas Veithen made changes -
        Assignee Andreas Veithen [ veithen ]
        Affects Version/s 1.2.12 [ 12316132 ]
        Andreas Veithen made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]

          People

          • Assignee:
            Andreas Veithen
            Reporter:
            Andreas Veithen
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development