changeset 417:aadea6a59376 dispose

create MetaCodeSegment use reflection
author sugi
date Tue, 15 Jul 2014 00:06:10 +0900
parents 6508ed6ea6a6
children a269a019f5f8
files .settings/org.eclipse.jdt.core.prefs src/main/java/alice/codesegment/InputDataSegment.java src/main/java/alice/daemon/Connection.java src/main/java/alice/daemon/IncomingTcpConnection.java src/main/java/alice/datasegment/Receiver.java src/main/java/alice/test/reflection/CSTemplate.java src/main/java/alice/test/reflection/DisposeManager.java src/main/java/alice/test/reflection/DisposeManagerTest.java src/main/java/alice/test/reflection/MetaCodeSegment.java
diffstat 9 files changed, 627 insertions(+), 307 deletions(-) [+]
line wrap: on
line diff
--- a/.settings/org.eclipse.jdt.core.prefs	Wed Jul 09 03:45:14 2014 +0900
+++ b/.settings/org.eclipse.jdt.core.prefs	Tue Jul 15 00:06:10 2014 +0900
@@ -1,13 +1,295 @@
-#
-#Mon Jul 07 16:33:01 JST 2014
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 eclipse.preferences.version=1
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
 org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=80
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=true
+org.eclipse.jdt.core.formatter.join_wrapped_lines=true
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=80
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=space
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
--- a/src/main/java/alice/codesegment/InputDataSegment.java	Wed Jul 09 03:45:14 2014 +0900
+++ b/src/main/java/alice/codesegment/InputDataSegment.java	Tue Jul 15 00:06:10 2014 +0900
@@ -16,101 +16,101 @@
  *
  */
 public class InputDataSegment {
-	
-	public CodeSegment cs;
-	private AtomicInteger count = new AtomicInteger(1); // 1 for no input data segments
-	private AtomicInteger keyCount = new AtomicInteger(0); // number of DataSegments
-	public InputDataSegment(CodeSegment cs) {
-		this.cs = cs;
-	}
-	
-	public void init(){
-		count = new AtomicInteger(1);
-		keyCount = new AtomicInteger(0);
-	}
-	
-	public void quickPeek(Receiver receiver) {
-		cs.list.add(receiver);
-		if (receiver.managerKey==null){
-			DataSegment.getLocal().peek(receiver, cs);
-		} else {
-			DataSegment.get(receiver.managerKey).quickPeek(receiver ,cs);
-		}
-	}
-	
-	public void quickTake(Receiver receiver) {
-		cs.list.add(receiver);
-		if (receiver.managerKey==null){
-			DataSegment.getLocal().quickTake(receiver, cs);
-		} else {
-			DataSegment.get(receiver.managerKey).quickTake(receiver ,cs);
-		}
-	}
-	
-	public void peek(Receiver receiver) {
-		cs.list.add(receiver);
-		if (receiver.managerKey==null){
-			DataSegment.getLocal().peek(receiver, cs);
-		} else {
-			DataSegment.get(receiver.managerKey).peek(receiver, cs);
-		}
-	}
+
+    public CodeSegment cs;
+    private AtomicInteger count = new AtomicInteger(1); // 1 for no input data segments
+    private AtomicInteger keyCount = new AtomicInteger(0); // number of DataSegments
+    public InputDataSegment(CodeSegment cs) {
+        this.cs = cs;
+    }
+
+    public void init(){
+        count = new AtomicInteger(1);
+        keyCount = new AtomicInteger(0);
+    }
+
+    public void quickPeek(Receiver receiver) {
+        cs.list.add(receiver);
+        if (receiver.managerKey==null){
+            DataSegment.getLocal().peek(receiver, cs);
+        } else {
+            DataSegment.get(receiver.managerKey).quickPeek(receiver ,cs);
+        }
+    }
+
+    public void quickTake(Receiver receiver) {
+        cs.list.add(receiver);
+        if (receiver.managerKey==null){
+            DataSegment.getLocal().quickTake(receiver, cs);
+        } else {
+            DataSegment.get(receiver.managerKey).quickTake(receiver ,cs);
+        }
+    }
+
+    public void peek(Receiver receiver) {
+        cs.list.add(receiver);
+        if (receiver.managerKey==null){
+            DataSegment.getLocal().peek(receiver, cs);
+        } else {
+            DataSegment.get(receiver.managerKey).peek(receiver, cs);
+        }
+    }
+
 
-	
-	public void take(Receiver receiver) {
-		cs.list.add(receiver);
-		if (receiver.managerKey==null){
-			DataSegment.getLocal().take(receiver, cs);
-		} else {
-			DataSegment.get(receiver.managerKey).take(receiver, cs);
-		}
-	}
+    public void take(Receiver receiver) {
+        cs.list.add(receiver);
+        if (receiver.managerKey==null){
+            DataSegment.getLocal().take(receiver, cs);
+        } else {
+            DataSegment.get(receiver.managerKey).take(receiver, cs);
+        }
+    }
 
-	public void reply(Receiver receiver, Command reply) {
-		receiver.index = reply.index;
-		receiver.from = reply.reverseKey;
-		if (reply.reverseKey==null){
-			receiver.setData(new ReceiveRemoteData(reply.val));
-		} else if (!reply.reverseKey.equals("local")) {
-			receiver.setData(new ReceiveRemoteData(reply.val));
-		} else {
-			receiver.setData(new ReceiveLocalData(reply.obj));			
-		}
-		receive();
-	}
+    public void reply(Receiver receiver, Command reply) {
+        receiver.index = reply.index;
+        receiver.from = reply.reverseKey;
+        if (reply.reverseKey==null){
+            receiver.setData(new ReceiveRemoteData(reply.val));
+        } else if (!reply.reverseKey.equals("local")) {
+            receiver.setData(new ReceiveRemoteData(reply.val));
+        } else {
+            receiver.setData(new ReceiveLocalData(reply.obj));			
+        }
+        receive();
+    }
+
+    public void register() {
+        count.getAndIncrement();
+        keyCount.getAndIncrement();
+    }
 
-	public void register() {
-		count.getAndIncrement();
-		keyCount.getAndIncrement();
-	}
-	
-	public void setKey() {
-		if (keyCount.decrementAndGet() == 0) {
-			receive();
-		}
-	}
-	
-	public void receive() {
-		if (count.decrementAndGet() == 0) {
-			CodeSegmentManager.submit(cs);
-		}
-	}
-	
-	/**
-	 * InputDataSegment factory
-	 * @param type PEEK or TAKE
-	 * @return Receiver of DataSegment reply 
-	 */
-	public Receiver create(CommandType type) {
-		return new Receiver(this, type);
-	}
+    public void setKey() {
+        if (keyCount.decrementAndGet() == 0) {
+            receive();
+        }
+    }
+
+    public void receive() {
+        if (count.decrementAndGet() == 0) {
+            CodeSegmentManager.submit(cs);
+        }
+    }
 
-	public void recommand(Receiver receiver) {
-		// TODO why only local?
-		DataSegment.getLocal().recommand(receiver, cs);
-	}
-	
-	public void setCounter(int cnt){
-		count.set(cnt);
-	}
+    /**
+     * InputDataSegment factory
+     * @param type PEEK or TAKE
+     * @return Receiver of DataSegment reply 
+     */
+    public Receiver create(CommandType type) {
+        return new Receiver(this, type);
+    }
+
+    public void recommand(Receiver receiver) {
+        // TODO why only local?
+        DataSegment.getLocal().recommand(receiver, cs);
+    }
+
+    public void setCounter(int cnt){
+        count.set(cnt);
+    }
 }
