Description
For certain protocol properties, namely those represented by non-primitive data structures, ProtocolStack.printProtocolSpecAsXML() doesn't print out the correct values.
For example, the following was output from a call to the AS7 CLI operation:
[standalone@localhost:9999 /] /subsystem=jgroups/stack=tcp:export-native-configuration { "outcome" => "success", "result" => "<config> <TCP bind_addr=\"/127.0.0.1\" oob_thread_pool_keep_alive_time=\"1000\" timer_keep_alive_time=\"5000\" external_port=\"0\" oob_thread_pool_enabled=\"true\" max_bundle_size=\"64000\" diagnostics_ttl=\"8\" receive_on_all_interfaces=\"false\" thread_pool_min_threads=\"20\" thread_pool_keep_alive_time=\"5000\" thread_pool_max_threads=\"200\" enable_diagnostics=\"true\" send_buf_size=\"640000\" conn_expire_time=\"0\" oob_thread_pool_queue_max_size=\"500\" enable_bundling=\"false\" thread_pool_queue_enabled=\"true\" timer_rejection_policy=\"run\" diagnostics_port=\"7500\" oob_thread_pool_max_threads=\"200\" wheel_size=\"200\" logical_addr_cache_max_size=\"500\" reaper_interval=\"0\" sock_conn_timeout=\"300\" send_queue_size=\"10000\" tick_time=\"50\" logical_addr_cache_expiration=\"120000\" thread_pool_rejection_policy=\"discard\" oob_thread_pool_min_threads=\"20\" port_range=\"50\" stats=\"true\" peer_addr_read_timeout=\"1000\" tcp_nodelay=\"true\" id=\"22\" diagnostics_addr=\"/ff0e:0:0:0:0:0:e000:4b4b\" oob_thread_pool_rejection_policy=\"discard\" bind_port=\"7600\" loopback=\"true\" linger=\"-1\" oob_thread_pool_queue_enabled=\"false\" name=\"TCP\" enable_unicast_bundling=\"false\" thread_pool_enabled=\"true\" thread_naming_pattern=\"cl\" timer_max_threads=\"10\" timer_queue_max_size=\"500\" use_send_queues=\"false\" discard_incompatible_packets=\"true\" ergonomics=\"true\" singleton_name=\"tcp\" bundler_capacity=\"200000\" max_bundle_timeout=\"30\" bind_interface_str=\"\" timer_min_threads=\"4\" log_discard_msgs=\"true\" thread_pool_queue_max_size=\"1000\" bundler_type=\"new\" timer_type=\"new\" recv_buf_size=\"20000000\" /> <TCPPING num_initial_members=\"10\" port_range=\"1\" stats=\"true\" ergonomics=\"true\" num_initial_srv_members=\"0\" id=\"10\" max_dynamic_hosts=\"100\" initial_hosts=\"java.util.Collections$UnmodifiableList\" return_entire_cache=\"false\" break_on_coord_rsp=\"true\" stagger_timeout=\"0\" name=\"TCPPING\" timeout=\"3000\" /> <MERGE2 id=\"0\" stats=\"true\" merge_fast=\"true\" name=\"MERGE2\" inconsistent_view_threshold=\"1\" min_interval=\"20000\" ergonomics=\"true\" merge_fast_delay=\"1000\" max_interval=\"100000\" /> <FD_SOCK bind_addr=\"/127.0.0.1\" external_port=\"0\" port_range=\"50\" stats=\"true\" suspect_msg_interval=\"5000\" client_bind_port=\"0\" ergonomics=\"true\" num_tries=\"3\" id=\"3\" get_cache_timeout=\"1000\" sock_conn_timeout=\"1000\" bind_interface_str=\"\" name=\"FD_SOCK\" keep_alive=\"true\" start_port=\"57600\" /> <FD id=\"2\" max_tries=\"5\" stats=\"true\" name=\"FD\" ergonomics=\"true\" timeout=\"6000\" /> <VERIFY_SUSPECT id=\"13\" bind_addr=\"/127.0.0.1\" bind_interface_str=\"\" stats=\"true\" name=\"VERIFY_SUSPECT\" num_msgs=\"1\" ergonomics=\"true\" use_icmp=\"false\" timeout=\"1500\" /> <BARRIER id=\"0\" max_close_time=\"60000\" stats=\"true\" name=\"BARRIER\" ergonomics=\"true\" /> <NAKACK use_mcast_xmit_req=\"false\" use_mcast_xmit=\"false\" max_msg_batch_size=\"100\" xmit_from_random_member=\"false\" stats=\"true\" xmit_table_max_compaction_time=\"600000\" retransmit_timeouts=\"300,600,1200,2400,4800\" xmit_stagger_timeout=\"200\" exponential_backoff=\"300\" log_not_found_msgs=\"true\" ergonomics=\"true\" discard_delivered_msgs=\"true\" print_stability_history_on_failed_xmit=\"false\" id=\"15\" max_rebroadcast_timeout=\"2000\" xmit_table_msgs_per_row=\"10000\" xmit_table_num_rows=\"5\" name=\"NAKACK\" log_discard_msgs=\"true\" xmit_table_resize_factor=\"1.2\" use_range_based_retransmitter=\"true\" /> <UNICAST2 max_retransmit_time=\"60000\" max_bytes=\"1000000\" max_msg_batch_size=\"50000\" stats=\"true\" xmit_table_max_compaction_time=\"600000\" exponential_backoff=\"300\" max_stable_msgs=\"5\" ergonomics=\"true\" stable_interval=\"5000\" id=\"40\" conn_expiry_timeout=\"60000\" xmit_table_msgs_per_row=\"10000\" xmit_table_automatic_purging=\"true\" xmit_table_num_rows=\"5\" name=\"UNICAST2\" timeout=\"300,600,1200,2400,3600\" xmit_table_resize_factor=\"1.2\" use_range_based_retransmitter=\"true\" /> <STABLE id=\"16\" desired_avg_gossip=\"50000\" max_bytes=\"400000\" stats=\"true\" cap=\"0.1\" name=\"STABLE\" ergonomics=\"true\" stability_delay=\"1000\" /> <GMS print_local_addr=\"true\" stats=\"true\" max_bundling_time=\"50\" log_collect_msgs=\"true\" resume_task_timeout=\"7500\" log_view_warnings=\"true\" num_prev_views=\"20\" ergonomics=\"true\" print_physical_addrs=\"true\" use_flush_if_present=\"true\" merge_timeout=\"5000\" id=\"14\" num_prev_mbrs=\"50\" leave_timeout=\"5000\" view_bundling=\"true\" name=\"GMS\" join_timeout=\"3000\" handle_concurrent_startup=\"true\" view_ack_collection_timeout=\"5000\" /> <UFC id=\"45\" max_block_time=\"5000\" max_credits=\"2000000\" stats=\"true\" ignore_synchronous_response=\"true\" min_credits=\"800000\" name=\"UFC\" min_threshold=\"0.4\" ergonomics=\"true\" /> <MFC id=\"44\" max_block_time=\"5000\" max_credits=\"2000000\" stats=\"true\" ignore_synchronous_response=\"true\" min_credits=\"800000\" name=\"MFC\" min_threshold=\"0.4\" ergonomics=\"true\" /> <FRAG2 id=\"5\" frag_size=\"60000\" stats=\"true\" name=\"FRAG2\" ergonomics=\"true\" /> <RSVP id=\"55\" stats=\"true\" name=\"RSVP\" resend_interval=\"500\" throw_exception_on_timeout=\"true\" ergonomics=\"true\" ack_on_delivery=\"false\" timeout=\"60000\" /> </config>" }
Note that the values of TCPPING.initial_hosts are not printed out correctly.