Qorus Integration Engine®  4.0.3.p2_git
Qorus 3.1 Series

Table of Contents

back to Release Notes

Qorus 3.1.1.p9

Release Overview

This is a bugfix release; for details, see the issues addressed below.

Bug Fixes in Qorus

Issue ID Severity Description
3313 Critical fixed a bug where Table objects with out of date datasource pools could be placed in the table cache causing difficult to debug data corruption

Bug Fixes in Qore

Issue ID Description
3571 fixed a critical error in thread resource handling where user thread resource handlers were not run in all cases which could lead to inconsistent behavior and data corruption

Qorus 3.1.1.p9

Release Overview

This is a bugfix release; for details, see the issues addressed below.

Bug Fixes in Qorus

Issue ID Severity Description
3033 Major binding a subworkflow with sensitive data results in the sensitive data being lost
3032 Major sensitive data is temporarily lost resulting in errors processing workflow orders when sensitive data is provided with a new workflow order through the REST API
2618 Normal fixed a bug in oload where library objects for services and jobs were not supported on multiple source lines
2580 Normal do not throw an exception on PostgreSQL when info.searchWorkflowInstances() is called with an integer value for the keyvalue search key
2578 Normal fixed a bug in oload where qmapper was not recognized as a valid file extension in some cases
2571 Normal fixed a bug in oload where an authentication error in a reset command would not cause an error code to be returned
2530 Normal fixed a bug in the UI where the expand and collapse all buttons would only work on the initial top-level nodes
2528 Normal fixed a bug in the UI rendering workflow diagrams with parallel initial steps

Bug Fixes in Qore

Issue ID Description
3367 WSDL module: fixed an internal error that caused an exception to be thrown with valid SOAP messages
3354 fixed a crashing bug with invalid arguments in replace()
3321 fixed a bug setting connection options in REST connections that caused default timeouts to be ignored
3243 fixed a bug handling invalid datasource options
3225 WebSocketHandler module: fixed a bug handling client errors
3225 WebSocketClient module: added missing exception handling that could cause client errors
3206 fixed a memory error in internal list handling that could lead to a crash in some cases
3194 xml module: fixed a XML namespace handling bug
3192 fixed a bug in Dir where an exception was thrown with a symlink with a non-existant target
3116 fixed a bug where the HTTP server could return an invalid response to a HEAD request when a server error occurred
3111 fixed a crashing bug using Qore::TransformInputStream with an encryption algorithm
3108 fixed a crashing bug in the hash map operator where multiple keys in the hash would cause a crash

Qorus 3.1.1.p8

Release Overview

This is a bugfix release; for details, see the issues addressed below.

Bug Fixes in Qorus

Issue ID Severity Description
2534 Normal fixed a bug in omq.system.get-global-errors() that would cause the internal global error cache to be corrupted after the first call
2527 Normal fixed bugs handling key arguments in wf_get_sensitive_data() and wf_get_sensitive_data_from_alias()
2495 High fixed a bug where the loosely-coupled parent workflow instance ID was not available in child orders in wf_parent_wfiid()
2489 High fixed a bug in workflow feedback when using PostgreSQL as the system schema
2469 Low fixed a bug when workflow synchronization events are not queued when Qorus uses Oracle as a system DB (omq)
2416 High fixed a bug in REST API PUT /api/latest/orders/{id}?action=setError where no old_status and priority atributes were returned
2400 High fixed a bug in retrieving workflow step information when there are large lists of dependent subworkflow orders
2394 High fixed a bug in update triggers in the system schema on PostgreSQL DBs
2379 High stopped sending the HTTP basic authentication header for authentication errors which caused spurious login windows to appear on Chrome and other browsers with the system UI

Bug Fixes in Qore

Issue ID Description
3061 fixed a bug where CRLF was translated to LF on Windows with stdin, stdout, stderr, stdin_stream, stdout_stream, and stderr_stream
3053 fixed a bug handling encrypted socket connections with TLS with servers that require SNI
3038 fixed a deadlock sending an empty file with FtpClient
3032 fixed a timeout bug handling InputStream arguments to FtpClient::put()
3031 fixed a possible deadlock in FTP PORT handling if no data connection is received from the server
3029 WSDL: fixed a namespace handling bug in some WSDLs
3027 fixed a bug that could result in a crash with recursive constant and function declarations

Qorus 3.1.1.p7

Release Overview

This is a bugfix release; for details, see the issues addressed below.

Bug Fixes in Qore

Issue ID Description
2982 pgsql: fixed a bug retrieving DATE values after the year 2038
2982 fixed a memory leak in binary value handling; affected SFTPClient::transferFile()
2963 PgsqlSqlUtil: fixed a bug where schema alignment would fail when there were functions to be dropped
2953 fixed a bug where an unknown Content-Encoding header value received by HTTPClient would cause a crash
2950 jni: fixed handlng of callbacks from Java threads with invalid / destroyed Program logic containers that would result in a crash
2928 fixed an error in runtime variant matching that could lead to spurious errors
2906 fixed a race condition that could lead to a crash in the ThreadPool class
2880 WSDL: fixed handling of multi refs in SOAP messages
2900 WSDL: fixed support for complex types as part types
2899 WSDL: improved handling of SOAP / XSD array types
2880 ConnectionProvider: fixed a bug where objects where connected in the connection lock which caused performance issues where a single connection could block many operations in Qorus

Qorus 3.1.1.p6

Release Overview

This is a bugfix release that greatly increases compatibility with SAP SOAP interfaces and improves the reliability of the system UI with long-running connections; for details, see the issues addressed below.

Bug Fixes in Qorus

Issue ID Severity Description
2309 Normal fixed a bug in the schema-tool for user defined tablespaces - not to take always a default ones
2301 Normal fixed a bug where mappers with invalid field mappings caused runtime errors when accessing the mapper through the REST API
2299 Normal fixed a confusing error message when duplicate workflow order keys were given in wf_append_order_keys()

Bug Fixes in Qore

Issue ID Description
2894 Swagger module: fixed a bug where the response body was not checked if the response message was not defined in the schema
2893 Swagger module: fixed a bug where the text/plain Content-Type was not used for simple string responses
2889 fixed a potential deadlock in Qore code that could cause the Qorus process to freeze
2887 WebSocketHandler module: fixed a bug where missing heartbeat functionality caused long-running connections to fail when no events were present on the socket
2877 fixed a bug where <hash>::values() and hash_values() would not return a typed list for typed hashes
2874 SoapHandler module: fixed a bug where the SoapHandler class would not report request HTTP headers correctly in the log callback
2872 SoapClient module: fixed documentation for SoapClient::call() methods
2871 SoapHandler module: fixed a bug where the SoapHandler class would throw an invalid error with duplicate soapAction values due to a bug
2869 fixed a type error in the += operator with complex types
2859 WSDL module: fixed support for the token and normalizedString base XSD types
2857 WSDL module: fixed WSDLLib::getWSDL() when called with an XML string without an XML preamble
2856 WSDL module: fixed a bug handling XML attributes names with non-word characters
2855 WSDL module: fixed a bug handling union declarations in simpleType definitions
2840 fixed a memory leak in TreeMap::put()
2835 fixed a crashing bug in Socket::accept() handling
2834 fixed a bug where module load errors did not always show the module with the error

Qorus 3.1.1.p5

Release Overview

This is a bugfix release; for details, see the issues addressed below.

Bug Fixes in Qorus

Issue ID Severity Description
2285 Normal fixed a bug in the system.info service where refreshing DB snapshot got in an infinite loop
2284 Normal fixed a bug in the system.info service where info.getWorkflowOverviewIntern() reported incorrect counts of orders in some corner cases
2282 Normal fixed a regression where workflows with library functions also declared as step function could not be loaded
2280 Normal fixed a performance bug with large numbers of internal events that caused very slow workflow performance
2273 Normal do not try to delete sensitive data for orders when no sensitive data exists

Bug Fixes in Qore

Issue ID Description
2817 fixed a deadlock with the Condition class when used with a RWLock object when the read lock was recursively acquired
2816 RestSchemaValidator, RestHandler: fixed bugs where it was not possible to implement REST services that accepted raw binary data in message bodies
2807 fixed a bug where modules with global variables could not be imported if the importing Program had PO_NO_GLOBAL_VARS set
2806 CsvUtil module: fixed a bug where it was not possible to set the number format
2805 HttpServer module: fixed a bug where the HttpServer class would not accept HTTP methods other than the basic ones
2804 WSDL module: fixed bugs in the generation of server-side SOAP fault responses
2784 fixed a bug in soaputil where external XSDs were not automatically imported when parsing the WSDL
2783 WSDL module: fixed bugs handling URI paths that made it impossible to bind multiple SOAP services with overlapping operation and SOAPAction names even if the URI paths were distinct
2782 WSDL module: fixed a bug in example message generation that affected soaputil

Qorus 3.1.1.p4

Release Overview

This is a bugfix release; for details, see the issues addressed below.

Bug Fixes in Qorus

Issue ID Severity Description
2274 Normal fixed an internal bug where the path given in the SOAP binding was not used to bind the handler with svc_register_soap_handler(); added the uri_path option to this function
2271 Normal implemented the qorus.compat-wsdl-allow-any-header option for SOAP functionality to allow SOAP headers to be sent even when the WSDL does not allow for it for backwards compatibility with Qorus 3.0
2270 Normal fixed handling of the api_version option and automatic API fallback for remote Qorus connections to older Qorus instances
2268 Normal implemented the ignore_socket_warnings option for remote connections so that socket I/O warnings on slow connections will not cause transient alerts to be raised
2267 Normal fixed a regression in WebUtil-based template handling in Qorus services introduced in 3.1.1.p3
2266 Normal implemented the qorus.compat-wsdl-empty-string-is-nothing option for SOAP server services to force the WSDL module to return a blank value for a required string field when the associated XML element is present as no value instead of an empty string for backwards compatibility with Qorus 3.0
2264 Normal fixed a bug where the Qorus client library could not be used by users other than the application user due to encryption keys not being readable
2263 Normal implemented the qorus.compat-csvutil-force-empty-string option to force CsvUtil parsers to return an empty string instead of no value with missing string fields for backwards compatibility with Qorus 3.0
2262 Normal fixed bugs with get_connections() and get_connection_hash()

Bug Fixes in Qore

