Release Notes - Axis2/C Version 2.0.0

Version 2.0.0 is a major release that includes 17 years of accumulated fixes and improvements since version 1.6.0 (2009). This release resolves over 115 issues from the Apache Jira issue tracker.

Bug Fixes

IssueSummary
AXIS2C-787axutil_qname_to_string serialize with the prefix
AXIS2C-936On incomplete response message, the client receives response data for the elements up to the error, but no indication of the error
AXIS2C-1001Axis2/C Stress tests fail
AXIS2C-1005dual clients report an error in log
AXIS2C-1153memory leak in code generated by WSDL2C, op not freed in axis2_stub_populate_services_for_myService
AXIS2C-1182adb_XXXX_add_nodes(_XXXX, env, _Y) FAILURES
AXIS2C-1192axis2c dual sample clients give a memory corruption in consecutive execution
AXIS2C-1197CodeGenerationException thrown without info about input files problem
AXIS2C-1204memory leak for In-Only message with no parameter
AXIS2C-1214memory leak when server returns an error
AXIS2C-1217multiple memory leaks on the client side
AXIS2C-1222Axis2/C AXIOM libxml2 parser frees the IO context before calling the AXIS2_CLOSE_INPUT_CALLBACK
AXIS2C-1224Error in WSDL2C while generating stubs in C
AXIS2C-1227engine not freed when server return an error
AXIS2C-1236Memory issues in Axis2/C service client
AXIS2C-1239Build failure in freebsd
AXIS2C-1258memory leaks in when using tls
AXIS2C-1261When several fire and forget sends are done using svc client it segfaults
AXIS2C-1262Leaking a axiom_soap_envelope_t in axiom_soap_builder_create error path
AXIS2C-1275Axiom default namespace serialization and deserialization are not compatible
AXIS2C-1289Incorrect deserialization when the first child is an empty element
AXIS2C-1294Same handler inserted in two places
AXIS2C-1312axis2_http_client_connect_ssl_host() cannot make an https connection through http proxy when the proxy requires authentication
AXIS2C-1338“make install” overly eager
AXIS2C-1339Wrong unique class names generation
AXIS2C-1342When enable “persistOperationContext” parameter in axis2.xml, server crashes
AXIS2C-1353Externally passed configuration context and service should not be freed within service client
AXIS2C-1355Changing service client options between messages
AXIS2C-1367sprintf format I32d not supported by Visual C++ 6.0
AXIS2C-1373Name matching fails with choice element
AXIS2C-1374adb generated code has warnings
AXIS2C-1376Lots of memory leak in axis2/c library
AXIS2C-1378operation name is corrupted by the time it reaches dispatcher
AXIS2C-1379typedef done too late in special cases - CADBBeanTemplateHeader.xsl
AXIS2C-1388Memory leak AXIS2C
AXIS2C-1390When creating the build.sh script for C-language the flatten-file option is not properly used
AXIS2C-1401WSDL2C produces to WSDL2JAVA incompatible ADB-Binding for WSDL file
AXIS2C-1403Code generation having problem in Windows
AXIS2C-1404MTOM does not work with CGI installation of Axis
AXIS2C-1408axis2_dep_engine_load_client exits with the env status to AXIS2FAILURE
AXIS2C-1411thread_unix and thread_windows inconsistency as for axutil_thread_exit
AXIS2C-1421adb-bindings for typeless parameter only gives access to the first element if passed an array
AXIS2C-1447axutil_hash_free() should free using ht->env
AXIS2C-1465crash in axis2_http_sender_configure_proxy_auth
AXIS2C-1475Bad interaction between AXIS2_XML_PARSER_TYPE_BUFFER, axiom_soap_body_has_fault and XML escape sequence
AXIS2C-1482excessive retrying by client if server busy
AXIS2C-1486ADB generated code generates memory leak
AXIS2C-1490axiom_soap_builder_construct_node should check that the Header element is in a Soap namespace
AXIS2C-1491memory leak at axis2_dep_engine_get_svc_dir
AXIS2C-1492maximum value of xsd:unsignedInt cannot exceed maximum value of signed integer (2147483647)
AXIS2C-1495An error found while receiving www-form-urlencoded parameter values sent by POST method in REST style
AXIS2C-1499double-freeing in axis2_http_worker_process_request()
AXIS2C-15063 bugs in C code generation (invalid characters in c tokens, cyclic inclusion and uppercase-lowercase mismatch)
AXIS2C-1507SOAP Exception fields not available
AXIS2C-1508function axutil_strtol in util/src/types.c can't convert negative number from string
AXIS2C-1509The response message from axis2/c has not charSet in the ContentType
AXIS2C-1513C-language using unwrapped code does not compile
AXIS2C-1515WSDL2C: generated code in axis2_svc_skel_invoke() should not set error on NULL return value
AXIS2C-1516code generated from WSDL2C is not compiling
AXIS2C-1519WSDL2C with xml mapping generates client code with memory leak
AXIS2C-1520Unknown Error when using diacritic marks in XML request element value
AXIS2C-1527Local to UTC time calculation wrong
AXIS2C-1529wsdl2c generates skeleton code with memoryleak inside
AXIS2C-1531Last POST char truncated
AXIS2C-1532Last POST parameter is skipped when it has no value
AXIS2C-1533Redundant redeclarations and undefined macros
AXIS2C-1534XML writers handle errors differently, add char offset in case of errors
AXIS2C-1535Getting HTTP Status Code as 0 instead of 408
AXIS2C-1536guththila stucked with empty XML comments
AXIS2C-1537HTTP server crashes during shutdown
AXIS2C-1539Initialization/finalization of libxml2 in wrong place
AXIS2C-1540axis2/c does not build on Mac OS X
AXIS2C-1542Memory leak in axis2c generated code
AXIS2C-1546Logging of long input/output messages contains garbage data on Windows
AXIS2C-1548WSDL2C generates improper code
AXIS2C-1550HTTPS using axis2c.xml or embedded axis2 lib does not work with SSL authentication
AXIS2C-1551Crash when reusing svc_client with non-blocking call
AXIS2C-1555Proxy authentication not working when using HTTPS
AXIS2C-1559axiom_node_to_string() doesn't return elements containing special latin characters
AXIS2C-1564axutil_uri_parse_string() only parses URLs, not URIs
AXIS2C-1566Client sends cookie only just after server sends Set-Cookie header
AXIS2C-1567F_OK not defined with MacOSX builds
AXIS2C-1568In keep alive mode, client reuses a connection even if the connection has already closed
AXIS2C-1573Generated code failed to compile when the type names in WSDL has ‘.’
AXIS2C-1574Generated code has duplicate property_Type definitions
AXIS2C-1575Generated code has undefined variables qname_uri and qname_prefix
AXIS2C-1579Wrong xsi:type in the response
AXIS2C-1580Generated code crashed when it deserializes ‘any’ type
AXIS2C-1581Generated code creates bad action in multi-parts request
AXIS2C-1584Asynchronous call crashes and memory leaks
AXIS2C-1586Memory leak in axis2_http_worker_process_request (http_worker.c)
AXIS2C-1590axiom_attribute reference counting broken
AXIS2C-1591axiom_element_add_attribute and duplicate names
AXIS2C-1593Strange handling of xsi:type in requests
AXIS2C-1595Memory leak in http_worker.c: array_list allocated by axutil_tokenize()
AXIS2C-1596Memory leaks in http_transport_utils.c
AXIS2C-1605sockets are being left in CLOSE_WAIT state by client when using SSL
AXIS2C-1608Segmentation fault when HTTP request includes multiple cookies in a cookie HTTP-header
AXIS2C-1609memory leak in axutil_hash_first() / axutil_hash_next() in generated xml deserializer code
AXIS2C-1613No error is set during deserialization when an unexpected NULL value is return
AXIS2C-1614Stop deserialization process when a required attribute is missing
AXIS2C-1616Conflict with data type names
AXIS2C-1617Fixes for memory leaks in generated code
AXIS2C-1618Error by reading SSL-stream
AXIS2C-1622echo_rest sample seg fault with libcurl
AXIS2C-1626query string not passed when http get rest without soap
AXIS2C-1632Patch to fix Stability issues and memory leaks on hash keys
AXIS2C-1635Fix for various memleaks & corruptions
AXIS2C-1651Static-WSDL retrieval does strange string operation
AXIS2C-1659Segmentation fault in axutil_hash_find_entry
AXIS2C-1662mod_log may corrupt the node list (on a chunked fault)
AXIS2C-1664Memory leak when replacing value of item in hash table
AXIS2C-1669Misc patches for mem leak, REST Call, SSL, XPATH
AXIS2C-1670Contents of every file in current directory read during axis2_stub_create_with_endpoint_ref_and_client_home()
AXIS2C-1672Build error on MacOSX
AXIS2C-1685Unable to serialize/deserialize object, wrong element type or null node
AXIS2C-1696Document GTest-related build requirements
AXIS2C-1699Wrong C code generation for sequence types
AXIS2C-1700Enable SSL/TLS peer name validation by default
AXIS2C-1701Memory leak on duplicate XML namespace declaration
AXIS2C-1702Memory leak in http transport

