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

# 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).

Whether a property in this reference applies depends on the DataWeave language level configured for
the application, not only on the Mule runtime version where the application runs. For how language
level is determined in Mule applications (including its relationship to `minMuleVersion`), see
[Versioning Behavior in DataWeave](https://docs.mulesoft.com/dataweave/2.11/dataweave-versioning-behavior).

If a property is listed as available only for specific language levels, it applies only when the
application uses one of those levels. In newer DataWeave versions, some of these properties remain
supported only for backward compatibility when the application targets a compatible earlier language
level, even if it runson a newer Mule runtime.

<table><colgroup><col> <col></colgroup><thead><tr><th>Property</th><th>Description</th></tr></thead><tbody><tr><td><p><code>com.mulesoft.dw.base64ChunksEnabled</code></p></td><td><div><div><p>When set to <code>true</code>, <code>dw::core::Binaries::fromBase64</code> and <code>dw::core::Binaries::toBase64</code> functions don’t load the entire function argument (<code>String</code> or <code>Binary</code>) into memory. DataWeave loads the function argument (<code>String</code> or <code>Binary</code>) by chunk. This feature prevents an out-of-memory error.</p></div><div><ul><li><p>Type: <code>Boolean</code></p></li><li><p>Default:</p><div><ul><li><p><code>true</code> for language level: 2.11</p></li></ul></div></li></ul></div><div><p>Available for language level: 2.11</p></div></div></td></tr><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 does not load large fields (greater than 1.5M) into memory. DataWeave reads these fields by chunk. 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.11/dataweave-memory-management">DataWeave Memory Management</a>.</p></div><div><ul><li><p>Type: <code>Number</code></p></li><li><p>Default: <code>8192</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> (in bytes)</p></li><li><p>Default: <code>4096</code></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.cpulimit.watchdog</code></p></td><td><div><div><p>Monitors and limits script execution time when set to <code>true</code>.</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.csv_reader.indexed.retainStringValueInMemory</code></p></td><td><div><div><p>When set to <code>false</code>, this property prevents DataWeave indexed readers for CSV from keeping string value references in memory. While this can reduce performance, it helps prevent out-of-memory errors.</p></div><div><ul><li><p>Type: <code>Boolean</code></p></li><li><p>Default:</p><div><ul><li><p><code>true</code> for language levels: 2.6, 2.7, 2.8, 2.9</p></li><li><p><code>false</code> for language levels: 2.10, 2.11</p></li></ul></div></li></ul></div><div><p>Available for language levels: 2.6, 2.7, 2.8, 2.9, 2.10, 2.11</p></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</p></li></ul></div></li></ul></div><div><p>Available for language levels: 2.4, 2.5</p></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.11/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><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><li><p>Type: <code>Boolean</code></p></li><li><p>Default:</p><div><ul><li><p><code>false</code> for language levels: 2.3, 2.4, 2.5</p></li></ul></div></li></ul></div><div><p>Available for language levels: 2.3, 2.4, 2.5</p></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.decode_binaries_with_writer_encoding</code></p></td><td><div><div><p>When set to <code>true</code>, binary values in JSON are written using JsonWriter encoding. Otherwise, the property uses either the encoding defined in the value schema or the default one.</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.defaultOperator.disableExceptionHandling</code></p></td><td><div><div><p>When set to <code>true</code>, DataWeave disables the <code>default</code> operator that catches runtime exceptions. Enabling the <code>default</code> operator doesn’t return the <code>default value</code> when a runtime exception occurs. When set to <code>false</code>, the <code>default</code> operator catches the runtime exceptions and returns the <code>default value</code>.</p></div><div><ul><li><p>Type: <code>Boolean</code></p></li><li><p>Default:</p><div><ul><li><p><code>true</code> for language levels: 2.5, 2.6, 2.7, 2.8, 2.9</p></li></ul></div></li></ul></div><div><p>Available for language levels: 2.5, 2.6, 2.7, 2.8, 2.9</p></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.11/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.11/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.tempdir (system property value)</code></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.11/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. See <a href="https://docs.mulesoft.com/dataweave/2.11/dataweave-troubleshoot">Troubleshooting a Failing DataWeave Script</a>.</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></p></li></ul></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.java.disable_set_accessible</code></p></td><td><div><div><p>When set to <code>true</code>, the JavaModuleLoader doesn’t change the accessible flag for fields or methods used via reflection. The default value evaluates the current JDK version used and the language level. The value is <code>true</code> when the used JDK is 17 or later and the language version is 2.6 or later.</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.5</p></li><li><p><code>true</code> for language levels: 2.6, 2.7, 2.8, 2.9</p></li></ul></div></li></ul></div><div><p>Available for language levels: 2.5, 2.6, 2.7, 2.8, 2.9</p></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.java.enabled_class_definition_lookup</code></p></td><td><div><div><p>When set to <code>true</code>, the JavaModuleLoader honors the public interface definition of the given bean instance to access properties via reflection. The default value evaluates the current JDK version used and the language level. The value is <code>true</code> when the used JDK is 17+ and the language version is greater than 2.10. If set to <code>false</code>, the JavaModuleLoader uses the specific bean’s class definition to access properties via reflection, which could end in accessibility issues.</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.5, 2.6, 2.7, 2.8, 2.9</p></li><li><p><code>true</code> for language levels: 2.10, 2.11</p></li></ul></div></li></ul></div><div><p>Available for language levels: 2.5, 2.6, 2.7, 2.8, 2.9, 2.10, 2.11</p></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.java.honour_bean_definition_accessor</code></p></td><td><div><div><p>When set to <code>true</code>, the JavaModuleLoader honors the bean definition by using the getter and setter methods to access properties via reflection at object value selectors. If set to <code>false</code>, the JavaModuleLoader uses the getter and setter methods to access existing properties or the property uses the field accessor as default.</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.8</p></li><li><p><code>true</code> for language levels: 2.9, 2.10, 2.11</p></li></ul></div></li></ul></div><div><p>Available for language levels: 2.8, 2.9, 2.10, 2.11</p></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.java.output_types_as_string</code></p></td><td><div><div><p>When set to <code>true</code>, DataWeave scripts with Java output <code>mimetype</code> return the string representation of that type. If set to <code>false</code>, the scripts return a Java class constructed from the corresponding DataWeave type class.</p></div><div><ul><li><p>Type: <code>Boolean</code></p></li><li><p>Default:</p><div><ul><li><p><code>true</code> for language levels: 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 2.10, 2.11</p></li></ul></div></li></ul></div><div><p>Available for language levels: 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 2.10, 2.11</p></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.java.stacktrace</code></p></td><td><div><div><p>Specifies the depth of the Java stack trace.</p></div><div><ul><li><p>Type: <code>Number</code></p></li><li><p>Default: <code>6</code></p></li></ul></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.javaSqlDateToDate</code></p></td><td><div><div><p>When set, <code>java.sql.Date</code> maps to the DataWeave <code>Date</code> type. If <code>false</code>, it maps to <code>DateTime</code>.</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</p></li></ul></div></li></ul></div><div><p>Available for language levels: 2.4, 2.5</p></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.legacySizeOfNumber</code></p></td><td><div><div><p>When set to <code>true</code>, DataWeave returns <code>1</code> when calling <code>sizeOf()</code> function for any <code>Number</code> value.</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.6, 2.7, 2.8, 2.9, 2.10</p></li></ul></div></li></ul></div><div><p>Available for language levels: 2.6, 2.7, 2.8, 2.9, 2.10</p></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. DataWeave stores payloads that exceed this size in temporary files <code>dw-buffer-input-${count}.tmp</code> and <code>dw-buffer-output-${count}.tmp</code>.</p></div><div><ul><li><p>Type: <code>Number</code></p></li><li><p>Default: <code>1572864</code></p></li></ul></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.11/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.messageLogging.debounceDuration</code></p></td><td><div><div><p>Sets the number of milliseconds to wait before logging the same message again when using <code>MessageLoggingService.logXXXXDebounce</code> methods.</p></div><div><ul><li><p>Type: <code>Long</code></p></li><li><p>Default: <code>3000</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.11/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.scheduler.size</code></p></td><td><div><div><p>Specifies the size of DataWeave scheduler thread pool.</p></div><div><ul><li><p>Type: <code>Number</code></p></li><li><p>Default: <code>100</code></p></li></ul></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.stableOrderBy</code></p></td><td><div><div><p>When set to <code>true</code>, DataWeave throws <code>InvalidComparisonException</code> if the <code>orderBy</code> function attempts to compare values of different types. If set to <code>false</code>, coercions are used when comparing values of different types, which can cause the resulting order to be different from the expected one as in:</p></div><div><div>DataWeave script:</div><div><pre><code data-lang="xml">%dw 2.4
output application/json
---
[5, 1, "10"] orderBy $</code></pre></div></div><div><ul><li><p>If <code>com.mulesoft.dw.stableOrderBy</code> is set to <code>false</code>, the script returns the following output: <code>[1, "10", 5]</code></p></li><li><p>If <code>com.mulesoft.dw.stableOrderBy</code> is set to <code>true</code>, the script throws <code>InvalidComparisonException</code>.</p></li><li><p>Type: <code>Boolean</code></p></li><li><p>Default:</p><div><ul><li><p><code>false</code> for language levels: 2.9</p></li><li><p><code>true</code> for language levels: 2.10, 2.11</p></li></ul></div></li></ul></div><div><p>Available for language levels: 2.9, 2.10, 2.11</p></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 Stack Overflow. The maximum size limit is 256.</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.stripTrailingZeroes</code></p></td><td><div><div><p>When set to <code>false</code>, DataWeave restores the behavior of preserving trailing zeroes for some formats (such as DataWeave, JSON, and YAML) present in 2.4.0. Starting with 2.5.0, trailing zeroes are removed by default.</p></div><div><div>DataWeave script:</div><div><pre><code data-lang="xml">%dw 2.4
output application/json
---
1.00</code></pre></div></div><div><ul><li><p>If <code>com.mulesoft.dw.stripTrailingZeroes</code> is set to <code>false</code>, the script returns the following output: <code>1.00</code></p></li><li><p>If <code>com.mulesoft.dw.stripTrailingZeroes</code> is set to <code>true</code>, the script returns the following output: <code>1</code></p></li><li><p>Type: <code>Boolean</code></p></li><li><p>Default:</p><div><ul><li><p><code>true</code> for language levels: 2.5, 2.6, 2.7, 2.8, 2.9</p></li></ul></div></li></ul></div><div><p>Available for language levels: 2.5, 2.6, 2.7, 2.8, 2.9</p></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.surrogateCharCodeSupport</code></p></td><td><div><div><p>When set to <code>true</code>, the <code>fromCharCode</code> function supports surrogate characters and throws an exception if the code point isn’t a valid Unicode character.</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.6, 2.7, 2.8, 2.9</p></li><li><p><code>true</code> for language levels: 2.10</p></li></ul></div></li></ul></div><div><p>Available for language levels: 2.6, 2.7, 2.8, 2.9, 2.10</p></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.telemetry.bufferSize</code></p></td><td><div><div><p>Determines the size in bytes of the telemetry event buffer.</p></div><div><ul><li><p>Type: <code>Number</code></p></li><li><p>Default: <code>1048576</code></p></li></ul></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.telemetry.enabled</code></p></td><td><div><div><p>Enables DataWeave telemetry service.</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.telemetry.memory</code></p></td><td><div><div><p>When set to <code>true</code>, the telemetry service collects memory usage statistics.</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.telemetry.sync</code></p></td><td><div><div><p>When set to <code>true</code>, telemetry events are published synchronously.</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 {CursorProvider#close()} method is called. Use this property for troubleshooting, for example, if {CursorProvider#openCursor()} 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.valueSelector.selectsAlwaysFirst</code></p></td><td><div><div><p>When 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><p>This 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><li><p>Type: <code>Boolean</code></p></li><li><p>Default:</p><div><ul><li><p><code>false</code> for language levels: 2.3, 2.4, 2.5</p></li></ul></div></li></ul></div><div><p>Available for language levels: 2.3, 2.4, 2.5</p></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.workingdirectory.base</code></p></td><td><div><div><p>Specifies the base directory in which temporary files are written.</p></div><div><ul><li><p>Type: <code>String</code></p></li><li><p>Default: <code>java.io.tmpdir (system property value)</code></p></li></ul></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.workingdirectory.delete_sync</code></p></td><td><div><div><p>File deletion occurs synchronously 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></td></tr><tr><td><p><code>com.mulesoft.dw.workingdirectory.max_output_buffer_size</code></p></td><td><div><div><p>Specifies the maximum size of a file written in bytes.</p></div><div><ul><li><p>Type: <code>Long</code></p></li><li><p>Default: <code>-1</code></p></li></ul></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.workingdirectory.tracking</code></p></td><td><div><div><p>Each script generates temporary files in their own directory 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></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>, DataWeave skips processing of both internal and external subsets.</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.allowIndexedLatin1</code></p></td><td><div><div><p>When set to <code>true</code>, DataWeave lets you use the indexed reader for Latin1(ISO-8859-1) encoding. Use this for backward compatibility only, as Latin1 isn’t fully supported.</p></div><div><ul><li><p>Type: <code>Boolean</code></p></li><li><p>Default:</p><div><ul><li><p><code>true</code> for language levels: 2.6, 2.7, 2.8, 2.9</p></li><li><p><code>false</code> for language levels: 2.10, 2.11</p></li></ul></div></li></ul></div><div><p>Available for language levels: 2.6, 2.7, 2.8, 2.9, 2.10, 2.11</p></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:</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</p></li></ul></div></li></ul></div><div><p>Available for language levels: 2.4, 2.5</p></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, 2.10, 2.11</p></li></ul></div></li></ul></div><div><p>Available for language levels: 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 2.10, 2.11</p></div></div></td></tr><tr><td><p><code>com.mulesoft.dw.xml_writer.declareXmlNamespace</code></p></td><td><div><div><p>When this property is set to <code>false</code>, DataWeave doesn’t declare the <code>xml</code> implicit namespace.</p></div><div><ul><li><p>Type: <code>Boolean</code></p></li><li><p>Default:</p><div><ul><li><p><code>true</code> for language levels: 2.4, 2.5</p></li><li><p><code>false</code> for language levels: 2.6</p></li></ul></div></li></ul></div><div><p>Available for language levels: 2.4, 2.5, 2.6</p></div></div></td></tr><tr><td><p><code>mule.dw.enable_vars_materialization_pass</code></p></td><td><div><div><p>Enables a pass of the DataWeave compiler that extracts usages of values in Mule <code>vars</code> special variable into variable declarations. This forces materialization of values inside <code>vars</code>, and is useful for fixing issues where repeated reads of <code>vars</code> yield a <code>null</code> value.</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.6, 2.7, 2.8, 2.9, 2.10</p></li><li><p><code>true</code> for language levels: 2.11</p></li></ul></div></li></ul></div><div><p>Available for language levels: 2.6, 2.7, 2.8, 2.9, 2.10, 2.11</p></div></div></td></tr><tr><td><p><code>mule.dw.java_module_loader_deterministic_functions_ordering</code></p></td><td><div><div><p>When set to <code>true</code>, the JavaModuleLoader loads the methods for Java Classes in deterministic order. DataWeave considers the method name, the parameters count, and finally, the parameter type name.</p></div><div><ul><li><p>Type: <code>Boolean</code></p></li><li><p>Default:</p><div><ul><li><p><code>true</code> for language levels: 2.5, 2.6</p></li></ul></div></li></ul></div><div><p>Available for language levels: 2.5, 2.6</p></div></div></td></tr><tr><td><p><code>mule.dw.remove_shadowed_implicit_inputs</code></p></td><td><div><div><p>If a variable with the same name is declared at the root level and this property is set to <code>true</code>, DataWeave removes implicit inputs.</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></tbody></table>
