---
schema_version: "1"
id: 5fcfd52e6da3ebfa8b371b917938ce88f36c0628e01ea84c73034ae88253aced
title: DataWeave System Properties
collection: mulesoft
version: current
locale: en-us
portal_url: https://docs.salesforce.com/mulesoft/current/en-us/dataweave/2.4/dataweave-system-properties.md
canonical_url: https://docs.mulesoft.com/dataweave/2.4/dataweave-system-properties
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 2a614ea5c7b88655ab45cc837229cd183752d27a0365a0eb4325d2886a0722e0
description: MuleSoft Documentation Site
release: "2.4"
latest: false
---
---
product: DataWeave
version: 2.4
---

# DataWeave System Properties

> For the full documentation index, see: https://docs.mulesoft.com/llms.txt

DataWeave supports several system properties. To use these properties in application development and
deployments, see [System Properties](https://docs.mulesoft.com/mule-runtime/latest/mule-app-properties-system).

<table><colgroup><col> <col></colgroup><thead><tr><th>Property</th><th>Description</th></tr></thead><tbody><tr><td><p><code>com.mulesoft.dw.buffered_char_sequence.enabled</code></p></td><td><div><div><p>Controls whether an internal <code>BufferedCharSequence</code> improvement is enabled or disabled. When this property is set to <code>true</code>, DataWeave avoids loading large fields (greater than 1.5M) into memory. These fields are read in chunks. This feature reduces performance to prevent an out-of-memory error.</p></div><div><ul><li><p>Type: <code>Boolean</code></p></li><li><p>Default: <code>true</code></p></li></ul></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.buffersize</code></p></td><td><div><div><p>Sets the size (in bytes) of in-memory input and output buffers that DataWeave uses to retain processed inputs and outputs. DataWeave stores payloads that exceed this size in temporary files <code>dw-buffer-index-${count}.tmp</code> and <code>dw-buffer-output-${count}.tmp</code>. See <a href="https://docs.mulesoft.com/dataweave/2.4/dataweave-memory-management">DataWeave Memory Management</a>.</p></div><div><ul><li><p>Type: <code>Number</code> (in bytes)</p></li><li><p>Default: <code>8192</code> bytes (8 KB)</p></li></ul></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.coercionexception.verbose</code></p></td><td><div><div><p>By default, adds to coercion exceptions more information about data that fails to coerce. When this property is set to <code>false</code>, DataWeave does not display the additional metadata.</p></div><div><ul><li><p>Type: <code>Boolean</code></p></li><li><p>Default: <code>true</code></p></li></ul></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.date_minus_back_compatibility</code></p></td><td><div><div><p>Restores the <a href="https://docs.mulesoft.com/dataweave/2.4/dataweave-cookbook-add-and-subtract-time">Add and Subtract Time</a> behaviors that changed in 2.3.0 when this property is set to <code>true</code>.</p></div><div><ul><li><p>Type: <code>Boolean</code></p></li><li><p>Default: <code>false</code></p></li></ul></div><div><p>For example, consider the following DataWeave script:</p></div><div><div><pre><code data-lang="dataweave">%dw 2.0
output application/dw
---
|2019-10-01| - |2018-09-23|</code></pre></div></div><div><ul><li><p>In DataWeave 2.3.0, the expression returns <code>PT8952H</code>.</p></li><li><p>In DataWeave 2.2.0, the expression returns <code>P1Y8D</code>.</p></li></ul></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.directbuffer.disable</code></p></td><td><div><div><p>Controls whether DataWeave uses off-heap memory (the default) or heap memory. DataWeave uses off-heap memory for internal buffering, which can cause issues on systems that have only a small amount of memory. See <a href="https://docs.mulesoft.com/dataweave/2.4/dataweave-memory-management">DataWeave Memory Management</a>.</p></div><div><ul><li><p>Type: <code>Boolean</code></p></li><li><p>Default: <code>false</code></p></li></ul></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.dump_files</code></p></td><td><div><div><p><em>Experimental:</em> Dumps the input context and the failing script into a folder when this property is set to <code>true</code>. This behavior enables you to track the failing script and the data that makes the script fail, which is particularly useful for verifying that the received input data is valid. Incorrect scripts often fail when an upstream component generates invalid data.</p></div><div><ul><li><p>Type: <code>Boolean</code></p></li><li><p>Default: <code>false</code></p></li></ul></div><div><p><code>com.mulesoft.dw.dump_files</code> is an <em>experimental feature</em> that is subject to change or removal from future versions of DataWeave. See <a href="https://docs.mulesoft.com/dataweave/2.4/dataweave-troubleshoot">Troubleshooting a Failing DataWeave Script</a>.</p></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.dump_folder</code></p></td><td><div><div><p><em>Experimental:</em> Specifies the path in which to dump files when <code>com.mulesoft.dw.dump_files</code> is set to <code>true</code>.</p></div><div><ul><li><p>Type: <code>String</code></p></li><li><p>Default: <code>java.io.tmpdir</code> (system property value)</p></li></ul></div><div><p><code>com.mulesoft.dw.dump_folder</code> is an <em>experimental feature</em> that is subject to change or removal from future versions of DataWeave. See <a href="https://docs.mulesoft.com/dataweave/2.4/dataweave-troubleshoot">Troubleshooting a Failing DataWeave Script</a>.</p></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.dumper_fill_stacktrace</code></p></td><td><div><div><p><em>Experimental:</em> Adds the StackTrace for dumper exceptions when <code>com.mulesoft.dw.dump_files</code> is set to <code>true</code>.</p></div><div><ul><li><p>Type: <code>Boolean</code></p></li><li><p>Default: <code>false</code></p></li></ul></div><div><p><code>com.mulesoft.dw.dumper_fill_stacktrace</code> is an <em>experimental feature</em> that is subject to change or removal from future versions of DataWeave.</p></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.error_value_length</code></p></td><td><div><div><p>Sets the maximum length of exception messages to display to the user. The message is truncated to the maximum length. This setting is useful for avoiding long exception messages.</p></div><div><ul><li><p>Type: <code>Number</code></p></li><li><p>Default: <code>80</code></p></li></ul></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.indexsize</code></p></td><td><div><div><p>Sets the maximum size (in bytes) of the page in memory that indexed readers use.</p></div><div><ul><li><p>Type: <code>Number</code></p></li><li><p>Default: <code>1572864</code> (1.5 MB)</p></li></ul></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.max_memory_allocation</code></p></td><td><div><div><p>Sets the size (in bytes) of each slot in the off-heap memory pool.</p></div><div><ul><li><p>Type: <code>Number</code> (in bytes)</p></li><li><p>Default: <code>1572864</code> (1.5 MB)</p></li></ul></div><div><p>See <a href="https://docs.mulesoft.com/dataweave/2.4/dataweave-memory-management">DataWeave Memory Management</a>.</p></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.memory_pool_size</code></p></td><td><div><div><p>Sets the number of slots in the memory pool. DataWeave buffers use off-heap memory from a pool, up to a defined size (<code>com.mulesoft.dw.memory_pool_size</code> * <code>com.mulesoft.dw.max_memory_allocation</code>). DataWeave allocates the remainder using heap memory. See <a href="https://docs.mulesoft.com/dataweave/2.4/dataweave-memory-management">DataWeave Memory Management</a>.</p></div><div><ul><li><p>Type: <code>Number</code></p></li><li><p>Default: <code>60</code></p></li></ul></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.multipart.defaultContentType</code></p></td><td><div><div><p>Sets the default Content-Type to use on parts of the <code>multipart/*</code> format when a <code>Content-Type</code> is not specified. See also, the multipart reader property <a href="https://docs.mulesoft.com/dataweave/2.4/dataweave-formats-multipart#properties">defaultContentType</a>. <em>Introduced in DataWeave 2.3 (2.3.0-20210720) for the August 2021 release of Mule 4.3.0-20210719.</em></p></div><div><ul><li><p>Type: <code>String</code></p></li><li><p>Default: <code>application/octet-stream</code></p></li></ul></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.valueSelector.selectsAlwaysFirst</code></p></td><td><div><div><p>When set to set to <code>true</code>, returns the first occurrence of an element (even if the element appears more than once). Enabling this behavior degrades performance.</p></div><div><ul><li><p>Type: <code>Boolean</code></p></li><li><p>Default: <code>false</code></p></li></ul></div><div><p>The following example illustrates the behavior that is controlled by this property. (Assume that the DataWeave script acts on the XML input.)</p></div><div><div>XML input:</div><div><pre><code data-lang="xml">&lt;root&gt;
  &lt;users&gt;
     &lt;user&gt;
       &lt;lname&gt;chibana&lt;/lname&gt;
       &lt;name&gt;Shoki&lt;/name&gt;
     &lt;/user&gt;
     &lt;user&gt;
       &lt;name&gt;Shoki&lt;/name&gt;
       &lt;name&gt;Tomo&lt;/name&gt;
     &lt;/user&gt;
  &lt;/users&gt;
&lt;/root&gt;</code></pre></div></div><div><div>DataWeave script:</div><div><pre><code data-lang="xml">%dw 2.0
output application/json
---
{
    shokis: payload.root.users.*user map $.name
}</code></pre></div></div><div><ul><li><p>If <code>com.mulesoft.dw.valueSelector.selectsAlwaysFirst</code> is set to <code>true</code>, the script returns the following output:</p><div><div><pre><code data-lang="json">{
  "shokis": [
    "Shoki",
    "Shoki"
  ]
}</code></pre></div></div></li><li><p>If <code>com.mulesoft.dw.valueSelector.selectsAlwaysFirst</code> is set to <code>false</code>, the script returns the following output:</p><div><div><pre><code data-lang="json">{
  "shokis": [
    "Shoki",
    "Tomo"
  ]
}</code></pre></div></div></li></ul></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.stacksize</code></p></td><td><div><div><p>Sets the maximum size of the stack. When a function recurses too deeply, DataWeave throws an error, such as <code>Stack Overflow. Max stack is 256.</code></p></div><div><ul><li><p>Type: <code>Number</code></p></li><li><p>Default: <code>256</code></p></li></ul></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.xml.supportDTD</code></p></td><td><div><div><p>Controls whether DTD handling is enabled or disabled. When this property is set to <code>false</code>, DataWeaves skips processing of both internal and external subsets. Note that the default for this property changed from <code>true</code> to <code>false</code> in Mule version 4.3.0-20210427, which includes the May, 2021 patch of DataWeave version 2.3.0.</p></div><div><ul><li><p>Type: <code>Boolean</code></p></li><li><p>Default: <code>false</code></p></li></ul></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.track.cursor.close</code></p></td><td><div><div><p>When set to <code>true</code>, tracks the stack trace from which the <code>CursorProvider#close()</code> method is called. Use this property for troubleshooting, for example, if <code>CursorProvider#openCursor()</code> is called on a cursor that is already closed.</p></div><div><ul><li><p>Type: <code>Boolean</code></p></li><li><p>Default: <code>false</code></p></li></ul></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.xml_reader.honourMixedContentStructure</code></p></td><td><div><div><p>When this property is set to <code>true</code>, DataWeave retains a mixed-content structure instead of grouping text with mixed content into a single text field.</p></div><div><ul><li><p>Type: <code>Boolean</code></p></li><li><p>Default: <code>false</code></p></li></ul></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.charbuffersize</code></p></td><td><div><div><p>Determines the size (in bytes) of the buffer used by the writer.</p></div><div><ul><li><p>Type: <code>Number</code></p></li><li><p>Default: <code>4096</code></p></li></ul></div></div></td></tr><tr><td><p><code>mule.weave.script.parser.cache.size</code></p></td><td><div><div><p>Determines the maximum size of compiled scripts that are being cached.</p></div><div><ul><li><p>Type: <code>Number</code></p></li><li><p>Default: <code>10000</code></p></li></ul></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.xml_reader.honourXmlDeclarationEncoding</code></p></td><td><div><div><p>When this property is set to <code>true</code>, DataWeave uses the encoding declared in the XML if present.</p></div><div><ul><li><p>Type: <code>Boolean</code></p></li><li><p>Default:</p><div><ul><li><p><code>false</code> for language levels: 2.4, 2.5</p></li><li><p><code>true</code> for language levels: 2.6, 2.7, 2.8, 2.9 Available for language levels: 2.4, 2.5, 2.6, 2.7, 2.8, 2.9</p></li></ul></div></li></ul></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.csv_writer.alwaysEscapeQuotesInCSV</code></p></td><td><div><div><p>When set to <code>true</code>, DataWeave escapes quotes in CSV.</p></div><div><ul><li><p>Type: <code>Boolean</code></p></li><li><p>Default:</p><div><ul><li><p><code>false</code> for language levels: 2.4</p></li><li><p><code>true</code> for language levels: 2.5 Available for language levels: 2.4, 2.5</p></li></ul></div></li></ul></div></div></td></tr></tbody></table>