New Features

IssueSummary
AXIS2C-677Clone method required for axiom_node
AXIS2C-1181Unable to support MTOM for code generation with adb
AXIS2C-1383Ability to select the interface(s) that the axis2_http_server listens at for http requests
AXIS2C-1484Allow servers to bind to custom address only instead of INADDR_ANY

Improvements

IssueSummary
AXIS2C-1187HTTP Authentication related code should be moved to a separate method
AXIS2C-1328Implementing new transport to optimize Axis2/C when used in a multi-threading client environment
AXIS2C-1330Prevent name clashes when using multiple services that happen to have identical named items
AXIS2C-1371Axis should log libcurl debug information
AXIS2C-1480Improve performance of reading HTTP headers
AXIS2C-1494Response received from the server is partially erased when non-ascii characters present in xml tags
AXIS2C-1565CPU utilization is 100% for SOAP queries for synchronous calls
AXIS2C-1612Custom HTTP HEADER USER AGENT
AXIS2C-1636Enhanced REST support for Axis2/C
AXIS2C-1645JSON support for Axis2/C
AXIS2C-1666base64 ignore some whitespaces
AXIS2C-1706SNI support

Tasks

IssueSummary
AXIS2C-934Organize Test Cases
AXIS2C-1419Fixing memory leak
AXIS2C-1679Support Multipart soap in code generation tool
AXIS2C-1707Add HTTP/2 transport support for JSON requests
AXIS2C-1708Modern security hardening