--- a/src/main/java/alice/daemon/Connection.java	Wed Jul 09 03:45:14 2014 +0900
+++ b/src/main/java/alice/daemon/Connection.java	Tue Jul 15 00:06:10 2014 +0900
@@ -3,10 +3,12 @@
 import java.io.IOException;
 import java.net.Socket;
 import java.nio.ByteBuffer;
+import java.nio.channels.ClosedChannelException;
 import java.util.concurrent.LinkedBlockingQueue;
 
 import alice.codesegment.SingletonMessage;
 import alice.datasegment.Command;
+import alice.datasegment.DataSegment;
 
 public class Connection {
 
@@ -16,7 +18,7 @@
 	public Connection(Socket socket) {
 		this.socket = socket;
 	}
-	
+
 	public Connection() {}
 
 	public void sendCommand(Command cmd) {
@@ -26,10 +28,10 @@
 			e.printStackTrace();
 		}
 	}
-	
+
 	public String getInfoString() {
 		return socket.getInetAddress().getHostName()
-			   + ":" + socket.getPort();
+				+ ":" + socket.getPort();
 	}
 
 	public synchronized void write(Command cmd) {	
@@ -40,19 +42,31 @@
 			while (buffer.hasRemaining()) {
 				socket.getChannel().write(buffer);
 			}
+		} catch (ClosedChannelException e) {
+			// when put dataSegment to remote if connection close this dataSemgent put.
+			putConnectionInfo();
+
 		} catch (IOException e) {
 			e.printStackTrace();
 		}
 	}