Issue ID Description
2775 TableMapper module: fixed a bug where the RawSqlStatementOutboundMapper class could not be used directly without subclassing and declaring internal options
2773 fixed a performance problem with outbound table mappers where mappers would execute the full query when initializing the mapper
2767 fixed a bug in Qore where complex types declared with subtype auto were being subjected to complex type stripping which caused a performance problem with large data structures
2766 xml module: fixed a performance issue in the WSDL module where some large SOAP messages were processed very slowly due to unnecessary internal complex type stripping
2765 xml module: updated the WSDL module with a compatibility option to allow any SOAP header to be sent
2760 Mime module": fixed a bug in @ref Mime::mime_parse_form_urlencoded_string() "mime_parse_form_urlencoded_string()" with missing key values
2754 xml module: implemented a compatibility option for the WSDL module to allow empty strings to be returned as NOTHING in certain cases for backwards compatibility with early versions of Qore
2752 xml module: fixed a bug in soaputil that caused an error when generating example SOAP messages
2746 implemented a global option in CsvUtil to return an empty string instead of NOTHING for missing input fields for backwards compatibility with early versions of Qore

Qorus 3.1.1.p3

Release Overview

This is a bugfix release; for details, see the issues addressed below.

New Features and Changes

Bug Fixes in Qorus

Issue ID Severity Description
2261 Normal fixed a bug in oload where deprecated warnings were being issued even if the qorus-client.warn-deprecated-api option was disabled
2258 Normal addressed an issue formatting source labels to enable easier source location when debugging
2257 Normal addressed an issue where Qorus would not install on older Oracle versions
2238 Normal fixed a bug in the web UI that made it impossible to edit workflow order data
2237 Normal fixed a bug where service resources could not be generated with predictable names resulting in unpredictable URI paths for UI resources
2235 Normal fixed a bug handling interfaces that are added or removed from disabled groups
2234 Normal fixed a bug in swagger2service with certain Swagger schemas
2233 Normal fixed a bug where Qorus Web UI did not cache large JavaScript and CSS resources which led to long loading times
2231 Normal fixed a bug where inconsistent internal locking in the metadata cache could lead to cache corruption and system instability
2228 Normal fixed a bug in the GET /api/workflows/{id_or_name}/orders/{id} API

Bug Fixes in Qore

Issue ID Description
2712 fixed a bug where a memory error in object creation could cause a crash
2690 freetds: addressed an issue where the selectRow() method was not implemented leading to inefficient single-row query execution
2689 freetds: fixed a bug where using the incorrect tds version could lead to a segfault due to a memory error in the freetds driver
2686 WebUtil: made it possible for WebUtil::FileHandler subclasses to add headers to response
2684 fixed a bug where the date format Z did not work when no timezone was set
2679 fixed a bug where a crash could result with certain expressions with the brackground operator
2675 fixed a design bug where declaring immediate typed hash values required excessive typing
2657 fixed a bug where dependency errors in out-of-order class initialization could cause unrecoverable parse errors
2655 json: fixed a bug where date/time values were not serialized in ISO-8601 format
2652 fixed a bug where lvalues with complex types did not always get created with the correct runtime type when implicitly initialized
2651 fixed a bug where the map operator did not correctly supoprt complex types at runtime when executed with an empty list operand
2647 fixed a bug where empty lists and hashes were not found to be compatible with complex types at parse time
2643 worked around a bug in some Oracle dataserver versions in materialized view creation in the OracleSqlUtil module and the SqlUtil module where when the schema user is missing the CREATE MATERIALIZED VIEW grant the table backing the view is created but the materialized view itself is not created causing future creation actions to fail (issue 2643)
issue 2637 fixed a crashing bug in the background operator with non-constant hash expressions with local variable references
issue 2634 fixed a crashing bug in the += operator with objects and hashes when %require-types is not in force
issue 2621 improved HTTP log masking in the HttpServerUtil module to mask fewer false positives when attempting to mask sensitive data

Qorus 3.1.1.p2

Release Overview

This is a bugfix release including the following fixes:

  • Web UI fixes:
    • fixed compatibility with Microsoft browsers including Edge and Internet Explorer 11+
    • fixed a bug displaying workflow error information
    • fixed the order list page when changing the display date
    • fixed the sort order of mapper fields and many rendering issues related to mappers
  • many improvements in the debugger

For further details including other fixes not listed above, see the issues addressed below.

Bug Fixes in Qorus

Issue ID Severity Description
2216 Normal fixed a bug in the QorusConnectionProvider module where a configuration exception was not caught resulting in spurious configuration exceptions being incorrectly propagated to clients
2215 Normal fixed a bug in the client library where a MISING-FILE exeption was thrown instead of MISSING-FILE (as documented)
2214 Normal added support for the "qorus" connection to the QorusConnectionProvider module
2208 Normal fixed a bug returning the "info" key of errors; now it's returned in the data format the error was created in instead of raw YAML
2201 Normal WEB UI: fixed a bug where changing the date on the order list page resulted in an infinite loop
2187 Normal fixed bugs in service resource URLs with wildcard and HTTPS listeners
2159 Normal fixed a type bug in the server code that sorts mapper fields for proper display in the UI
2067 Normal fixed a confusing error message when a workflow order is created with duplicate order keys
1970 Normal added support for dumping user connections to oview with oview conn:connection_name

Bug Fixes in Qore

Issue ID Description
2613 added ConnectionProvider support to qdbg-remote
2610 fixed a crash in HTTPClient::setDefaultPath() when called with no argument
2609 oracle: fixed a bug resulting in an ORA-01406 error retrieving LONG column values; affected SqlUtil schema analysis with Oracle DBs
2604 improved breakpoint usability in the debugger
2603 fixed a bug in the debugger providing the programId context
2601 fixed a crash in the Qore debugger when setting breakpoints with a code signature with extra spaces in the argument specification
2600 fixed a badly-formatted error message in the debugger when a function or method could not be matched
2596 fixed a bug in the Qore remote debugger qdbg-remote where wss:// schemes were not accepted (i.e. it was not possible to make a secure connection to the Qorus server with the debugger)
2591 fixed a memory error with the += operator and date/time values that would cause invalid values to be returned resulting in silent data corruption
2573 improved error messages with argument type errors in the YamlRpcHandler, XmlRpcHandler, and JsonRpcHandler modules
2566 WebSocketHandler: fixed a bug where unsolicited PONG messages caused the connection to be closed prematurely
2563 added support for showing all active threads and program threads to the debugger
2556 updated QUnit to provide additional info about differences between number and float values
2555 fixed SqlUtil to allow cop_value() to be accepted as a value in other column operators
2491 fixed a type bug handling type-safe hashes with implicit initialization
1720 improve QUnit assertion failure output to include more stack information to cover the case when multiple test modules are used
802 oracle: updated to close the connection when an ORA-01041 error is received to work around Oracle bugs in version before 12c

Qorus 3.1.1.p1

Release Overview

This is a bugfix release; for details, see the issues addressed below.

New Features and Changes

Bug Fixes in Qorus

Issue ID Severity Description
2181 Normal the rtopts option in get_mapper() calls now overrides any definition in the mapper itself
2177 Normal jobs starting/loading with single-instance specified leads into system schema lock in datasource pool
2171 Normal many Qorus APIs use any as parameter and return value type, however auto should be used instead
2170 Normal oload shows a warning for correct usage of get_qorus_options()
2151 Normal fixed a bug in GET /api/orders where an empty date key in the request was not respected; the default minimum date was changed from one day to seven
2157 Normal fixed a bug where it was not possible to provide additional information in input and output record descriptions with mappers where the input and output records were acquired automatically from the DB
2155 Normal call_rest_api_with_authentication() was not imported into interface logic containers as documented
2154 Normal fixed a bug resetting interfaces after deleting the last interface of a certain type
2152 Normal implemented support for replacing all system properties in a single call
2145 Normal added new REST APIs to allow for workflow order data to be retrieved and updated as serialized YAML strings to allow for all supported data types to be updated over network transports that do not support accurate data serialization (ex: JSON from the web UI); the following APIs were added:
- GET /api/v2/orders/{id}?action=yamlDynamicData
- GET /api/v2/orders/{id}?action=yamlStaticData
- GET /api/v2/orders/{id}?action=yamlSensitiveData
- PUT /api/v2/orders/{id}?action=yamlDynamicData
- PUT /api/v2/orders/{id}?action=yamlStaticData
- PUT /api/v2/orders/{id}?action=yamlSensitiveData
2146 Normal fixed a bug where system properties and datasource connections would be needlessly reset when the system would shut down
2136 Normal fixed a bug in new installations creating encryption keys when no options file exists yet
2134 Normal SIGUSR1 removed as a shutdown signal for Qorus as it must remain free for modules (ex: jni)
2133 Normal fixed a confusing error message with invalid mapper input or output record descriptions
2118 Normal added restart_transaction() to all interface APIs and in the client library to allow user code to recover from restartable DB errors
2116 Normal a back icon was added to the SLA page in the web UI
2111 Normal fixed a race condition in concurrent resets for the same workflow with cached data
2110 Normal Added missing transaction recovery logic to server-side user connection APIs
2098 Normal fixed oview service source export
2089 Normal Added missing process module docs
2076 Normal Fixed a bug where it was not possible to update multiple sensitive data entries in one transaction by implementing SensitiveDataHelper::replaceMulti()
2066 Normal Fixed a bug where jobs with SLAs attached would not reflect the SLA after a system restart
2062 Normal fixed a bug in oload deleting sensitive workflow order data

Bug Fixes in Qore

