Contact Us 1-800-596-4880

DataWeave System Properties

DataWeave supports several system properties. To use these properties in application development and deployments, see System Properties.

Property Description

com.mulesoft.dw.buffered_char_sequence.enabled

Controls whether an internal BufferedCharSequence improvement is enabled or disabled. When this property is set to true, 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.

  • Type: Boolean

  • Default: true

com.mulesoft.dw.buffersize

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 dw-buffer-index-${count}.tmp and dw-buffer-output-${count}.tmp. See DataWeave Memory Management.

  • Type: Integer

  • Default: 8192

com.mulesoft.dw.charbuffersize

Determines the size (in bytes) of the buffer used by the writer.

  • Type: Number (in bytes)

  • Default: 4096

com.mulesoft.dw.coercionexception.verbose

By default, adds to coercion exceptions more information about data that fails to coerce. When this property is set to false, DataWeave does not display the additional metadata.

  • Type: Boolean

  • Default: true

com.mulesoft.dw.cpulimit.watchdog

Monitors and limits script execution time when set to true.

  • Type: Boolean

  • Default: true

com.mulesoft.dw.date_minus_back_compatibility

Restores the Add and Subtract Time behaviors that changed in 2.3.0 when this property is set to true.

For example, consider the following DataWeave script:

%dw 2.0
output application/dw
---
|2019-10-01| - |2018-09-23|
  • In DataWeave 2.3.0, the expression returns PT8952H.

  • In DataWeave 2.2.0, the expression returns P1Y8D.

  • Type: Boolean

  • Default: false

Available for language levels: 2.3, 2.4, 2.5

com.mulesoft.dw.decode_binaries_with_writer_encoding

When set to true, 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.

  • Type: Boolean

  • Default: false

com.mulesoft.dw.defaultOperator.disableExceptionHandling

When set to true, DataWeave disables the default operator that catches runtime exceptions. Enabling the default operator doesn’t return the default value when a runtime exception occurs. When set to false, the default operator catches the runtime exceptions and returns the default value.

  • Type: Boolean

  • Default: true

Available for language levels: 2.5, 2.6, 2.7, 2.8, 2.9

com.mulesoft.dw.directbuffer.disable

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 DataWeave Memory Management.

  • Type: Boolean

  • Default: false

com.mulesoft.dw.dump_files

Experimental: Dumps the input context and the failing script into a folder when this property is set to true. 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.

com.mulesoft.dw.dump_folder

Experimental: Specifies the path in which to dump files when com.mulesoft.dw.dump_files is set to true.

  • Type: String

  • Default: java.io.tempdir (system property value) com.mulesoft.dw.dump_folder is an experimental feature that is subject to change or removal from future versions of DataWeave. See Troubleshooting a Failing DataWeave Script.

com.mulesoft.dw.dumper_fill_stacktrace

Experimental: Adds the StackTrace for dumper exceptions when com.mulesoft.dw.dump_files is set to true.

  • Type: Boolean

  • Default: false com.mulesoft.dw.dumper_fill_stacktrace is an experimental feature that is subject to change or removal from future versions of DataWeave. See Troubleshooting a Failing DataWeave Script.

com.mulesoft.dw.error_value_length

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.

  • Type: Number

  • Default: 80

com.mulesoft.dw.indexsize

Sets the maximum size (in bytes) of the page in memory that indexed readers use.

  • Type: Number (in bytes)

  • Default: 1572864

com.mulesoft.dw.java.disable_set_accessible

When set to true, 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 true when the used JDK is 17 or later and the language version is 2.6 or later.

  • Type: Boolean

  • Default:

    • false for language levels: 2.5

    • true for language levels: 2.6, 2.7, 2.8, 2.9

Available for language levels: 2.5, 2.6, 2.7, 2.8, 2.9

com.mulesoft.dw.java.stacktrace

Specifies the depth of the Java stack trace.

  • Type: Number

  • Default: 6

com.mulesoft.dw.javaSqlDateToDate

When set, java.sql.Date maps to the DataWeave Date type. If false, it maps to DateTime.

  • Type: Boolean

  • Default:

    • false for language levels: 2.4

    • true for language levels: 2.5

Available for language levels: 2.4, 2.5

com.mulesoft.dw.max_memory_allocation

Sets the size (in bytes) of each slot in the off-heap memory pool. DataWeave stores payloads that exceed this size in temporary files dw-buffer-input-${count}.tmp and dw-buffer-output-${count}.tmp.

  • Type: Number (in bytes)

  • Default: 1572864

com.mulesoft.dw.memory_pool_size

Sets the number of slots in the memory pool. DataWeave buffers use off-heap memory from a pool, up to a defined size (com.mulesoft.dw.memory_pool_size * com.mulesoft.dw.max_memory_allocation). DataWeave allocates the remainder using heap memory. See DataWeave Memory Management.

  • Type: Number

  • Default: 60