-	
+
 	public void close(){
 		try {
 			socket.shutdownOutput();
 			socket.shutdownInput();
 			socket.close();
+		} catch (ClosedChannelException e) {
+			putConnectionInfo();
 		} catch (IOException e) {
 			e.printStackTrace();
 		}
+
+	}
+	
+	public void putConnectionInfo() {
+		ConnectionInfo c = new ConnectionInfo(socket.getInetAddress().toString() ,socket.getPort());
+		DataSegment.getLocal().put("disconnect", c);
 		
 	}
 }
--- a/src/main/java/alice/daemon/IncomingTcpConnection.java	Wed Jul 09 03:45:14 2014 +0900
+++ b/src/main/java/alice/daemon/IncomingTcpConnection.java	Tue Jul 15 00:06:10 2014 +0900
@@ -88,6 +88,7 @@
 					break;
 				}
 			} catch (ClosedChannelException e) {
+				connection.putConnectionInfo();
 				connection.sendCommand(new Command(CommandType.CLOSE, null, null, null, 0, 0, null, null, null));
 				return;
 			} catch (EOFException e) {
--- a/src/main/java/alice/datasegment/Receiver.java	Wed Jul 09 03:45:14 2014 +0900
+++ b/src/main/java/alice/datasegment/Receiver.java	Tue Jul 15 00:06:10 2014 +0900
@@ -9,104 +9,104 @@
  *
  */
 public class Receiver {
-	private ReceiverData data = new ReceiveRemoteData();
-	public InputDataSegment ids;
-	public int index;
-	public String from;
-	public CommandType type;
-	public String managerKey;
-	public String key;
+    private ReceiverData data = new ReceiveRemoteData();
+    public InputDataSegment ids;
+    public int index;
+    public String from;
+    public CommandType type;
+    public String managerKey;
+    public String key;
+
+    public Receiver(InputDataSegment ids, CommandType type) {
+        this.ids = ids;
+        this.type = type;
+        ids.register();
+
+    }
+
+    public void setQuickKey(String managerKey, String key){
+        setQuickKey(managerKey, key, 0);
+    }
 
-	public Receiver(InputDataSegment ids, CommandType type) {
-		this.ids = ids;
-		this.type = type;
-		ids.register();
-		
-	}
-	
-	public void setQuickKey(String managerKey, String key){
-		setQuickKey(managerKey, key, 0);
-	}
-	
-	public void setQuickKey(String managerKey, String key, int index) {
-		this.managerKey = managerKey;
-		this.key = key;
-		switch (type) {
-		case PEEK:
-			ids.quickPeek(this);
-			break;
-		case TAKE:
-			ids.quickTake(this);
-			break;
-		default:
-			break;
-		}
-		ids.setKey();
-	}
-	
-	public void setKey(String managerKey, String key) {
-		setKey(managerKey, key, 0);
-	}
+    public void setQuickKey(String managerKey, String key, int index) {
+        this.managerKey = managerKey;
+        this.key = key;
+        switch (type) {
+        case PEEK:
+            ids.quickPeek(this);
+            break;
+        case TAKE:
+            ids.quickTake(this);
+            break;
+        default:
+            break;
+        }
+        ids.setKey();
+    }
+
+    public void setKey(String managerKey, String key) {
+        setKey(managerKey, key, 0);
+    }
 
-	public void setKey(String managerKey, String key, int index) {
-		this.managerKey = managerKey;
-		this.key = key;
-		this.index = index;
-		switch (type) {
-		case PEEK:
-			ids.peek(this);
-			break;
-		case TAKE:
-			ids.take(this);
-			break;
-		default:
-			break;
-		}
-		ids.setKey();
-	}
-	
-	public void setKey(String key) {
-		setKey(key, 0);
-	}
+    public void setKey(String managerKey, String key, int index) {
+        this.managerKey = managerKey;
+        this.key = key;
+        this.index = index;
+        switch (type) {
+        case PEEK:
+            ids.peek(this);
+            break;
+        case TAKE:
+            ids.take(this);
+            break;
+        default:
+            break;
+        }
+        ids.setKey();
+    }
+
+    public void setKey(String key) {
+        setKey(key, 0);
+    }
 
-	public void setKey(String key, int index) {
-		this.key = key;
-		this.index = index;
-		switch (type) {
-		case PEEK:
-			ids.peek(this);
-			break;
-		case TAKE:
-			ids.take(this);
-			break;
-		default:
-			break;
-		}
-		ids.setKey();
-	}
+    public void setKey(String key, int index) {
+        this.key = key;
+        this.index = index;
+        switch (type) {
+        case PEEK:
+            ids.peek(this);
+            break;
+        case TAKE:
+            ids.take(this);
+            break;
+        default:
+            break;
+        }
+        ids.setKey();
+    }
 
-	public void setData(ReceiverData r) {
-		data = r;
-	}
+    public void setData(ReceiverData r) {
+        data = r;
+    }
 
-	public int asInteger() {
-		return data.asInteger();
-	}
+    public int asInteger() {
+        return data.asInteger();
+    }
+
+    public String asString() {
+        return data.asString();
+    }
 
-	public String asString() {
-		return data.asString();
-	}
-	
-	public <T> T asClass(Class<T> clazz) {
-		return data.asClass(clazz);
-	}
-	
-	public Object getObj() {
-		return data.getObj();
-	}
+    public <T> T asClass(Class<T> clazz) {
+        return data.asClass(clazz);
+    }
 
-	public Object getVal() {
-		return data.getVal();
-	}
-	
+    public Object getObj() {
+        return data.getObj();
+    }
+
+    public Object getVal() {
+        return data.getVal();
+    }
+
 }
--- a/src/main/java/alice/test/reflection/CSTemplate.java	Wed Jul 09 03:45:14 2014 +0900
+++ b/src/main/java/alice/test/reflection/CSTemplate.java	Tue Jul 15 00:06:10 2014 +0900
@@ -4,13 +4,13 @@
 
 public class CSTemplate extends CodeSegment{
 
-	public CSTemplate(){
-		
-	}
-	
-	@Override
-	public void run() {
-		
-	}
+    public CSTemplate(){
+
+    }
+
+    @Override
+    public void run() {
+        System.out.println("runrunrun");
+    }
 
 }
--- a/src/main/java/alice/test/reflection/DisposeManager.java	Wed Jul 09 03:45:14 2014 +0900
+++ b/src/main/java/alice/test/reflection/DisposeManager.java	Tue Jul 15 00:06:10 2014 +0900
@@ -4,77 +4,99 @@
 import javassist.ClassPool;
 import javassist.CtClass;
 import javassist.CtField;
+import javassist.CtMethod;
 import javassist.CtNewConstructor;
+import javassist.CtNewMethod;
 import javassist.NotFoundException;
+import javassist.bytecode.AccessFlag;
 
 public class DisposeManager {
-	private static DisposeManager instance = new DisposeManager(); 
-	private ClassPool cp = ClassPool.getDefault();
+    private static DisposeManager instance = new DisposeManager(); 
+    private ClassPool cp = ClassPool.getDefault();
 
-	private DisposeManager(){}
+    private DisposeManager(){}
 
-	public static DisposeManager getInstance(){
-		return instance;
-	}
+    public static DisposeManager getInstance(){
+        return instance;
+    }
 
-	public <T> void setCodeSegment(String managerKey, Class<T> clazz){
-		CtClass cs = null;
-		String metaName = "Meta"+clazz.getSimpleName();
-		try {
-			// if cannot get mataName Class go catch NotFoundException
-			cs = cp.get(metaName);
-			// already created
-			Class<?> metaClazz = cp.getClassLoader().loadClass(metaName);
-			metaClazz.newInstance();
-		} catch (ClassNotFoundException e) {
-			System.out.println("ClassLoder loadClass error");
-			e.printStackTrace();
-		} catch (InstantiationException e) {
-			System.out.println("newInstance() error");
-		} catch (IllegalAccessException e) {
-			System.out.println("newInstance() error");
-		} catch (NotFoundException e) {
-			try {
-				CtClass parent = cp.get(clazz.getName());
+    public <T> void setCodeSegment(String managerKey, Class<T> clazz){
+        CtClass cs = null;
+        String metaName = "Meta"+clazz.getSimpleName();
+        try {
+            // if cannot get mataName Class go catch NotFoundException
+            cs = cp.get(metaName);
+            // already created
+            Class<?> metaClazz = cp.getClassLoader().loadClass(metaName);
+            metaClazz.newInstance();
+        } catch (ClassNotFoundException e) {
+            System.out.println("ClassLoder loadClass error");
+            e.printStackTrace();
+        } catch (InstantiationException e) {
+            System.out.println("newInstance() error");
+        } catch (IllegalAccessException e) {
+            System.out.println("newInstance() error");
+        } catch (NotFoundException e) {
+            try {
+                CtClass parent = cp.get(clazz.getName());
+
+                // check super class is CS
+                boolean checkSuperClass = parent.getSuperclass().getSimpleName().equals("CodeSegment");
+                if (!checkSuperClass) {
+                    // argument wrong
+                    return;
+                } else {
+
+                    // create Meta Code Segment
+                    cs = cp.makeClass("Meta"+clazz.getSimpleName());
+                    parent.getClassFile().setAccessFlags(AccessFlag.ABSTRACT);
+                    parent.setName("Abstract"+parent.getSimpleName());
+                    cs.setSuperclass(parent);
+
+                    // define meta inputDataSegment
+                    CtClass receiver = cp.get("alice.datasegment.Receiver");
 
-				// check super class is CS
-				boolean checkSuperClass = parent.getSuperclass().getSimpleName().equals("CodeSegment");
-				if (!checkSuperClass) {
-					// argument wrong
-					return;
-				} else {
-					cs = cp.makeClass("Meta"+clazz.getSimpleName());
-					cs.setSuperclass(parent);
-					
-					// define meta inputDataSegment
-					CtClass receiver = cp.get("alice.datasegment.Receiver");
-					
-					// need check exist name
-					String metaFieldName = "metaInfo";
-					
-					CtField cf = new CtField(receiver ,metaFieldName, cs);
-					cs.addField(cf, "ids.create(alice.datasegment.CommandType.PEEK)");
-					
-					String cnst = "public "+metaName+"(){"
-							+ metaFieldName+".setKey(\"TEST\");"
-							+ "}";
-					
-					cs.addConstructor(CtNewConstructor.make(cnst, cs));
-					
-					Class<?> metaClass = cs.toClass();
-					metaClass.newInstance();
-				}
-			} catch (NotFoundException e1) {
-				System.out.println("not found super Class");
-				return;
-			} catch (CannotCompileException e1) {
-				e1.printStackTrace();
-			} catch (InstantiationException e1) {
-				e1.printStackTrace();
-			} catch (IllegalAccessException e1) {
-				e1.printStackTrace();
-			}
-		}
+                    // need check exist name
+                    String metaFieldName = "metaInfo";
+
+                    CtField cf = new CtField(receiver ,metaFieldName, parent);
+                    parent.addField(cf, "ids.create(alice.datasegment.CommandType.PEEK)");
+
+                    cf.getFieldInfo().setAccessFlags(AccessFlag.PUBLIC);
+                    for (CtField f : parent.getFields()){
+                        int accessType = f.getFieldInfo().getAccessFlags();
+                        if (accessType != AccessFlag.PUBLIC){
+                            f.getFieldInfo().setAccessFlags(AccessFlag.PUBLIC);
+                        }
+                    }
+
+                    CtMethod runMethod = parent.getMethod("run", "()V");
+                    CtMethod copy = CtNewMethod.copy(runMethod, cs, null);
+                    runMethod.setName("metaRun");
+                    System.out.println(copy.getName());
+                    cs.addMethod(copy);
 
-	}
+                    String cnst = "public "+metaName+"(){"
+                            + metaFieldName+".setKey(\"TEST\");"
+                            + "}";
+
+                    cs.addConstructor(CtNewConstructor.make(cnst, cs));
+
+                    parent.toClass();
+                    Class<?> metaClass = cs.toClass();
+                    metaClass.newInstance();
+                }
+            } catch (NotFoundException e1) {
+                System.out.println("not found super Class");
+                return;
+            } catch (CannotCompileException e1) {
+                e1.printStackTrace();
+            } catch (InstantiationException e1) {
+                e1.printStackTrace();
+            } catch (IllegalAccessException e1) {
+                e1.printStackTrace();
+            }
+        }
+
+    }
 }
--- a/src/main/java/alice/test/reflection/DisposeManagerTest.java	Wed Jul 09 03:45:14 2014 +0900
+++ b/src/main/java/alice/test/reflection/DisposeManagerTest.java	Tue Jul 15 00:06:10 2014 +0900
@@ -4,14 +4,14 @@
 import alice.daemon.Config;
 
 public class DisposeManagerTest {
-	public static void main(String[] args){
-		new AliceDaemon(new Config(args)).listen(); // logger off
-		CSTemplate cs = new CSTemplate();
-		cs.ods.put("key1", "String data");
-		cs.ods.put("TEST", "TEST");
-		//DisposeManager.getInstance().setCodeSegment("local", MetaCodeSegment.class);
-		//CloseEventManager.getInstance().setCodeSegment("local", MetaCodeSegment.class);
-		CloseEventManager.getInstance().setCodeSegment("local", alice.test.reflection.MetaCodeSegment.class);
-		
-	}
+    public static void main(String[] args) throws Exception{
+        new AliceDaemon(new Config(args)).listen(); // logger off
+        CSTemplate cs = new CSTemplate();
+        cs.ods.put("key1", "String data");
+        cs.ods.put("TEST", "TEST");
+        DisposeManager.getInstance().setCodeSegment("local", MetaCodeSegment.class);
+
+        DisposeManager.getInstance().setCodeSegment("local", MetaCodeSegment.class);
+
+    }
 }
--- a/src/main/java/alice/test/reflection/MetaCodeSegment.java	Wed Jul 09 03:45:14 2014 +0900
+++ b/src/main/java/alice/test/reflection/MetaCodeSegment.java	Tue Jul 15 00:06:10 2014 +0900
@@ -7,30 +7,31 @@
 import alice.datasegment.Receiver;
 
 public class MetaCodeSegment extends CodeSegment {
-	
-	// create input datasegment arg1
-	Receiver arg1 = ids.create(CommandType.TAKE);
-	
-	public MetaCodeSegment(){
-		arg1.setKey("key1", arg1.index);
-	}
-	
-	@Override
-	public void run() {
-		System.out.println("type = " + arg1.type);
-		System.out.println("index = " + arg1.index);
-		System.out.println("data = " + arg1.getVal());
-		System.out.println(((Value)arg1.getVal()).getType());
-		
-		if (arg1.index == 10) {
-			System.exit(0);
-			return;
-		}
-		System.out.println(MetaCodeSegment.class);
-		//DisposeManager.getInstance().setCodeSegment("local", MetaCodeSegment.class);
-		CloseEventManager.getInstance().setCodeSegment("local", MetaCodeSegment.class);
-		// DataSegment.get("local").update
-		//ods.update("local", "key1", "String data");
-	}
+
+    // create input datasegment arg1
+    Receiver arg1 = ids.create(CommandType.TAKE);
+
+    public MetaCodeSegment(){
+        arg1.setKey("key1", arg1.index);
+    }
+
+    @Override
+    public void run() {
+        System.out.println("type = " + arg1.type);
+        System.out.println("index = " + arg1.index);
+        System.out.println("data = " + arg1.getVal());
+        System.out.println(((Value)arg1.getVal()).getType());
+        System.out.println(MetaCodeSegment.class.getName());
+
+        if (arg1.index == 10) {
+            System.exit(0);
+            return;
+        }
+        System.out.println(MetaCodeSegment.class);
+
+        // DataSegment.get("local").update
+        ods.update("local", "key1", "String data");
+        //this.recycle();
+    }
 
 }
\ No newline at end of file