Issue ID Description
2549 ssh2: fixed a bug where SFTPClient::getFile(), SFTPClient::getTextFile(), SFTPClient::get(), and SFTPClient::retrieveFile() would fail to retrieve zero-length files
2543 fixed an issue where a 400 response is now returned by the HttpServer module when a request has encoding errors rather than a 500 response
2542 fixed an exception error code inconsistency with DBI-SELECT-ROW-ERROR exceptions
2529 fixed compilation bugs in Windows builds
2527 PgsqlSqlUtil: fixed a bug causing a false positive on columns with some default values when aligning schemas
2526 fixed bugs in the debugger infrastructure shutting down debug clients and enumerating threads
2520 TableMapper: fixed a bug where input and output field descriptions for automatically generated records could not be overridden with configuration
2517 Swagger: fixed a bug where a valid response without a "Content-Type" header could not be parsed
2516 Swagger: fixed a bug where paths were not be matched correctly in some cases
2507 Swagger: fixed a bug where consumes and produces properties of operations were ignored
2505 Swagger: fixed a bug where string/binary values were handled as hex strings instead of actual binary values
2497 Swagger: fixed a bug that made it impossible to return data with other content/mime types than json, yamlrpc, FormUrlEncoded or MultipartFormData
2495 Mapper: fixed a bug in error processing with a field length error condition
2494 xml: fixed a bug where it was not possible to parse XML and strip namespace prefixes from element names
2493 xml: fixed a bug where the XSD-ERROR exception did not provide error context information
2492 xml: fixed a bug where it was not possible to specify the date format when serializing XML
2490 xml: fixed a bug where it was not possible to provide external schema references with a callback
2489 xml: fixed a bug where it was not possible to perform XML schema validation with a SAX parser
2487 xml: fixed a bug where XML SAX parsing failed when the element being parsed had a namespace prefix
2472 fixed a bug where qdbg did not exit immediately with a ^C or quit command
2440 implemented a way for modules to assign multiple signals atomically
2439 fixed a bug where the error message for module signal errors is not formatted correctly
2437 jni: fixed a bug where if the JVM initialization failed, the jni module could never be loaded
2418 OracleSqlUtilIntro: updated to allow to use DBA_* views instead of ALL_* if possible and necessary
2409 Swagger: fixed a bug where date values were not formatted correctly in responses
2408 OracleSqlUtilIntro: fixed a bug where chained synonyms were not resolved
2405 RestHandler: fixed a bug where a 409 was returned instead of a 404 error when child class/resources were missing
2401 fixed bugs in debug breakpoint handling
2398 RestHandler: fixed a bug where a 400 was not returned when a string encoding was invalid
2397 Swagger: fixed a bug where a 400 response should be returned when date parameter is invalid instead of a 500
2396 Swagger: fixed a bug where minLength/maxLength were ignored for incoming requests but enforced for responses
2392 fixed a bug resolving variant arguments at parse time
2388 Swagger: fixed a bug parsing non-string query parameters
2380 fixed a bug executing private:internal methods in some cases
2377 fixed a bug detecting relative paths on Windows
2369 Swagger: fixed a bug where an invalid error was raised when the optional body parameter was missing from a request
2366 Swagger: fixed a bug where messages with non-object (i.e. non-hash) bodies could not be validated
2365 Swagger: fixed a bug where confusing error messages were emitted regarding errors with the message body
2364 Swagger: fixed a bug where enums with types other than string were not handled properly
2360 MailMessage: fixed a bug where calling Message::addBody() without any body and with the default encoding failed
2349 Swagger: fixed a bug where date/time values were not de/serialized correctly
2346 Swagger: fixed a bug that prohibited loading schemas with relative paths
2346 Swagger: fixed a bug where date and date-time format strings were not validated with string values
2344 Swagger: fixed a bug where a 400 Bad Request error should have been returned instead of a 500 error in case of missing or wrong parameter in a request
2343 yaml: fixed a bug where single-quoted strings were not always deserialized as string values
2342 Swagger: fixed a bug where string example values were output incorrectly for binary types
2341 Swagger: fixed a bug where strings with with date or date-time formats were not handled correctly
2340 fixed a bug in HTTP handling where HTTP headers that differed only in case were not handled properly
2338 Swagger: fixed a bug where integer/float info values were not handled correctly in the schema version value
2333 process: fixed a bug where calling Process::readStd*() with negative values caused an abort
2319 fixed bugs where an exception in cleanup code in background thread expressions could cause a crash due to a memory error
2319 fixed bugs where an exception in cleanup code in background thread expressions could cause a crash due to a memory error
2317 fixed bugs where recursive class inheritance checks were too aggressive and disallowed legal hierarchies
2314 SqlUtil: fixed support for custom column operators
2312 fixed bugs managing statement indices with parse errors for debugging purposes
2294 fixed bugs in the debugger handling command arguments
2292 fixed bugs in the debugger handling ambiguous partial matches
2276 updated sqlutil to use BulkSql to load data dumps
2269 fixed bugs where some local variables were not visible in the debugger
2267 xml: added support for validating XML against a DTD
2260 fixed bugs in lazy evaluation of slices
1865 fixed bugs in argument matching for debugging support
1588 QUnit: implemented Test::assertNeq(), Test::assertGt(), etc for better argument reporting with test errors

Qorus 3.1.1

Release Overview

This is a major release with new features and bug fixes; new feature highlights:

  • Sensitive Data Protection for supporting GDPR-compliant data processing
  • Support for automatic transparent DB cluster failover transaction recovery on Oracle DBs
  • SLA and performance tracking support
  • API management powered by Swagger with REST API schema validation support
  • Greatly improved SOAP support:
    • more than 10x performance improvement with large WSDLs
    • automatic interface source code and exaple message generation with soaputil
  • Java support with native JVM integration
  • ODBC support for connecting to any database with an ODBC driver
  • vastly improved react/redux-based web UI with responsive design for effective usage on tablets

See below for details

Important Upgrade and Backwards Compatibility Information

  • Deprecated System Option
  • New Compatibility Options
  • New Environment Variables
    • set "QORE_CONNECTION_PROVIDERS=QorusConnectionProvider" in your system environment to take advantage of the QorusConnectionProvider module as a connection provider to command-line programs so that Qorus user connection or remote connection identifiers can be used instead of URL strings in Qore programs like rest and sfrest, etc.
    • set "QORE_DATASOURCE_PROVIDERS=QorusDatasourceProvider" in your system environment to take advantage of the QorusDatasourceProvider module as a datasource provider to command-line programs so that Qorus datasource names can be used instead of full datasource connection strings in Qore programs like sqlutil, schema, and schema-reverse.
  • New REST API Version
    • /api/v2/...: the REST API has been extended and a new version is now available under this URI path prefix
    • /api/latest/...: the latest path will always point to the latest version of the REST API
    • /api/...: the original REST API remains available for backwards-compatibility
    • qrest: has been updated to use the "/api/latest" URI path prefix by default
    • QorusSystemRestHelper: has been updated to use the "/api/latest" URI path prefix by default and also now supports an "api_version" option in the QorusSystemRestHelper::constructor() ("api_version" = "v1" ensures that the original REST API is used for example), furthermore this class was modified to automatically fall back to the original base (v1) REST API if the remote instance does not support the latest API and no specific API version is given in the constructor
    • remoteconnections: remote connection entries now accept an "api_version" option
  • HTTPS Redirection
    • HTTP requests to the updated react/redux-based web UI are automatically redirected to an HTTPS listener if one is configured so that full system functionality is available
  • Upgrade Info
    • during the installation or upgrade process, the following additional steps are performed automatically:
      • random encryption keys are created for sensitive data processing
      • if there are no users, a user name "admin" with the superuser role is created with a random password

New Features and Changes

Bug Fixes in Qorus

Issue ID Severity Description
1985 Normal services cannot be deleted or reset while persistent connections are in place and being served; the reset or delete action will wait until the persistent connection is closed
1844 Normal oload did not report unrecognized hash keys in a workflow definition
1832 Normal fixed a race condition in starting workflows when a rest or stop operation was also in progress for the same workflow

Bug Fixes in Qore

Issue ID Description
2179 CsvUtil: added an exception when detected headers do not match the fields option
2175 fixed crashes in scanner due to EOF in comments
2145 fixed a bug where a call reference to an object method that crosses Program boundaries could result in a core dump when called due to an error managing thread-local data
2130 WebSocketClient: fixed a thread lock starvation race condition
2098 fixed a bug where Qore::replace() could get in an infinite loop with arguments with embededed nulls
2083 fixed a bug in regular expression extraction where an infinite loop could occur
2016 Qore::RangeIterator::constructor(int) and Qore::xrange(int) were updated; the second arguments were removed to avoid ambiguity with the other overloaded variants
2002 fixed a bug where the *data type restriction would allow all types to be assigned at runtime
2001 fixed a bug where immediate date-time values were not marked with their type at parse time
1980 fixed cmake builds on Darwin
1976 fixed memory leaks in the scanner related to EOF conditions
1952 rewrote Qore functions gethostbyname(), gethostbyname_long() and gethostbyaddr() to use standard C functions getaddrinfo(3) and getnameinfo(3) internally instead of the deprecated gethostbyname(3) and gethostbyaddr(3)
1941 fixed a bug where code signatures would accept parameter variables without "$" signs even when %allow-bare-refs was not in effect
1930 fixed many bugs where parse-time errors could be reported at an incorrect source location; parse-time error location reporting has been completely overhauled and reimplemented for correctness
1897 fixed a bug in overloaded call variant matching where missing arguments were counted towards the match
1852 fixed a bug in handling the SqlUtil::BLOB type in the
1819 fixed a bug in the reference and *reference assignment restrictions; previously any value was accepted, now only references are accepted as the initial assignment values
1813 fixed bugs in HTTPClient methods where string message bodies were not converted to the object's character encoding before transmission
1775 fixed Qore::trim(), Qore::ltrim(), Qore::rtrim() and the trim operator with strings with UTF-16 encodings
1586 fixed Qore::substr() and <string>substr() with strings in UTF-16 encodings
1579 fixed a bug where an ASCII string and the same string in a different encoding and with diacritics could incorrectly be marked as equal
1551 fixed a bug with strongly-typed lvalue assignments with classes created in different Program objects
1548 File::read() now uses character semantics for the length argument
1463 fixed a bug where int(number) returned rounded value instead of the integer part (while int(float) behaved correctly; also cf. initializing a softint value from a number vs. from a float)
1385 fixed a bug where ord() would return negative numbers for bytes with the high bit set with compilers where char is the same as signed char
1303 fixed a bug where a closure created in an object scope could not be called if the object had been deleted, even if the closure did not refer to the object
1258 fixed bugs where calls to Socket::upgradeClientToSSL() and Socket::upgradeServerToSSL() were ignored with no exception thrown if the socket was not connected
1230 fixed a bug where exceptions in base class constructor calls did not reflect the actual source location
1231 fixed a bug where runtime function/method variant matching was incorrectly biased towards default matches for missing arguments
1229 fixed a bug where different overloaded method variant resolution rules were used at parse time (best match in hierarchy) and runtime (best match in first matching class) in a class hierarchy
1222 fixed a bug in qpp support of the 'final' class flag
1209 fixed a bug where the + operator provided access to private members from outside the class
1191 fixed a bug where the instanceof operator would return True with objects that did not publically inherit the given class or where the given class is not accessible
1187 fixed a bug where Qore allowed code to be declared both public and private without a warning
1156 fixed bugs with inconsistent conversions of int, float, and boolean values to date/time values, now they are all converted uniformly to relative date/time values
1154 BulkSqlUtil: fixed the module to work properly even with DB drivers that do not support parameter array binding
1106 fixed a stack corruption bug with asynchronous I/O on UNIX systems with ReadOnlyFile methods
1099 fixed an issue where an internal C++ API (QoreProgram::parseCmdLineDefines()) performed a needless copy of a data structure
1086 HttpServer and RestHandler: added logic to allow sensitive data to be masked in log messages
1062 CsvUtil: fixed a bug in an error message validating input data
1047 HttpServerUtil: fixed a bug where the msg arg to AbstractAuthenticator::do401() was ignored
1013 SqlUtil: fixed a bug in update and upsert statement generation when the given data does not have enough columns to use the unique index found, an error message is generated that contains all the columns names instead of just the column names required by the index
976 fixed a bug where break and continue statements were accepted outside of loops
968 fixed a bug causing AbstractQuantifiedBidirectionalIterator not being available
966 fixed a bug causing an infinite loop in decompression functions
958 fixed a bug compiling on Solaris SPARC with g++ where MPFR_DECL_INIT() is compiled incorrectly with -O1 or greater