com.mulesoft.dw.multipart.defaultContentType

Sets the default Content-Type to use on parts of the multipart/* format when a Content-Type is not specified. See also, the multipart reader property defaultContentType. Introduced in DataWeave 2.3 (2.3.0-20210720) for the August 2021 release of Mule 4.3.0-20210719.

  • Type: String

  • Default: application/octet-stream

com.mulesoft.dw.scheduler.size

Specifies the size of DataWeave scheduler thread pool.

  • Type: Number

  • Default: 100

com.mulesoft.dw.stacksize

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.

  • Type: Number

  • Default: 256

com.mulesoft.dw.stripTrailingZeroes

When set to false, 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. .DataWeave script:

%dw 2.4
output application/json
---
1.00
  • If com.mulesoft.dw.stripTrailingZeroes is set to false, the script returns the following output: 1.00

  • If com.mulesoft.dw.stripTrailingZeroes is set to true, the script returns the following output: 1

  • Type: Boolean

  • Default:

    • false for language levels:

    • true for language levels: 2.5, 2.6, 2.7, 2.8, 2.9

Available for language levels: 2.5, 2.6, 2.7, 2.8, 2.9

com.mulesoft.dw.telemetry.bufferSize

Determines the size in bytes of the telemetry event buffer.

  • Type: Number (in bytes)

  • Default: 1048576

com.mulesoft.dw.telemetry.enabled

Enables Dataweave telemetry service.

  • Type: Boolean

  • Default: false

com.mulesoft.dw.telemetry.memory

When set to true, the telemetry service collects memory usage statistics.

  • Type: Boolean

  • Default: false

com.mulesoft.dw.telemetry.sync

When set to true, telemetry events are published synchronously.

  • Type: Boolean

  • Default: false

com.mulesoft.dw.track.cursor.close

When set to true, 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.

  • Type: Boolean

  • Default: false

com.mulesoft.dw.valueSelector.selectsAlwaysFirst

When set to true, returns the first occurrence of an element (even if the element appears more than once). Enabling this behavior degrades performance.

The following example illustrates the behavior that is controlled by this property. (Assume that the DataWeave script acts on the XML input.)

XML input:
<root>
  <users>
     <user>
       <lname>chibana</lname>
       <name>Shoki</name>
     </user>
     <user>
       <name>Shoki</name>
       <name>Tomo</name>
     </user>
  </users>
</root>
DataWeave script:
%dw 2.0
output application/json
---
{
    shokis: payload.root.users.*user map $.name
}
  • If com.mulesoft.dw.valueSelector.selectsAlwaysFirst is set to true, the script returns the following output:

    {
      "shokis": [
        "Shoki",
        "Shoki"
      ]
    }
  • If com.mulesoft.dw.valueSelector.selectsAlwaysFirst is set to false, the script returns the following output:

    {
      "shokis": [
        "Shoki",
        "Tomo"
      ]
    }
  • Type: Boolean

  • Default: false

Available for language levels: 2.3, 2.4, 2.5

com.mulesoft.dw.workingdirectory.base

Specifies the base directory in which temporary files are written.

  • Type: String

  • Default: java.io.tmpdir (system property value)

com.mulesoft.dw.workingdirectory.delete_sync

File deletion occurs synchronously when this property is set to true.

  • Type: Boolean

  • Default: false

com.mulesoft.dw.workingdirectory.max_output_buffer_size

Specifies the maximum size of a file written in bytes.

  • Type: Number (in bytes)

  • Default: -1

com.mulesoft.dw.workingdirectory.tracking

Each script generates temporary files in their own directory when this property is set to true.

  • Type: Boolean

  • Default: false

com.mulesoft.dw.xml.supportDTD

Controls whether DTD handling is enabled or disabled. When this property is set to false, DataWeave skips processing of both internal and external subsets.

  • Type: Boolean

  • Default: false

com.mulesoft.dw.xml_reader.honourMixedContentStructure

When set to true, DataWeave retains a mixed-content structure instead of grouping text with mixed content into a single text field.

  • Type: Boolean

  • Default:

    • false for language levels: 2.4

    • true for language levels: 2.5

Available for language levels: 2.4, 2.5

com.mulesoft.dw.xml_writer.declareXmlNamespace

When set to false, DataWeave doesn’t declare the xml implicit namespace.

  • Type: Boolean

  • Default:

    • true for language levels: 2.4, 2.5

    • false for language levels: 2.6

Available for language levels: 2.4, 2.5, 2.6

mule.dw.java_module_loader_deterministic_functions_ordering

When set to true, 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.

  • Type: Boolean

  • Default: true

Available for language levels: 2.5, 2.6

mule.dw.remove_shadowed_implicit_inputs

If a variable with the same name is declared at the root level and this property is set to true, DataWeave removes implicit inputs.

  • Type: Boolean

  • Default: true