Removed Features

The following features have been removed in version 2.0.0 as part of security hardening (AXIS2C-1708) and deprecation cleanup:

  • NTLM Authentication (--enable-heimdal, --enable-libntlm): Removed due to critical security vulnerabilities including pass-the-hash attacks, NTLM relay attacks, and weak cryptography. Microsoft is deprecating NTLM in Windows systems. Use Kerberos, OAuth 2.0, or mutual TLS instead.

  • TCP Transport (--enable-tcp): Obsolete transport that lacks HTTP semantics (no Content-Length, chunked encoding, headers, status codes). Incompatible with TLS (requires HTTP for ALPN negotiation) and web infrastructure (proxies, load balancers, firewalls expect HTTP). Use HTTP/2 instead, which provides multiplexing benefits with full HTTP semantics.

  • CGI Transport (--enable-cgi): Obsolete deployment model with security concerns and performance overhead of process-per-request. Use mod_axis2 with Apache httpd instead.

  • libcurl HTTP Backend (--enable-libcurl): Redundant with native HTTP client implementation. MTOM was broken with libcurl (AXIS2C-1270). HTTP/2 support uses nghttp2 instead.

  • AMQP Transport (--with-qpid): Unmaintained since 2010. Apache Qpid C++ is in maintenance mode. Modern messaging systems use REST APIs, gRPC, or native AMQP 1.0 clients. (AXIS2C-1641)

  • IIS/ISAPI Integration: Unmaintained since 2009. Windows users should use WSL2 with Apache httpd instead.

Upgrade Notes

Breaking Changes

  1. SSL/TLS Peer Validation: SSL/TLS peer name validation is now enabled by default (AXIS2C-1700). Applications that previously connected to servers with invalid certificates will now fail. To restore the old behavior (not recommended), disable peer verification in your SSL configuration.

  2. NTLM Authentication Removed: Applications using NTLM authentication must migrate to Kerberos (for Windows/AD environments), OAuth 2.0/OpenID Connect (for modern applications), or mutual TLS (for service-to-service communication).

  3. TCP Transport Removed: Applications using raw TCP transport (AXIS2_TRANSPORT_TCP) must migrate to HTTP/1.1 or HTTP/2 transport. HTTP/2 provides similar multiplexing benefits with full HTTP semantics and TLS support.

  4. CGI Deployment Removed: Applications deployed via CGI must migrate to mod_axis2 with Apache httpd or the standalone axis2_http_server.

  5. libcurl Backend Removed: Applications that explicitly enabled libcurl (--enable-libcurl) will now use the native HTTP client. This should be transparent for most use cases.

  6. AMQP Transport Removed: Applications using AMQP transport must migrate to alternative messaging solutions or REST-based APIs.

  7. IIS Support Removed: Applications using IIS integration must migrate to Apache httpd (running natively or via WSL2 on Windows).

New Dependencies

  • json-c (optional): Required for JSON support. Install via apt install libjson-c-dev on Debian/Ubuntu.
  • nghttp2 (optional): Required for HTTP/2 support. Install via apt install libnghttp2-dev on Debian/Ubuntu.