Qorus 3.1.0.p17

Release Overview

This is a bugfix release; for details, see the issues addressed below.

Bug Fixes in Qorus

Issue ID Severity Description
2142 Normal fixed a race condition in workflow initialization when a workflow is started during a cache reset
2096 Normal fixed a bug in oview where substep values were truncated after 4 digits

Bug Fixes in Qore

Issue ID Description
2500 fixed a bug where qore was not throwing an ENCODING-CONVERSION-ERROR exceptions on platforms with updated GNU iconv libraries
2479 fixed inconsistent "action" argument handling in REST services in Introduction to the RestHandler Module the "RestHandler" module
2448 oracle: fixed a bug where DATE column values were not matched with selects when they crossed a DST boundary with the current time
2334 fixed a bug where calling any SQLStatement method in another thread with an active connection from a DatasourcePool object caused a crash
2303 fixed a memory bug in the Splice Operator (splice) operator with a binary operand
2242 json: fixed a bug bug in json serialization with hash keys with quotes in the string
2163 fixed bugs in SqlUtil where column names that are reserved words could not be used
2155 fixed a bug in the HttpServer class where more than one HTTP listener with a wildcard bind address could not be added
2149 pgsql: fixed a bug where selecting small numeric values returned invalid results
2143 fixed incorrect documentation for timeouts with Queue class methods
2135 updated to allow building with openssl 1.1.0+
2058 fixed a connection status error bug in the HTTPClient class
2030 fixed a bug where referencing argv in base class constructor execution would cause a crash
2023 fixed a bug where defining and instantiating a class with a member defined as the same class caused a crash
2020 fixed an internal memory leak in C++ object ValueEvalRefHolder with non-temporary values
1099 internal C++ function QoreProgram::parseCmdLineDefines() uses an API that performs a needless copy of a map

Qorus 3.1.0.p16

Release Overview

This is a bugfix release; for details, see the issues addressed below.

New Features in Qorus

Bug Fixes in Qorus

Issue ID Severity Description
2108 Normal fixed bugs in the system.info service in the following methods: info.getOrderInfoFromKey() and info.getOrdersFromKey() where exceptions were thrown when no data was matched instead of returning an empty list
2085 Normal fixed bugs in the system.info service where empty arguments (for example as sent from the web UI) would be used as date/time values in some cases
2063 Normal fixed a bug purging empty workflow order queues (mostly affects new Qorus instances)
2057 Normal fixed a bug with excess contention in with system datasources when a single datasource took a long time to connect
2005 Normal fixed a type error in validating certain interfaces with oload
1998 Normal fixed a cosmetic error in connection file warnings
1997 Normal fixed a bug in schema-tool when checking "shadow datasources"
1996 Normal fixed a bug setting the timeout and connection timeout values in REST and RPC connections to remote Qorus connections
1981 Normal fixed errors executing the detach function when (un)blocking or (un)canceling orders in the context of HTTP connection sharing
1979 Normal oprop command errors result in a confusing error message
1975 Normal property name that is an invalid XML tag prevents dumping properties to XML
1967 Normal signal handling has been reenabled in the Qorus server

Qorus 3.1.0.p15

Release Overview

This is a bugfix release; for details, see the issues addressed below.

New Features in Qorus

Issue ID Severity Description
1976 Normal react: use "responsive web design" to implement support for tablets and smaller PC screens in the web UI

Bug Fixes in Qorus

Issue ID Severity Description
1965 Normal remove server information from qorus-diff
1962 High react: boolean values are not displayed in the order data page
1959 Normal fix race conditions in the regression test wf
920 Normal Qorus Compare/Diff Tool

Bug Fixes in Qore

Issue ID Description
1992 Datasource::getConfigString() must only be called with an active connection or a crash can result bug c++ fixed
1994 Datasource::getConfigHash() returns a different value when connection and not connected bug c++ confusing fixed
1947 add broken-logic-precedence-warn flag

Qorus 3.1.0.p14

Release Overview

This is a bugfix release; for details, see the issues addressed below.

New Features in Qorus

The system web UI has been updated to use the new react UI; the old web UI is still available from the new UI in case of any issues. This new version of the web UI provides the basis for future development of the Qorus Integration Engine user interface; it brings better performance, much more functionality, and more user-friendliness to Qorus. The new react UI features improved functionality in all areas plus the following new features:

  • mappers
  • value maps
  • releases with release files and components and a search functionality
  • improved authentication
  • SQL cache
  • workflow order error searches
  • future-proof UI extensions
Note
URI paths have changed with the react UI; please update any saved links if necessary.

Bug Fixes in Qorus

Issue ID Severity Description
1957 Normal fixed a bug in oload in the verify-load-schema release command
1953 Normal fixed a bug where skipping a workflow step with a bound subworkflow would fail with a spurious exception on Oracle
1945 Normal fixed a bug in the system.arch service when archiving audit events
1944 Normal fixed a bug in the system.arch service related to column renaming
1932 Normal fixed "file_name" and "component" search options in GET /api/releases
1931 Normal fixed "limit" and "offset" option in GET /api/releases
1922 Normal fixed a division by zero error retrieving datasource status
1921 Normal resolved a bug that caused scalability issues due to excessive contention on the connection dependency manager lock
1917 Normal the OMQ::StreamConfig class was not available in the Qorus client while all derived classes were
1915 Normal fixed a bug where the HTTP I/O timeout was not set on the underlying connection object in stream API classes: OMQ::AbstractFsRemoteReceive, OMQ::DbRemote, OMQ::DbRemoteReceive, OMQ::DbRemoteSend, OMQ::FsRemote, OMQ::FsRemoteSend
1914 Normal fixed a bug where make-release created invalid releases for services with nested service resources
1912 Normal fixed a bug where service connection dependencies were returned by the REST API with an invalid "type" attribute; affected:
- GET /api/remote/datasources/{name}
- GET /api/remote/qorus/{name}
- GET /api/remote/user/{name}
1909 Normal REST header and origin information is now logged with LL_DEBUG_1 log level (was LL_INFO)
1903 Normal the "read-only" role is missing the FILESYSTEM-READ permission
1896 Normal REST API GET /api/jobs now returns the "group" key as documented
1895 Normal REST API GET /api/workflows no longer returns synthetic groups in the "group" key
1894 Normal the "readonly" option was added to the FilesystemConnection class to support readonly filesystem connections
1890 Normal the "remote" role did not contain the FILESYSTEM-READ and FILESYSTEM-WRITE permissions
1888 Normal RPC API omq.system.flush-options() flushes invalid options to disk
1886 Normal REST API GET /api/remote/qorus/{name} was fixed to respect the with_password option as documented
1885 Normal REST API GET /api/remote/qorus/{name} can fail to respond due to an error processing the call due to an argument error in an internal API
1883 Normal set up Qorus for dual UI
1881 Normal error while setting properties via xml file
1879 Normal fixed bugs handling multiple values in the URI path or message body for arguments taking multiple values in GET /api/orders?action=listErrors
1875 Normal the POST /api/remote/datasources API sets min and max options to 0 when creating a new datasource if those options are not present
1872 Normal created a REST API to DELETE a datasource connection: DELETE /api/remote/datasources/{name}

Bug Fixes in Qore

Issue ID Description
1928 fixed a bug that caused spurious parse-time exceptions when variant matching (affected oload in some cases)
1920 fixed a bug that could cause a crash when processing strings with encoding errors in certain cases
1909 fixed a bug where it not possible to select only columns from the main table when using joins with SqlUtil
1895 once a "broken-*" option is set, it cannot be undone in code
1886 SqlUtil: adding column comment with single quote when creating new schema in Postgresql leads to an exception
1884 backquote builtin function sets 'rc' arg wrongly
1880 SqlUtil: offset option when set to 0 does not result in ordering by the table's primary key as documented
1869 fix module links in docs
1856 corrected documentation on the wop_or() function in SqlUtil
1849 fixed a bug in the TableMapper class where log messages for flushing data were incorrect
1836 fixed a bug in the SQLStatement class where the connection was not released to the pool when a "SQLSTATEMENT-ERROR" exception was raised
1835 fixed a bug in the SQLStatement class where a spurious exception was raised when a "DATASOURCE-POOL-TIMEOUT" exception was raised
1832 updated HttpServerUtil so that the HttpServer class would no longer log each HTTP chunk received by default
1828 fixed error messages in FixedLengthUtil that were confusing and made debugging harder
1815 fixed a bug in qpp where a reference type restriction was handled as any
1805 fixed a bug handling module deletion that caused a crash when the qore library was shut down
1800 updated and corrected ssh2 module documentation
1794 documented that sending a message body with HTTP GET requests is bad practice and non-standards-compliant
1791 fixed crashes with builds with newer compilers caused by calling objects with NULL this pointers
1717 fixed a bug in the oracle module where automatic session reconnections would have bind and statement handles freed in the wrong service context that could lead to crashes
1250 implemented an API to allow lost DB connections to be reported which made possible the fix for issue 1717
1233 documentation updates to Qore::HTTPClient::send() and similar methods

Qorus 3.1.0.p13

Release Overview

This is a bugfix release; for details, see the issues addressed below.

Bug Fixes in Qorus

Issue ID Severity Description
1863 Normal fixed a bug where the job expiry date would not be updated correctly in the internal caches when changed via an API call
1861 Normal fixed a bug where workflow orders with BLOCKED or CANCELED status could remain in the event queues and cause spurious errors in the log files
1857 High fixed installation issues related to $LD_PRELOAD set loading libraries provided by Qorus
1851 Normal fixed a rare race condition where rescheduling a workflow order with BLOCKED or CANCELED status could cause it to be temporarily cached and for the API to return an incorrect READY status
1666 Normal REST API call GET /api/users?action=current returns an error in some cases

Bug Fixes in Qore

Issue ID Description
1774 memory leak in reference handling
1768 build issues with clang++
1756 Mapper module fixes: fixed support for the allow_dot and allow_output_dot options
1754 Mapper module fixes: fixed compatibility issues introduced with performance optimizations in Qorus 3.1.0.p11 (Qore 0.8.12.7)
1749 fixed a memory leak in Queue::copy()

Qorus 3.1.0.p12

Release Overview

This is a bugfix release; for details, see the issues addressed below.

New Features in Qorus

  • ostatus -C updated to only show active threads by default; use ostatus -CC to show an unfiltered thread list (issue 1819)

Bug Fixes in Qorus

Issue ID Severity Description
1842 Normal fixed a bug where OMQ::DefaultQorusRBACAuthenticator did not support token-based authentication
1841 Normal fixed a bug where user connections with an invalid URL prohibit the system from starting
1830 Normal fixed a bug where setting the schedule on an active job did take effect until after the job was reset
1829 Normal updated the docs for GET /api/jobresults regarding the limit and offset arguments
1828 Normal fixed a bug where the ids argument of GET /api/jobresults did not work
1825 Normal fixed a bug where the "last_executed" key was missing or incorrect in the return value to the job_info() job API function
1820 Normal fixed a bug where jobs were triggered immediately even when they were not eligible for execution when they were disabled and enabled in certain situations
1814 Normal the qore binary delivered with Qorus was missing support for the -g option
1812 Normal rescheduling a canceled / blocked workflow order causes the status to be updated to either READY or SCHEDULED
1440 Normal fixed a race condition in workflow execution instance stopping and resetting

Bug Fixes in Qore

Issue ID Description
1738 HashListIterator fails to iterate hash keys with single values
1736 InboundTableMapper::queueData() error with hashes of lists
1729 fixed a bug where threads got into an infinite loop consuming 100% of the CPU when the remote end closed a socket during an SSL send operation
1728 parse_url() and the HTTPClient class ignore invalid characters in the port in the URL
1725 there is no timeout in websocket socket operations in the WebSocketHandler module
1723 ssh2 module: fixed crashes on Windows due to bugs in the underlying libgcrypt library
1697 incorrect error message with type conversions in lvalue assignment
1696 ssh2 module: missing argument in module API error message
1693 Qore::trunc_str() returns an invalid string if invalid multi-byte characters are present in the string
1690 there is a memory leak in %try-module error handling
1688 SqlUtil: oracle: character_semantics can be different for each column, not only for the whole schema
1684 SqlUtil schema management: schema alignment skips column with name "driver"
1610 SqlUtil schema management: functional indexes are rejected without () in name
1547 workflow options are logged incorrectly in the workflow log file

Qorus 3.1.0.p11

Release Overview

This is a bugfix release; for details, see the issues addressed below.

New Features in Qorus

Bug Fixes in Qorus

Issue ID Severity Description
1791 Normal workflow options are logged incorrectly in the workflow log file
1790 Normal oprop shows the wrong short option letter for the –show-url option
1789 Normal ocmd -W returns with a non-zero exit status even when successful
1786 Normal the REST DataStream echo API is broken: /api/system?action=stream;stream=EchoDataStream
1785 Normal qrest outputs errors to stdout instead of stderr
1784 Normal command-line programs output confusing error messages when authentication fails and a 401 Unauthorized response is received
1777 Normal the REST API must return array step ind elements in numerical order
1775 Normal network calls made in the same HTTP session can fail due to bugs handling thread-local data
1774 Normal oview dump source code exports also synthetic group names disallowing next oload again
1772 High crash in queueing workflow events caused by an error handling internal data in a race condition with blocking and unblocking the same order at the same time
1769 Normal oload options documentation incomplete
1760 Normal job duration update impossible with qrest

Bug Fixes in Qore

Issue ID Description
1673 global top variables of a module not exported
1671 pdox with incorrect shell
1670 xml module: missing documentation for WSOperation member functions
1660 SqlUtil's op_in() operator does not handle large number of elements when used with Oracle
1659 xml module: SalesforceSoapClient does not allow to override SOAPAction in the header
1657 sfrest script does not honor -U option
1648 preprocessor: try-module meaning confusing
1640 32-bit builds use incorrect *printf() format placeholders for size_t args
1638 Memory leak in reference.qtest
1635 non single-compilation-unit build is broken
1632 bug in windows build in configure
1626 Improve InboundTableMapper performance with bulk inserts
1617 recursive references are not always detected at runtime which leads to runtime errors
1363 performance issue with deterministic garbage collection / prompt collection

Qorus 3.1.0.p10

Release Overview

This is a bugfix release; for details, see the issues addressed below.

Bug Fixes in Qorus

Issue ID Severity Description
1746 Normal sending streaming classes (ex: OMQ::DbRemoteSend) may report an incorrect record count
1745 Normal added documentation for the SERVICE_AUTOSTART_CHANGE event
1741 Normal updated the oprop documentation regarding how arguments are parsed
1722 Normal omq-schema added to the response for GET /api/public/info
1719 Normal sorted the HierarchyInfo key in the response to GET /api/orders/{id} for proper display in the web UI
1718 Normal passwords are no longer returned by default in the REST responses for user connections and remote connections; the GET /api/remote/user/{name} and GET /api/remote/qorus/{name} calls now take an optional "with_password" option to include the password in the "url" and "url_hash" keys
1717 Normal environment variables are only resolved once when connections are initially parsed and loaded, and additionally at runtime in the server; additionally environment variables are supported in all connection attributes; see Connection File Parsing for more information
1716 Normal backbone: the job detail page is broken in the 3.1.0 web UI
1715 Normal Qorus cannot start with the qorus.autostart-interfaces option set to False
1711 Normal fixed the workflowstatus key for IN-PROGRESS orders owned by foreign application sessions as returned by GET /api/orders and info.searchWorkflowInstances()
1682 Normal corected documentation regarding HTTPS URLs in user connections
1675 Normal a missing WSDL for a SalesforceSoapClient connection results in a confusing error message
1674 Normal there is a race condition in deleting connections that can cause spurious errors in the system
1671 Normal service file resource data cannot be retrieved with GET /api/services/{id_or_name}/resource_files/{name}
1670 Normal fixed Soap and SalesforceSoap connections so that URLs without a host and with just a path can be used to resolve locally-stored WSDLs
1649 Normal The REST API call GET /api/jobs/{id_or_name} does not return all library source when called with lib_source=true
1621 Normal sort the mapper input and output options according to used fields first (improved fix)
1611 Normal fixed a bug where special characters cannot be used in connection files; for example a password in a URL cannot contain ",", "$", ")" and other characters; now connection files are parsed with well-defined rules; quoted strings and escape characters are supported; see Connection File Parsing for more information
1580 Normal streaming classes do not maintain an externally-usable record count
1435 Normal added documentation about HTTP errors returned with REST API calls

Bug Fixes in Qore

Issue ID Description
1631 xml module: Wrong services/port/address in WSDL
1625 BulkInsertOperation in the BulkSqlUtil module is broken when used with constant hashes
1620 Mapper and InboundTableMapper performance is poor with large output records
1617 recursive references are not always detected at runtime which leads to runtime errors
1590 a crash results if a method is declared both static and abstract
1583 oracle module: there is a memory leak in exception handling in certain cases
1566 fixed an incorrect parse-time type error with the square brackets operator [] when operating on a binary object
1558 Core dump parsing try catch blocks with type errors in the catch block
1557 ssh2 module: streaming from SFTP servers is impossible without user re-implementing SftpPoller methods
1535 user module initialization not called with PO_LOCKDOWN as documented
1524 parse_url() does not parse a one-character hostname correctly
1398 json module: function parse_json() does not handle BOM in UTF-8 input
1379 Schema SqlUtil: the character_semantics column option is ignored in schema alignment

Qorus 3.1.0.p9

Release Overview

This is a bugfix release; for details, see the issues addressed below.

New Features in Qorus

  • added the SalesforceRestClient user module for REST HTTP connections to the Salesforce.com API (and Bulk API)
  • added the SalesforceRestConnection user connection type ("sfrests")
  • added total_count member to StreamInfo class returned by AbstractParallelStream.getInfo()

Bug Fixes in Qorus

Issue ID Severity Description
1664 Normal connections returned with the REST API are not sorted by name
1663 Normal do not return URL with password in the response to the REST ping connection action (PUT /api/remote/qorus/{name}?action=ping and PUT /api/remote/user/{name}?action=ping)
1660 Normal add step description attribute to step hash in the workflow REST API response
1629 Normal invalid/confusing error message with mappers with invalid input records
1628 Normal fix qorus build warnings and set warnings as errors
1621 Normal sort the mapper input and output options according to used fields first
1620 Normal oload should display a warning in all cases when not updating connection URLs
1619 Normal perform environment variable substitution in connection file URLs

Bug Fixes in Qore

Issue ID Description
1489 do not include the port in the Host header when connecting to port 443 with SSL
1488 openssl read errors when the remote closes the connection are not reported correctly
1487 json module: request logging is broken in the JsonRpcHandler module
1484 SalesforceRestClient broken due to a bug in send_encoding handling
1469 xml module: make_xml(list) produces invalid XML that cannot be parsed
1465 OracleSqlUtil does not support spatial data types
1455 parse_url() does not parse a one-character username correctly
1448 the RestClient module throws an exception with empty chunked responses
1445 add a SalesforceRestClient module
1442 floating-point @inf@ is broken on Windows
1438 yaml module: non-DataStream chunked responses cannot be parsed due to a bug in HTTP handling
1437 RestClient: fix support for XML message encodings for REST servers that use raw XML encodings
1436 RestClient: fix support for URL form-encoded data in the REST client as an alternative serialization method
1432 Qore can deadlock with 100% CPU with invalid gzip or deflate data
1428 SqlUtil: schema alignment: default values can be complex statement instead of simple value only

Qorus 3.1.0.p8

Release Overview

This is a bugfix release; for details, see the issues addressed below.

Bug Fixes in Qorus

Issue ID Severity Description
1616 Normal do not raise an INTERFACE-GROUP-DISABLED alert when synthetic groups are disabled
1609 Normal fixed recursively updating workflows from changes step functions with oload
1605 Normal fixed race conditions executing synchronous workflow orders while non-synchronous workflow execution instances for the same workflow are running
1579 Normal DbRemote throws an extraneous exception in the destructor when DbRemote::rollback() is called with no argument or with DO_DISCONNECT

Bug Fixes in Qore

Issue ID Description
1424 xml module: SoapClient cannot be constructed with a WebService object
1418 AbstractSqlStatementOutboundMapper::iterator() does not respect runtime options already set
1417 getCount() in SQL outbound iterators created from an outbound mapper always returns 0
1395 SqlUtil is missing a column function for SQL LENGTH
1046 fixed QUnit to report the test assertion source location respecting test APIs on top of QUnit

Qorus 3.1.0.p7

Release Overview

This is a bugfix release; for details, see the issues addressed below.

New Features in Qorus

Bug Fixes in Qorus

Issue ID Severity Description
1575 Normal oload did not store valuemap description values
1573 Normal oload and the REST valuemap API allow for invalid values that do not confirm to the declared type to be stored in the value map
1572 Normal the REST valuemap API does not allow deleting elements

Bug Fixes in Qore

Issue ID Description
1369 string to date conversions accept invalid dates and return unpredictable values without raising an error
1363 performance issue with deterministic garbage collection / prompt collection
1359 xml module: request info missing from SoapClient call info hash
1358 xml module: typo in a debug logging statement
1355 error in CsvUtil AbstractCsvIterator::identifyTypeImpl() error message
1352 MailMessage::attach() without an encoding argument or with "default" fails
1327 trunc_str() never returns when a unicode char happens to be at the truncated length position
1309 reference error that can lead to a crash in the Queue class

Qorus 3.1.0.p6

Release Overview

This is a bugfix release; for details, see the issues addressed below.

Bug Fixes in Qorus

Issue ID Severity Description
1566 Normal invalid mapper files generate spurious error log messages
1565 Normal updating a job's schedule does not actually make the schedule take effect
1564 Normal remove a job expiry date with an expired job fails
1563 Normal cannot activate an inactive job
1561 Normal when jobs are run manually, they are run holding the global job write lock
1558 Normal a user with only the LOGIN permission should be able to use the web UI in read-only mode
1552 Normal ongoing WORKFLOW-NOT-RUNNING alerts are not cleared when the autostart is set to 0
1543 Normal oload can still fail silently without setting an error code

Bug Fixes in Qore

Issue ID Description
1295 FtpClient::pwd() returns invalid directory names
1293 a crash results when using socket event queues with the FtpClient class
1292 the Queue class must purge the queue before deleting otherwise a crash can result
1284 HttpServer cannot accept a bind on port 0 to mean any random port
1272 oracle module: fixed a memory leak in Oracle connection handling
1270 Qore allows methods to be called on already deleted objects under certain conditions
1268 executing a call reference to a deleted object method can cause a crash
1260 Socket::recv(0, ...) can return NOTHING but should always return a string
1255 retrieving an empty file with FtpClient throws an exception
1252 implement timeout handling in the FtpClient class
1251 sybase module: dataserver reconnections do not actually check for a working connection
1248 sybase module: crash in SQLStatement handling with automatic reconnects
1244 xml module: incorrect SOAP response Content-type with soapFault responses
1241 SQLStatement::fetchColumns() does not behave as documented when no more rows are present
1215 segmentation fault when calling exit() in a multithreaded script with active threads
1084 crash in prompt collection / deterministic garbage collection

Qorus 3.1.0.p5

Release Overview

This is a bugfix release; for details, see the issues addressed below.

Bug Fixes in Qorus

Issue ID Severity Description
1545 Urgent objects in the SQL table cache can get out of sync with the underlying DatasourcePool
1542 Normal fixed logging of websocket connections
1541 Normal there is a race condition in the regression test workflow in the test for bug 1326

Bug Fixes in Qore

Issue ID Description
1227 xml module: the WSDL module cannot parse empty base64Binary or hexBinary elements
1226 xml module: the WSDL module generates a SOAPAction header even when the wsdl gives an empty value
1225 gnu-java: namespace handling appears broken
1216 WebSocketUtil, WebSocketClient, and WebSocketHandler do not read or generate the close status code correctly

Qorus 3.1.0.p4

Release Overview

This is a bugfix release; for details, see the issues addressed below.

Bug Fixes in Qorus

Issue ID Severity Description
1524 Normal double authentication is required when the UI uses its own login page
1517 Normal the REST documentation for /api/remote/qorus is incorrectly documented as for /api/remote/remote
1514 Normal Qorus shutdown fails due to a user class failing parsing
1513 Normal QorusRestApiHandler must log into http log
1484 Normal race condition leading to a deadlock in workflow resets
1470 Normal oload -Rlv is not enough to override a value map
1469 Normal negative autostart values
1244 Normal Comment handling in qmapper files

Bug Fixes in Qore

Issue ID Description
1206 fixed a memory leak with static class member initializers
1202 there are internal memory errors in the Queue class that can cause spurious exceptions to be raised
1201 Datasource automatically opens a connection during construction if there are options in the connection string
1197 method variants tagged as deprecated are internally marked as "runtime noop" variants
1194 call_object_method() and related functions allow access to private methods from outside the class
1193 string encoding with CE_XML is broken and includes encoding of XHTML entities
1188 declaring a copy method as synchronized results in a crash when the method is called
1174 ModMap destructor confusion in qore vs openldap
1169 referencing "self" in base class constructor arguments causes a crash
1149 format_number() and <float>::format() give incorrect results when rounding
1130 the decimals value when formatting numbers is not required and is not limited to one digit
1124 CsvUtil backward compatibility broken for single-row-type format

Qorus 3.1.0.p3

Release Overview

This is a bugfix release; for details, see the issues addressed below.

Bug Fixes in Qorus

Issue ID Severity Description
1448 Normal stopping a workflow with the REST or RPC APIs returns a successful message but does not work
1437 Normal qorus reporting unhandled exceptions on stdout
1431 Low Add logout button to interface

Bug Fixes in Qore

Issue ID Description
1126 public APIs missing from libqore breaking ABI compatibility
1120 xml module: the WSDL module serializes xsi:type information in some cases when it's not necessary
1117 HTTPClient fails to retrieve the message body with chunked receives
1112 xml module: the WSDL module does not respect different elementFormDefault values in different schemas in the same wsdl
1103 race condition in prompt collection with closures could cause a crash
1096 thread memory handling bug with some operator expressions and the background operator

Qorus 3.1.0.p2

Release Overview

This is a bugfix release; for details, see the issues addressed below.

Bug Fixes in Qorus 3.1.0.p2

Bug Fixes in Qorus

Issue ID Severity Description
1402 Urgent each HTTP request must be subject to authentication; authentication cannot be reused on the same socket
1408 High react webapp not working with RBAC authentication

Bug Fixes in Qore

Issue ID Description
1091 xml module: the WSDL module is sending invalid namespace values in some cases
1088 TableMapper.qm: AbstractSqlStatementOutboundMapper::iterator() fails to use options when creating the new Mapper object
1075 error in base class matching when resolving base class method calls
1049 make Util.qm in 0.8.12 forward-compatible with 0.8.13
1040 ssh2 module: crash in SFTPClient

Qorus 3.1.0.p1

Release Overview

This is a bugfix release; for details, see the issues addressed below.

Bug Fixes in Qorus 3.1.0.p1

Bug Fixes in Qorus

None.

Bug Fixes in Qore

Issue ID Description
996 fixed crash in parsing empty base 64 strings
985 xml module: fixed serialization of complexTypes fails when it extends another type and the expected type is used
984 xml module: fixed a bug where the WSDL module could not handle valid but empty complexType declarations
981 fixed a bug where TableMapper::SqlStatementOutboundMapper would throw an error if the required "table" or "sh" options are used
979 fixed a bug where TableMapper::SqlStatementOutboundMapper::iterator() would return the wrong iterator object which causes AbstractMapperIterator::mapBulk() to fail
975 xml module: fixed a bug where the WSDL module had an error in parsing complexTypes
974 fixed a bug with handling NOTHING when passing an optional parameter to built-in function
953 oracle module: fixed a bug where ambiguous OracleExtensions::OracleDatasourceBase::beginTransaction() variants would cause errors

Qorus 3.1.0

Release Overview

Qorus 3.1 is a major new release bringing many new features to Qorus designed to further empower operational teams and reduce Total Cost of Ownership by providing a higher level of interface automation, reliability, and operational transparency.

Important Upgrade and Backwards Compatibility Information

  • the system.omqmap service is now only an interface to an internal cache; moving the metadata cache from a system service to the system itself resolved several race conditions in the server and in service handling. Deleting the system.omqmap service no longer causes the cache to be reloaded; cache reloads can be effected by calling one of the system.omqmap service reload methods explicitly
  • the system.prop service is now only an interface to internally-provided functionality; the system.prop service will remain in the system for backwards compatibility, but its usage is now deprecated
  • the system.info service no longer uses a dedicated (and unconfigurable) DatasourcePool for executing queries on the system schema; it now shares the system datasource pool; in this case additional contention on the system datasource pool could require a higher maximum connection size; adjust the qorus.system-pool-maximum parameter accordingly
  • the version of the Qore library supporting this release has undergone the following parser fixes:
    • corrected the lack of runtime type checking for the int and softint type restrictions; previously runtime type errors were ignored with these type restrictions; to get the old behavior, use the %broken-int-assignments parse directive in individual code objects, or set qorus.compat-broken-int-assignments in the System Options File.
    • corrected inconsistent parsing of list values; in previous releases, Qore's parser re-wrote lists without parentheses used as top-level statements with certain assignment operators (=, +=, -=, *=, and /=, but not with others) so that statements like list l = 1, 2, 3; were valid assignments. Due to operator precedence, such statements should normally be interpreted as (list l = 1), 2, 3;, which is not a valid expression. Not only were the rules applied with only some assignment operators, but such lists were only rewritten if used as top-level statements, therefore the rules were applied inconsistently depending on where the expression was located in the parse tree. As of this release of Qorus, these inconsistencies have been eliminated by default from Qore; all lists are processed according to the precedence rules defined in operators. This could break old code that relied on the old, broken behavior. To get the old behavior, use the %broken-list-parsing parse directive in individual code objects, or set qorus.compat-broken-list-parsing in the options.
    • corrected incorrect precedence of logical and bitwise operators; previously the & and the | operators shared the same precedence, while the and && and || operators also shared the same precedence (contrary to the declared design of the operators in Qore); now the operators have the declared precedence (also shared with other programming languages); to get the old behaviour, use the %broken-logic-precedence parse directive in individual code objects, or set qorus.compat-broken-logic-precedence in the System Options File.
    • removed support for multi-character Qore operators with whitespace between the operator characters; support for this resulted in a more complicated lexer, was a potential source of confusion for Qore programmers, represented a potential unnecessary incompatibility between Qore and other programming languages, and furthermore a development survey concluded that this feature was never used and removing it would have no effect on existing code; to get the old behavior, use the %broken-operators parse directive in individual code objects, or set qorus.compat-broken-operators in the System Options File.
  • Qorus server code now runs under stricter parse options by default (%strict-args, %require-types) which will result in user code with excess arguments to system APIs throwing CALL-WITH-TYPE-ERRORS exceptions; in order to allow for such argument errors for backwards-compatibility, use qorus.compat-permissive-api in the System Options File. Note that this option has global effect; it's not possible to override this setting on the interface level.
  • the tibco and tibrv-api-gateway services have been removed from Qorus
  • job errors raised with job_error() with a severity less than or equal to OMQ::ES_Warning are now treated as warnings
  • the validation option has been removed from the upsert stream in the system.sqlutil service in order to support bulk upsert operations

Important Changes for Developers

  • the OMQ::WM_Synchronous mode value has been deprecated
  • the bundled Qore library supports deterministic garbage collection for improved memory management
  • note that future versions of Qorus will enforce new rules on system services and therefore user-defined system services will likely fail to work; do not develop any system services for Qorus and migrate any existing user-defined system services to user services
  • note that future versions of Qorus may enforce stricter rules on key values in the "omq" system property domain; no non-system controlled values should appear in this domain; in general any non-API-driven manipulation of the Qorus system schema can lead to incompatibility issues with future versions of Qorus
  • oload and the REST API have been enhanced to make synchronizing changes to the server much faster for large Qorus deployments; only changes are effected instead of reloading the entire metadata cache for all affected object types
  • major documentation updates, particularly regarding the REST API
  • the Qore library and associated modules have been extensively updated; see Qore 0.8.12 for details

New Features and Changes

Bug Fixes in Qorus 3.1

Bug Fixes in Qorus

Issue ID Severity Description
1364 Normal the info service does not respect limits properly when there is an archive datasource defined for searching
1363 High Qorus does not enforce access restrictions properly with jobs through interface groups
1362 High qrest does not handle a full URL after the HTTP method argument
1359 High oload does not load all connection options correctly (ex: target_url with soap connections)
1353 Normal user connection files cannot be parsed with special chars inside description tag
1350 Normal when HTTP listeners which are also service resources are stopped, the service resource is not removed
1348 Urgent if an attach error occurs when starting a backend segment, the step status is not released resulting in a deadlock for the wf exec instance
1346 Normal in case of system errors, application sessions can fail to be recovered in case there are multiple sessions for the same instance with an 'ACTIVE' status
1337 Normal Absolute links at GUI/System/Http services
1323 High job execution is not checked for thread resources left allocated after the job's code is run
1322 High different DatasourcePool objects can be returned in the same workflow step or job if a reset for that datasource is effected while the logic being executed is acquiring DatasourcePool objects
1317 High PermissiveAuthenticator does not set the internal system user in the HTTP call context as documented
1316 Normal tempdata is not always set in the unblock_order() call
1315 Low job exceptions where the err component is not a string cannot be handled properly
1313 Normal subworkflow execution is sometimes not handled correctly due to internal errors managing workflow exec instance state data
1312 Normal an error in exception handling when an error occurs acquiring a new workflow when resetting workflows can lead to a deadlock
1308 Normal locking issues when opening streams can cause a service deadlock
1297 Normal there is no way to return service resources with the REST API
1294 Normal error messages in the ocmd page are displayed in red text with a red background and are only readable if you highlight the text with the mouse
1292 Normal jobs cannot be enabled or disabled even if the user has JOB-CONTROL
1291 Normal services cannot be enabled or disabled even if the user has SERVICE-CONTROL
1290 Normal workflows cannot be enabled or disabled even if the user has WORKFLOW-CONTROL
1289 Normal real connection options used are not returned by the REST API
1288 Normal the target_url option of SOAP connection is ignored
1287 Normal invalid connections with options cause oload to fail to load any options
1268 Low oload does not display service information correctly when creating new interface groups with -v
1260 Normal the workflowstatus attribute may not be returned in the REST or RPC APIs when a READY order is first processed
1253 Normal job instances are not shown in descending order on the job instance results page
1252 High the REST POST /api/workflows/{id_or_name}?action=createOrder does not handle the "status" argument as documented
1251 Low Confusing error message for duplicate mapper declarations
1250 Low the RPC start-workflow online API docs incorrectly refer to an "instances" key
1245 Normal Inconsistent type returned by info.getOrderInfoFromKey()
1228 Normal Cross references for SftpPoller.qm don't work correctly
1208 Normal Qorus may fail to start if services are being loaded into the DB at the same time as the internal service map is being initialized
1197 Normal schema-tool -r fails on files with "\r\n" EOL markers
1195 Normal errors setting up a service stream are not logged in the service log file
1194 Normal job overview queries take excessively long to execute in large databases due to the lack of appropriate indexing
1189 Normal There is no error message when a remote connection file cannot be loaded or has an invalid URL
1181 Normal qorus-client.warn-deprecated-api: false does not apply to Qore and module APIs
1180 Normal oload -F and make-release-F do not throw an error if a workflow refers to step functions not included in the release, therefore these options allow for incomplete releases to be created
1162 Low qrest shows cryptic information for HTTP error responses which leads to confusion on the command line
1159 Low oview does not display patch tags when displaying code and configuration objects
1155 Normal RBAC permissions WORKFLOW-CONTROL and WORKFLOW-ORDER-CONTROL do not imply EDIT-WORKFLOW-DATA as originally designed
1151 Normal oracle bindOracleCollection crashes when collection expects elements of any of date types and string is provided
1139 Normal Don't display the modal detail window when clicking on workflow name in Step diagram
1132 Low the job version is not being reported in STOPPED-JOB ongoing alerts when the job cannot be started due to an initialization error
1103 Normal oload should not add out of date services to the validation list when validating dependencies
1089 Normal the REST API returns the "sys" tag key in several places (workflow functions, jobs, library source) instead of folding system tags into the parent object
1087 Normal specify the application of RBAC controls on all service calls using the omqservice variable in server code; also specify that all calls made with call_network_api*() are made with system permissions
1078 Normal oload does not validate jobs or services when affected constant library objects are loaded due to a bug in the validation dependency logic in oload
1076 Normal oload cannot list steps in the database; there is no way to see what steps are present in the system schema without starting the system and using the API or going directly to the DB by hand
1075 Normal when loading a new version of a library object dependencies for reset are not calculated correctly
1070 Normal oload cannot list user connections with the -L or –list options for offline user connection listing
1069 Normal oload does not support server refreshes consistently; there is no way to load objects without attempting any server refresh (omqmap is always reloaded), also partial refreshes are not useful
1068 Normal oload does not support deleting user connections; without this once a user connection is loaded it can never be deleted
1037 Low the failure reason for failing to start workflows does not appear in the monitoring log file when workflows cannot be autostarted
1035 Normal Sort service methods alphabetically
1021 High the enabled status of synthetic groups for workflows, services, and jobs is not persistent and disappears on Qorus restarts
988 Urgent it's not possible to log HTTP messages (headers & body) in Qorus which is required to debug HTTP-based interfaces (ex: SOAP)
933 Normal when starting workflows that create error definitions for the first time, and a workflow error has been created offline by oload, the workflow cannot be started and throws a spurious exception
904 Low update install.sh templates to not adjust the environment when not needed (ie qore / qorus / libqore /etc not installed in $OMQ_DIR/...)
881 High the enabled status of synthetic groups for workflows, services, and jobs is not persistent and disappears on Qorus restarts
863 Low empty remoteconnections files cause spurious errors in the monitoring log

Bug Fixes in Qore and Qore Modules

Issue ID Description
946 class copy() methods cannot declare type "object"
942 SqlUtil::AbstractTable::update() fails with correct arguments
940 Qore::sort_descending_stable() reverses elements even when unnecessary
934 memory leak in Qore::SQL::DatasourcePool when an error occurs in the first connection during initialization
915 Comparison operators for numbers and floats do not handle @nan@ correctly
908 wrong result from pow(10n, 1000)
906 xml module: the WSDL module is setting an incorrect charset value in the HTTP header
900 the RestHandler module does not handle requests with multiple continuous / chars correctly
899 the RestClient module creates invalid paths when the request path is empty and there is a contextual base path
891 Segfault when redeclaring global hash variable
859 RestHandler should return a standard error response with unknown root subclass names
855 using the remove or delete operators with internal hash keys that do not exists incorrectly creates the hash keys
852 is_writable() does not return correct value in all cases (effective vs. all groups list)
851 format_number() gives invalid output when the number of decimals is 0
841 when performing calls across a Program barrier, CALL-WITH-TYPE-ERRORS should only be thrown if the target program hosting the code does not allow the call
839 invalid handling of a 2 dimensional array with c++ new / delete [] causes a crash on FreeBSD with clang++
832 mysql module: duplicate columns are not renamed to xxx_n
831 pgsql module: duplicate columns are not renamed
830 sybase module: duplicate columns must be rewritten with *_n
828 oracle module: columns are not renamed when selecting rows (single or multiple-row list format)
822 parse_url() returns an invalid result with ".."
821 http_get_url_from_bind() does not enclose IPv6 addresses in square brackets
817 object member references are treated as constant expressions at parse time which can lead to crashes
813 Util::normalize_dir_windows() does not handle UNC paths correctly
811 Windows timezone format problem
796 qdx does not support escapes in single-quoted strings correctly
777 it's not possible to escape an escape character before a $ sign in a regex substitution expression
768 error in SqlUtil updating indexes when there are no source constraints
763 socket connection refused errors not reported on Windows
761 glob() for windows omits the leading directory path when matching files
734 when sending a chunked response with AbstractHttpRequestHandler, send errors must be reported to the stream object for logging
732 an exception must be thrown when SSL_write() returns 0 when sending socket data
714 ssh2 module: socket event polling is implemented only with select(2) and no bounds checking is performed on the socket descriptor leading to a crash
708 SqlUtil generates invalid SQL for Oracle when columns are given and also the wildcard is given in a select
691 when sending streamed chunked data and there is an I/O error on a Socket but there is data to be read, abort the transfer and allow the data to be read
689 errors in socket operations in the HTTPClient and Socket classes are sometimes reported in the wrong method
683 assigning an lvalue with an int restriction does not result in a runtime exception when an incompatible type is assigned
672 example sqlutil tool does not work properly with databases other than oracle
666 the Dir class incorrectly normalizes UNC paths by stripping the leading backslash on Windows
665 glob() for windows does not return paths in sorted order by default
664 glob() for windows fails on "\*" or "/*"
663 xml module: the WSDL module does not accept en empty list as the value a complex types when the list element is optional
660 glob() for windows returns paths beginning with "."
657 SqlUtil::uop_lower() and SqlUtil::uop_upper() do not allow nesting
653 broken %exec-class with CRLF line endings
645 SqlUtil::join_inner() has a bug where the condition is ignored
643 the Dir class does not work properly on Windows
636 Subtraction of numbers cannot be assigned
631 Windows outputs 3 digits of exponent with *sprintf() e/g output which violates C99
630 Precision of numbers is not handled correctly
627 I/O errors in reads in the ReadOnlyFile and File classes are silently ignored
626 Qore::TimeZone::constructor(string) is broken on Windows when used with an absolute path
624 SqlUtil::cop_seq() and SqlUtil::cop_seq_currval() are not implemented
618 parse_url() does not support Windows paths for file:// schemes
616 WebUtil::FileHandler can return a 204 No Content response with non-empty files
610 the Mapper module does not recognize "constant" tags assigned to a value that evaluates to boolean False
591 SQLStatement::describe() must grab the transaction lock
590 pgsql module: allow SQLStatement::describe() to work if result set information is available
589 oracle module: allow SQLStatement::describe() to work if result set information is available
584 Qore::Timezone::date(string) is broken and always returns a date in the current time zone instead of the time zone of the object
583 Coredump when wrong qore command is issued
582 hash update operators behave differently
576 HTTP_MESSAGE_RECEIVED socket event processing uses a hash in the event that is later modified causing a crash
574 Crash when a local variable is declared in a class member list
571 xml module: the SoapHandler module should return a usable URL in the address location for each service when returning WSDLs
569 HttpServer::parse_uri_query() implemented in HttpServerUtil should parse URI query strings without a key=value assuming key=True
563 sybase module: the freetds driver is sending strings with an extra space on the end
561 xml module: the WSDL module does not use element-specific namespace prefixes correctly when serializing SOAP data
560 xml module: the WSDL module may not resolve recursively-defined types with more than two levels of parent references correctly
542 sybase module: enforce the optimal-numbers option
541 mysql module: enforce the optimal-numbers option with values with trailing zeros after the decimal point to align with other drivers
538 namespace hierarchies are not indexed during parse time when added to already-committed namespaces which can lead to symbol resolution errors
537 oracle module: cached NTY info is used after a reconnect which causes OCI-21710 errors
534 still some numeric conversion issues with MySQL and TDS drivers
530 incorrect exception messages for HTTP chunked data errors in multithreaded contexts
527 recursive closures cause a memory leak
524 MysqlSqlUtil should require a size for the binary type
523 mysql module: binary types are not returned as binary objects but rather as strings
522 mysql module: time values need to be returned with a date component of 1970-01-01 instead of invalid 0000-00-00
521 the documentation fails to build when none of the yaml, xml, or json binary modules is installed
517 SqlUtil::cop_count() does not allow other operators as its arguments
512 sybase module: decimal columns are returned with an excessively-high precision which causes comparisons with the original number to fail
511 cop_value(0) triggers a bug in column operator handling
508 Qore::ReadOnlyFile::readTextFile() and Qore::ReadOnlyFile::readBinaryFile() should return an empty object when reading empty files
501 the Schema module does not allow providing Database options when creating schemas
500 SqlUtil::op_in() operator function is broken when used with a single argument of 0
499 SqlUtil does not support wildcards with join tables as documented
494 SqlUtil should allow for complex bind values required by some drivers to specify the types
481 Bitwise and logical operator precedence
480 lists not properly parsed
476 PgsqlSqlUtil does not compare types correctly because member types are not normalized
470 is_executable() returns NOTHING instead of False when called with non-existant path
468 xml module: the WSDL module does not always deserialize nil elements correctly
465 SQLStatement transaction lock errors
457 there are bugs converting relative date/time values to an integer
455 oracle module: the oracle module refuses to work with collections with size zero but this can be valid
437 relative date comparisons are incorrect
434 HTTPClient gets blocked waiting for empty string GET or POST response.
421 segfault on syntax error
416 identifiers in parenthesis used to dereference a hash or object are being interpreted as string literals instead of variable references as intended when used with %new-style
415 several basic PostgreSQL data types are not [correctly] supported in PgsqlSqlUtil
408 SqlUtil runs SQL with the AbstractTable lock held when generating upsert closures
404 the PgsqlSqlUtil module does not support the "varbit" type
403 mysql varbinary types are not supported correctly by MysqlSqlUtil
393 xml module: the WSDL module does not recognize the XSD namespace correctly when declared with the "xsd" prefix due to a bug in namespace prefix handling
389 the modulo operator is consistently misspelled as the modula operator
388 modulo of 2 literals fails with debugging builds
386 pgsql module: arbitrary-precision numeric values bound to numeric columns are bound with an incorrect scale value causing the digits behind the decimal place to be lost
385 the PgsqlSqlUtil module does not handle time columns correctly
381 update examples/test/qlib/Qorize/realWorldCase.qtest so that it can run if the xml module is not present
380 some on_error are not called when one of them throws
374 oracle module: retrieving number values in non-English locales causes numbers behind the decimal marker to be truncated
373 uuid module can't build
365 SqlUtil can generate invalid SQL with tables accessible through synonyms when used with join conditions
355 yaml module: plus and minus floating-point infinity values in canonically-serialized YAML strings are deserialized as 0
354 yaml module: arbitrary-precision numeric values in canonically-serialized YAML strings are not deserialized with the correct precision
343 xml module: the WSDL module does not support "integer" types as unbounded integers
341 xml module: the WSDL module does not support SOAP operations with either an empty input or an empty output message
336 Qore::HashListIterator and <hash>::contextIterator() should iterate a simple hash as if each key were assigned to a one-element list
333 persistent connections are not managed properly in the HttpServer module
330 Relational operators with mixed types
329 the regex operator with "\</td> <td>" and the global option makes an infinite loop
320 Lists nested in another lists
318 xml module: the WSDL module does not implement default namespace handling for unprefixed elements or types
312 sybase module: error messages sometimes have a trailing colon
308 there are typos in the HttpServer module in a logging statement so some HTTP errors are not logged proprely
307 xml module: the WSDL module cannot handle namespace prefixes temporarily overridden in schema definitions
292 the exec-class parse directive does not enforce checks for classes with unimplemented abstract methods
271 time components of absolute date/time values before the UNIX epoch are returned with invalid values
270 pgsql module: intervals retrieved from the DB are not justified for hours and minutes
268 pgsql module: CHAR columns are returned with invalid internal string sizes
267 pgsql module: fix retrieving numeric values that cannot be represented as an integer
250 Subtracting an absolute date from a relative date
249 date arithmetic does not normalize values between hour and minute values
243 Invalid relative date arithmetic
242 json module: typo in exception message for invalid JSON-RPC messages
225 the RestClient module will fail with an obscure error message if no serialization modules can be found
223 there are memory errors in managing Program feature lists as shown by valgrind
217 Qore::Program::importGlobalVariable() does not check the pending variable list for a variable with the same name which could lead to a memory leak
216 imported global variables are added to the pending list but to the committed index and so can cause memory errors if a parse rollback action is executed
215 inconsistent push operator behaviour
186 Non ASCII symbols in error message
183 Inconsistent naming in CsvAbstractIterator versus CsvUtil::AbstractCsvWriter
168 qore can set the wrong default zone offset for time zones
161 qdx does not convert Qore simple namespace definitions followed by a semicolon to a format understood by doxygen
131 sybase module: auto-reconnect is not working; once the server connection is interrupted the connection is no good until it's closed
118 json module: the JsonRpcHandler module throws a confusing error with invalid JSON-RPC requests
117 the RestClient module module is sometimes inserting multiple leading "/"s to the request URI
98 PgsqlSqlUtil does not report integer columns correctly
97 xml module: elements that are empty result in deserialization errors even if the element is supplied (and empty)
89 GetOpt::parse(list) can modify the read-only list argument resulting in a violation of call-by-value and copy-on-write semantics
87 xml module: the WSDL module cannot handle complexType definitions with a sequence of choice and element elements
86 xml module: the WSDL module does not handle multiple elements with the same name in different namespaces correctly
85 xml module: the WSDL module does not always resolve all complexTypes and elements correctly
84 xml module: the WSDL module does not handle simpleContent definitions in a complexType declaration
83 xml module: the WSDL module does not handle namespace prefixes defined directly in schema definitions if the schema is not imported
82 xml module: WSDLLib::getFile() can throw a confusing exception if passed a directory or empty file
80 Qore::ReadOnlyFile::readTextFile() and Qore::ReadOnlyFile::readBinaryFile() return no value (contrary to the declared return type) if a directory is passed
73 there is a memory leak when assigning a closure that captures "self" to an object member
68 oracle module: NUMBER with very large exponent value can lead to ORA-01406
62 trim operator returns int?
58 the Qore parser allows for whitespace between operator characters like += (+ =), which doesn't make sense and makes it harder to parse correctly
46 calling HttpServer::addListener() with an integer argument causes a UNIX socket to be opened instead of a wildcard listener on the given port number
45 cannot refer to object members in base class constructor arguments even though members are initialized first
44 Memory leak concerning const closures
42 Unpredictable order of member initialization
38 Crash when referring to self during evaluation of member initializer of a closure
37 Memory leak if self used during member initialization
36 xml module: the WSDL module cannot handle WSDLs that use elements that refer to other elements (ref attribute)
33 Precedence of the comma operator
32 Assignment operator precedence
30 Inconsistent meaning of empty curly braces
28 Catch clause ignores variable type
22 qore build breaks with newer ssl due to missing EVP_sha()
21 xml module: the WSDL module cannot parse WSDLs with attribute definitions in complexType descriptions, furthermore these cannot be serialized or deserialized
20 xml module: the WSDL module fails to merge input namespace prefixes when importing external schema definitions
19 xml module: the WSDL module fails to parse wsdls with multiple schema imports
18 ssh2 module: SftpPoller keeps polling without sleep when files are not deleted.
16 there is a memory leak in the Program::parseRollback() call when there are pending unresolved global variables
15 call references to local non-static methods are not created with the current object contained in the reference; when the objects are used outside the class a crash occurs
12 there is a bug handling closure-bound local variables when closures are created in the background operator expression
9 while decompressing certain input, the bzip2 library can request a buffer size that cannot be handled by the bzip2 library which is not handled by qore and causes a crash
4 runtime exception are sometimes reported at the wrong source location
2 Qore blocks SIGCHLD by default on UNIX platforms which causes problems with system() and execvp() when waiting on child processes (or when children wait on grandchildren)
1 oracle module: selects with more columns with the same name can lead to data multiplication