test_class.declarator: log = org.apache.logging.log4j.LogManager.getLogger()
test_class.modifier: private static final
test_class.original_string: private static final Logger log = org.apache.logging.log4j.LogManager.getLogger();
test_class.type: Logger
test_class.var_name: log
test_class.declarator: custom_deserializers =
        new HashMap<Class<?>, StdDeserializer<?>>()
test_class.original_string: Map<Class<?>, StdDeserializer<?>> custom_deserializers =
        new HashMap<Class<?>, StdDeserializer<?>>();
test_class.type: Map<Class<?>, StdDeserializer<?>>
test_class.var_name: custom_deserializers
test_class.declarator: TEST_DATA = "./src/test/resources/methodBody/"
test_class.modifier: private static final
test_class.original_string: private static final String TEST_DATA = "./src/test/resources/methodBody/";
test_class.type: String
test_class.var_name: TEST_DATA
test_class.declarator: _constructQName =
        "org.apache.commons.fileupload.MultipartStream(InputStream,byte[],int,ProgressNotifier)"
test_class.modifier: private
test_class.original_string: private String _constructQName =
        "org.apache.commons.fileupload.MultipartStream(InputStream,byte[],int,ProgressNotifier)";
test_class.type: String
test_class.var_name: _constructQName
test_class.declarator: _fixedJavaFile = "MultipartStreamFix.java"
test_class.modifier: private
test_class.original_string: private String _fixedJavaFile = "MultipartStreamFix.java";
test_class.type: String
test_class.var_name: _fixedJavaFile
test_class.declarator: _defectiveJavaFile = "MultipartStreamDef.java"
test_class.modifier: private
test_class.original_string: private String _defectiveJavaFile = "MultipartStreamDef.java";
test_class.type: String
test_class.var_name: _defectiveJavaFile
test_class.declarator: _underTestJavaFile = "MultipartStream121.java"
test_class.modifier: private
test_class.original_string: private String _underTestJavaFile = "MultipartStream121.java";
test_class.type: String
test_class.var_name: _underTestJavaFile
test_class.declarator: signatureFix = null
test_class.modifier: private
test_class.original_string: private Signature signatureFix = null;
test_class.type: Signature
test_class.var_name: signatureFix
test_class.declarator: signatureDef = null
test_class.modifier: private
test_class.original_string: private Signature signatureDef = null;
test_class.type: Signature
test_class.var_name: signatureDef
test_class.declarator: signatureUnderTest = null
test_class.modifier: private
test_class.original_string: private Signature signatureUnderTest = null;
test_class.type: Signature
test_class.var_name: signatureUnderTest
test_class.declarator: astChange = null
test_class.original_string: SignatureChange astChange = null;
test_class.type: SignatureChange
test_class.var_name: astChange
test_class.declarator: vulSigJson =
        "{\"ast\":[ {\"Value\" : \"MultipartStream\",\"SourceCodeEntity\" :{ \"Modifiers\" :"
            + " \"0\",\"SourceRange\" : {\"Start\" : 19,\"End\" : 861}},\"EntityType\" :"
            + " \"METHOD\",\"C\" : [{\"Value\" : \"this.input = input;\",\"SourceCodeEntity\" :{"
            + " \"Modifiers\" : \"0\",\"SourceRange\" : {\"Start\" : 162,\"End\" :"
            + " 180}},\"EntityType\" : \"ASSIGNMENT\"},{\"Value\" : \"this.bufSize ="
            + " bufSize;\",\"SourceCodeEntity\" :{ \"Modifiers\" : \"0\",\"SourceRange\" :"
            + " {\"Start\" : 191,\"End\" : 213}},\"EntityType\" : \"ASSIGNMENT\"},{\"Value\" :"
            + " \"this.buffer = new byte[bufSize];\",\"SourceCodeEntity\" :{ \"Modifiers\" :"
            + " \"0\",\"SourceRange\" : {\"Start\" : 224,\"End\" : 255}},\"EntityType\" :"
            + " \"ASSIGNMENT\"},{\"Value\" : \"this.notifier = pNotifier;\",\"SourceCodeEntity\" :{"
            + " \"Modifiers\" : \"0\",\"SourceRange\" : {\"Start\" : 266,\"End\" :"
            + " 291}},\"EntityType\" : \"ASSIGNMENT\"},{\"Value\" : \"this.boundary = new"
            + " byte[(boundary.length + BOUNDARY_PREFIX.length)];\",\"SourceCodeEntity\" :{"
            + " \"Modifiers\" : \"0\",\"SourceRange\" : {\"Start\" : 407,\"End\" :"
            + " 473}},\"EntityType\" : \"ASSIGNMENT\"},{\"Value\" : \"this.boundaryLength ="
            + " (boundary.length + BOUNDARY_PREFIX.length);\",\"SourceCodeEntity\" :{ \"Modifiers\""
            + " : \"0\",\"SourceRange\" : {\"Start\" : 484,\"End\" : 546}},\"EntityType\" :"
            + " \"ASSIGNMENT\"},{\"Value\" : \"this.keepRegion ="
            + " this.boundary.length;\",\"SourceCodeEntity\" :{ \"Modifiers\" :"
            + " \"0\",\"SourceRange\" : {\"Start\" : 557,\"End\" : 595}},\"EntityType\" :"
            + " \"ASSIGNMENT\"},{\"Value\" : \"System.arraycopy(BOUNDARY_PREFIX, 0, this.boundary,"
            + " 0, BOUNDARY_PREFIX.length);\",\"SourceCodeEntity\" :{ \"Modifiers\" :"
            + " \"0\",\"SourceRange\" : {\"Start\" : 606,\"End\" : 701}},\"EntityType\" :"
            + " \"METHOD_INVOCATION\"},{\"Value\" : \"System.arraycopy(boundary, 0, this.boundary,"
            + " BOUNDARY_PREFIX.length, boundary.length);\",\"SourceCodeEntity\" :{ \"Modifiers\" :"
            + " \"0\",\"SourceRange\" : {\"Start\" : 712,\"End\" : 814}},\"EntityType\" :"
            + " \"METHOD_INVOCATION\"},{\"Value\" : \"head = 0;\",\"SourceCodeEntity\" :{"
            + " \"Modifiers\" : \"0\",\"SourceRange\" : {\"Start\" : 827,\"End\" :"
            + " 835}},\"EntityType\" : \"ASSIGNMENT\"},{\"Value\" : \"tail ="
            + " 0;\",\"SourceCodeEntity\" :{ \"Modifiers\" : \"0\",\"SourceRange\" : {\"Start\" :"
            + " 846,\"End\" : 854}},\"EntityType\" : \"ASSIGNMENT\"}]}]}"
test_class.modifier: private static final
test_class.original_string: private static final String vulSigJson =
        "{\"ast\":[ {\"Value\" : \"MultipartStream\",\"SourceCodeEntity\" :{ \"Modifiers\" :"
            + " \"0\",\"SourceRange\" : {\"Start\" : 19,\"End\" : 861}},\"EntityType\" :"
            + " \"METHOD\",\"C\" : [{\"Value\" : \"this.input = input;\",\"SourceCodeEntity\" :{"
            + " \"Modifiers\" : \"0\",\"SourceRange\" : {\"Start\" : 162,\"End\" :"
            + " 180}},\"EntityType\" : \"ASSIGNMENT\"},{\"Value\" : \"this.bufSize ="
            + " bufSize;\",\"SourceCodeEntity\" :{ \"Modifiers\" : \"0\",\"SourceRange\" :"
            + " {\"Start\" : 191,\"End\" : 213}},\"EntityType\" : \"ASSIGNMENT\"},{\"Value\" :"
            + " \"this.buffer = new byte[bufSize];\",\"SourceCodeEntity\" :{ \"Modifiers\" :"
            + " \"0\",\"SourceRange\" : {\"Start\" : 224,\"End\" : 255}},\"EntityType\" :"
            + " \"ASSIGNMENT\"},{\"Value\" : \"this.notifier = pNotifier;\",\"SourceCodeEntity\" :{"
            + " \"Modifiers\" : \"0\",\"SourceRange\" : {\"Start\" : 266,\"End\" :"
            + " 291}},\"EntityType\" : \"ASSIGNMENT\"},{\"Value\" : \"this.boundary = new"
            + " byte[(boundary.length + BOUNDARY_PREFIX.length)];\",\"SourceCodeEntity\" :{"
            + " \"Modifiers\" : \"0\",\"SourceRange\" : {\"Start\" : 407,\"End\" :"
            + " 473}},\"EntityType\" : \"ASSIGNMENT\"},{\"Value\" : \"this.boundaryLength ="
            + " (boundary.length + BOUNDARY_PREFIX.length);\",\"SourceCodeEntity\" :{ \"Modifiers\""
            + " : \"0\",\"SourceRange\" : {\"Start\" : 484,\"End\" : 546}},\"EntityType\" :"
            + " \"ASSIGNMENT\"},{\"Value\" : \"this.keepRegion ="
            + " this.boundary.length;\",\"SourceCodeEntity\" :{ \"Modifiers\" :"
            + " \"0\",\"SourceRange\" : {\"Start\" : 557,\"End\" : 595}},\"EntityType\" :"
            + " \"ASSIGNMENT\"},{\"Value\" : \"System.arraycopy(BOUNDARY_PREFIX, 0, this.boundary,"
            + " 0, BOUNDARY_PREFIX.length);\",\"SourceCodeEntity\" :{ \"Modifiers\" :"
            + " \"0\",\"SourceRange\" : {\"Start\" : 606,\"End\" : 701}},\"EntityType\" :"
            + " \"METHOD_INVOCATION\"},{\"Value\" : \"System.arraycopy(boundary, 0, this.boundary,"
            + " BOUNDARY_PREFIX.length, boundary.length);\",\"SourceCodeEntity\" :{ \"Modifiers\" :"
            + " \"0\",\"SourceRange\" : {\"Start\" : 712,\"End\" : 814}},\"EntityType\" :"
            + " \"METHOD_INVOCATION\"},{\"Value\" : \"head = 0;\",\"SourceCodeEntity\" :{"
            + " \"Modifiers\" : \"0\",\"SourceRange\" : {\"Start\" : 827,\"End\" :"
            + " 835}},\"EntityType\" : \"ASSIGNMENT\"},{\"Value\" : \"tail ="
            + " 0;\",\"SourceCodeEntity\" :{ \"Modifiers\" : \"0\",\"SourceRange\" : {\"Start\" :"
            + " 846,\"End\" : 854}},\"EntityType\" : \"ASSIGNMENT\"}]}]}";
test_class.type: String
test_class.var_name: vulSigJson
test_class.declarator: fixSigJson =
        "{\"ast\":[ {\"Value\" : \"MultipartStream\",\"SourceCodeEntity\" :{ \"Modifiers\" :"
            + " \"0\",\"SourceRange\" : {\"Start\" : 19,\"End\" : 1040}},\"EntityType\" :"
            + " \"METHOD\",\"C\" : [{\"Value\" : \"this.input = input;\",\"SourceCodeEntity\" :{"
            + " \"Modifiers\" : \"0\",\"SourceRange\" : {\"Start\" : 162,\"End\" :"
            + " 180}},\"EntityType\" : \"ASSIGNMENT\"},{\"Value\" : \"this.bufSize ="
            + " bufSize;\",\"SourceCodeEntity\" :{ \"Modifiers\" : \"0\",\"SourceRange\" :"
            + " {\"Start\" : 191,\"End\" : 213}},\"EntityType\" : \"ASSIGNMENT\"},{\"Value\" :"
            + " \"this.buffer = new byte[bufSize];\",\"SourceCodeEntity\" :{ \"Modifiers\" :"
            + " \"0\",\"SourceRange\" : {\"Start\" : 224,\"End\" : 255}},\"EntityType\" :"
            + " \"ASSIGNMENT\"},{\"Value\" : \"this.notifier = pNotifier;\",\"SourceCodeEntity\" :{"
            + " \"Modifiers\" : \"0\",\"SourceRange\" : {\"Start\" : 266,\"End\" :"
            + " 291}},\"EntityType\" : \"ASSIGNMENT\"},{\"Value\" : \"this.boundaryLength ="
            + " (boundary.length + BOUNDARY_PREFIX.length);\",\"SourceCodeEntity\" :{ \"Modifiers\""
            + " : \"0\",\"SourceRange\" : {\"Start\" : 407,\"End\" : 469}},\"EntityType\" :"
            + " \"ASSIGNMENT\"},{\"Value\" : \"(bufSize < (this.boundaryLength +"
            + " 1))\",\"SourceCodeEntity\" :{ \"Modifiers\" : \"0\",\"SourceRange\" : {\"Start\" :"
            + " 480,\"End\" : 667}},\"EntityType\" : \"IF_STATEMENT\",\"C\" : [{\"Value\" :"
            + " \"(bufSize < (this.boundaryLength + 1))\",\"SourceCodeEntity\" :{ \"Modifiers\" :"
            + " \"0\",\"SourceRange\" : {\"Start\" : 519,\"End\" : 667}},\"EntityType\" :"
            + " \"THEN_STATEMENT\",\"C\" : [{\"Value\" : \"new IllegalArgumentException(\\\"The"
            + " buffer size specified for the MultipartStream is too"
            + " small\\\");\",\"SourceCodeEntity\" :{ \"Modifiers\" : \"0\",\"SourceRange\" :"
            + " {\"Start\" : 534,\"End\" : 656}},\"EntityType\" :"
            + " \"THROW_STATEMENT\"}]}]},{\"Value\" : \"this.boundary = new"
            + " byte[this.boundaryLength];\",\"SourceCodeEntity\" :{ \"Modifiers\" :"
            + " \"0\",\"SourceRange\" : {\"Start\" : 678,\"End\" : 723}},\"EntityType\" :"
            + " \"ASSIGNMENT\"},{\"Value\" : \"this.keepRegion ="
            + " this.boundary.length;\",\"SourceCodeEntity\" :{ \"Modifiers\" :"
            + " \"0\",\"SourceRange\" : {\"Start\" : 734,\"End\" : 772}},\"EntityType\" :"
            + " \"ASSIGNMENT\"},{\"Value\" : \"System.arraycopy(BOUNDARY_PREFIX, 0, this.boundary,"
            + " 0, BOUNDARY_PREFIX.length);\",\"SourceCodeEntity\" :{ \"Modifiers\" :"
            + " \"0\",\"SourceRange\" : {\"Start\" : 785,\"End\" : 880}},\"EntityType\" :"
            + " \"METHOD_INVOCATION\"},{\"Value\" : \"System.arraycopy(boundary, 0, this.boundary,"
            + " BOUNDARY_PREFIX.length, boundary.length);\",\"SourceCodeEntity\" :{ \"Modifiers\" :"
            + " \"0\",\"SourceRange\" : {\"Start\" : 891,\"End\" : 993}},\"EntityType\" :"
            + " \"METHOD_INVOCATION\"},{\"Value\" : \"head = 0;\",\"SourceCodeEntity\" :{"
            + " \"Modifiers\" : \"0\",\"SourceRange\" : {\"Start\" : 1006,\"End\" :"
            + " 1014}},\"EntityType\" : \"ASSIGNMENT\"},{\"Value\" : \"tail ="
            + " 0;\",\"SourceCodeEntity\" :{ \"Modifiers\" : \"0\",\"SourceRange\" : {\"Start\" :"
            + " 1025,\"End\" : 1033}},\"EntityType\" : \"ASSIGNMENT\"}]}]}"
test_class.modifier: private static final
test_class.original_string: private static final String fixSigJson =
        "{\"ast\":[ {\"Value\" : \"MultipartStream\",\"SourceCodeEntity\" :{ \"Modifiers\" :"
            + " \"0\",\"SourceRange\" : {\"Start\" : 19,\"End\" : 1040}},\"EntityType\" :"
            + " \"METHOD\",\"C\" : [{\"Value\" : \"this.input = input;\",\"SourceCodeEntity\" :{"
            + " \"Modifiers\" : \"0\",\"SourceRange\" : {\"Start\" : 162,\"End\" :"
            + " 180}},\"EntityType\" : \"ASSIGNMENT\"},{\"Value\" : \"this.bufSize ="
            + " bufSize;\",\"SourceCodeEntity\" :{ \"Modifiers\" : \"0\",\"SourceRange\" :"
            + " {\"Start\" : 191,\"End\" : 213}},\"EntityType\" : \"ASSIGNMENT\"},{\"Value\" :"
            + " \"this.buffer = new byte[bufSize];\",\"SourceCodeEntity\" :{ \"Modifiers\" :"
            + " \"0\",\"SourceRange\" : {\"Start\" : 224,\"End\" : 255}},\"EntityType\" :"
            + " \"ASSIGNMENT\"},{\"Value\" : \"this.notifier = pNotifier;\",\"SourceCodeEntity\" :{"
            + " \"Modifiers\" : \"0\",\"SourceRange\" : {\"Start\" : 266,\"End\" :"
            + " 291}},\"EntityType\" : \"ASSIGNMENT\"},{\"Value\" : \"this.boundaryLength ="
            + " (boundary.length + BOUNDARY_PREFIX.length);\",\"SourceCodeEntity\" :{ \"Modifiers\""
            + " : \"0\",\"SourceRange\" : {\"Start\" : 407,\"End\" : 469}},\"EntityType\" :"
            + " \"ASSIGNMENT\"},{\"Value\" : \"(bufSize < (this.boundaryLength +"
            + " 1))\",\"SourceCodeEntity\" :{ \"Modifiers\" : \"0\",\"SourceRange\" : {\"Start\" :"
            + " 480,\"End\" : 667}},\"EntityType\" : \"IF_STATEMENT\",\"C\" : [{\"Value\" :"
            + " \"(bufSize < (this.boundaryLength + 1))\",\"SourceCodeEntity\" :{ \"Modifiers\" :"
            + " \"0\",\"SourceRange\" : {\"Start\" : 519,\"End\" : 667}},\"EntityType\" :"
            + " \"THEN_STATEMENT\",\"C\" : [{\"Value\" : \"new IllegalArgumentException(\\\"The"
            + " buffer size specified for the MultipartStream is too"
            + " small\\\");\",\"SourceCodeEntity\" :{ \"Modifiers\" : \"0\",\"SourceRange\" :"
            + " {\"Start\" : 534,\"End\" : 656}},\"EntityType\" :"
            + " \"THROW_STATEMENT\"}]}]},{\"Value\" : \"this.boundary = new"
            + " byte[this.boundaryLength];\",\"SourceCodeEntity\" :{ \"Modifiers\" :"
            + " \"0\",\"SourceRange\" : {\"Start\" : 678,\"End\" : 723}},\"EntityType\" :"
            + " \"ASSIGNMENT\"},{\"Value\" : \"this.keepRegion ="
            + " this.boundary.length;\",\"SourceCodeEntity\" :{ \"Modifiers\" :"
            + " \"0\",\"SourceRange\" : {\"Start\" : 734,\"End\" : 772}},\"EntityType\" :"
            + " \"ASSIGNMENT\"},{\"Value\" : \"System.arraycopy(BOUNDARY_PREFIX, 0, this.boundary,"
            + " 0, BOUNDARY_PREFIX.length);\",\"SourceCodeEntity\" :{ \"Modifiers\" :"
            + " \"0\",\"SourceRange\" : {\"Start\" : 785,\"End\" : 880}},\"EntityType\" :"
            + " \"METHOD_INVOCATION\"},{\"Value\" : \"System.arraycopy(boundary, 0, this.boundary,"
            + " BOUNDARY_PREFIX.length, boundary.length);\",\"SourceCodeEntity\" :{ \"Modifiers\" :"
            + " \"0\",\"SourceRange\" : {\"Start\" : 891,\"End\" : 993}},\"EntityType\" :"
            + " \"METHOD_INVOCATION\"},{\"Value\" : \"head = 0;\",\"SourceCodeEntity\" :{"
            + " \"Modifiers\" : \"0\",\"SourceRange\" : {\"Start\" : 1006,\"End\" :"
            + " 1014}},\"EntityType\" : \"ASSIGNMENT\"},{\"Value\" : \"tail ="
            + " 0;\",\"SourceCodeEntity\" :{ \"Modifiers\" : \"0\",\"SourceRange\" : {\"Start\" :"
            + " 1025,\"End\" : 1033}},\"EntityType\" : \"ASSIGNMENT\"}]}]}";
test_class.type: String
test_class.var_name: fixSigJson
test_class.declarator: sigChange =
        "{\"StructureEntity\" :{ \"UniqueName\" : \"MultipartStream\",\"EntityType\" :"
            + " \"METHOD\",\"Modifiers\" : \"0\",\"changes\" :[{\"OperationType\" :"
            + " \"Insert\",\"changeType\" : \"STATEMENT_INSERT\",\"InsertedEntity\" :"
            + " {\"UniqueName\" : \"(bufSize < (this.boundaryLength + 1))\",\"EntityType\" :"
            + " \"IF_STATEMENT\",\"Modifiers\" : \"0\",\"SourceCodeRange\" : {\"Start\" :"
            + " \"480\",\"End\" : \"667\"}},\"ParentEntity\" : {\"UniqueName\" :"
            + " \"MultipartStream\",\"EntityType\" : \"METHOD\",\"Modifiers\" :"
            + " \"0\",\"SourceCodeRange\" : {\"Start\" : \"19\",\"End\" :"
            + " \"861\"}}},{\"OperationType\" : \"Move\",\"changeType\" :"
            + " \"STATEMENT_ORDERING_CHANGE\",\"OldParentEntity\" : {\"UniqueName\" :"
            + " \"MultipartStream\",\"EntityType\" : \"METHOD\",\"Modifiers\" :"
            + " \"0\",\"SourceCodeRange\" : {\"Start\" : \"19\",\"End\" : \"861\"}},\"MovedEntity\""
            + " : {\"UniqueName\" : \"this.boundaryLength = (boundary.length +"
            + " BOUNDARY_PREFIX.length);\",\"EntityType\" : \"ASSIGNMENT\",\"Modifiers\" :"
            + " \"0\",\"SourceCodeRange\" : {\"Start\" : \"484\",\"End\" :"
            + " \"546\"}},\"NewParentEntity\" : {\"UniqueName\" : \"MultipartStream\",\"EntityType\""
            + " : \"METHOD\",\"Modifiers\" : \"0\",\"SourceCodeRange\" : {\"Start\" : \"19\",\"End\""
            + " : \"861\"}},\"NewEntity\" : {\"UniqueName\" : \"this.boundaryLength ="
            + " (boundary.length + BOUNDARY_PREFIX.length);\",\"EntityType\" :"
            + " \"ASSIGNMENT\",\"Modifiers\" : \"0\",\"SourceCodeRange\" : {\"Start\" :"
            + " \"407\",\"End\" : \"469\"}}},{\"OperationType\" : \"Update\",\"changeType\" :"
            + " \"STATEMENT_UPDATE\",\"NewEntity\" : {\"UniqueName\" : \"this.boundary = new"
            + " byte[this.boundaryLength];\",\"EntityType\" : \"ASSIGNMENT\",\"Modifiers\" :"
            + " \"0\",\"SourceCodeRange\" : {\"Start\" : \"678\",\"End\" :"
            + " \"723\"}},\"UpdatedEntity\" : {\"UniqueName\" : \"this.boundary = new"
            + " byte[(boundary.length + BOUNDARY_PREFIX.length)];\",\"EntityType\" :"
            + " \"ASSIGNMENT\",\"Modifiers\" : \"0\",\"SourceCodeRange\" : {\"Start\" :"
            + " \"407\",\"End\" : \"473\"}},\"ParentEntity\" : {\"UniqueName\" :"
            + " \"MultipartStream\",\"EntityType\" : \"METHOD\",\"Modifiers\" :"
            + " \"0\",\"SourceCodeRange\" : {\"Start\" : \"19\",\"End\" :"
            + " \"861\"}}},{\"OperationType\" : \"Insert\",\"changeType\" :"
            + " \"STATEMENT_INSERT\",\"InsertedEntity\" : {\"UniqueName\" : \"new"
            + " IllegalArgumentException(\\\"The buffer size specified for the MultipartStream is"
            + " too small\\\");\",\"EntityType\" : \"THROW_STATEMENT\",\"Modifiers\" :"
            + " \"0\",\"SourceCodeRange\" : {\"Start\" : \"534\",\"End\" :"
            + " \"656\"}},\"ParentEntity\" : {\"UniqueName\" : \"(bufSize < (this.boundaryLength +"
            + " 1))\",\"EntityType\" : \"THEN_STATEMENT\",\"Modifiers\" : \"0\",\"SourceCodeRange\""
            + " : {\"Start\" : \"519\",\"End\" : \"667\"}}}]}}"
test_class.modifier: private static final
test_class.original_string: private static final String sigChange =
        "{\"StructureEntity\" :{ \"UniqueName\" : \"MultipartStream\",\"EntityType\" :"
            + " \"METHOD\",\"Modifiers\" : \"0\",\"changes\" :[{\"OperationType\" :"
            + " \"Insert\",\"changeType\" : \"STATEMENT_INSERT\",\"InsertedEntity\" :"
            + " {\"UniqueName\" : \"(bufSize < (this.boundaryLength + 1))\",\"EntityType\" :"
            + " \"IF_STATEMENT\",\"Modifiers\" : \"0\",\"SourceCodeRange\" : {\"Start\" :"
            + " \"480\",\"End\" : \"667\"}},\"ParentEntity\" : {\"UniqueName\" :"
            + " \"MultipartStream\",\"EntityType\" : \"METHOD\",\"Modifiers\" :"
            + " \"0\",\"SourceCodeRange\" : {\"Start\" : \"19\",\"End\" :"
            + " \"861\"}}},{\"OperationType\" : \"Move\",\"changeType\" :"
            + " \"STATEMENT_ORDERING_CHANGE\",\"OldParentEntity\" : {\"UniqueName\" :"
            + " \"MultipartStream\",\"EntityType\" : \"METHOD\",\"Modifiers\" :"
            + " \"0\",\"SourceCodeRange\" : {\"Start\" : \"19\",\"End\" : \"861\"}},\"MovedEntity\""
            + " : {\"UniqueName\" : \"this.boundaryLength = (boundary.length +"
            + " BOUNDARY_PREFIX.length);\",\"EntityType\" : \"ASSIGNMENT\",\"Modifiers\" :"
            + " \"0\",\"SourceCodeRange\" : {\"Start\" : \"484\",\"End\" :"
            + " \"546\"}},\"NewParentEntity\" : {\"UniqueName\" : \"MultipartStream\",\"EntityType\""
            + " : \"METHOD\",\"Modifiers\" : \"0\",\"SourceCodeRange\" : {\"Start\" : \"19\",\"End\""
            + " : \"861\"}},\"NewEntity\" : {\"UniqueName\" : \"this.boundaryLength ="
            + " (boundary.length + BOUNDARY_PREFIX.length);\",\"EntityType\" :"
            + " \"ASSIGNMENT\",\"Modifiers\" : \"0\",\"SourceCodeRange\" : {\"Start\" :"
            + " \"407\",\"End\" : \"469\"}}},{\"OperationType\" : \"Update\",\"changeType\" :"
            + " \"STATEMENT_UPDATE\",\"NewEntity\" : {\"UniqueName\" : \"this.boundary = new"
            + " byte[this.boundaryLength];\",\"EntityType\" : \"ASSIGNMENT\",\"Modifiers\" :"
            + " \"0\",\"SourceCodeRange\" : {\"Start\" : \"678\",\"End\" :"
            + " \"723\"}},\"UpdatedEntity\" : {\"UniqueName\" : \"this.boundary = new"
            + " byte[(boundary.length + BOUNDARY_PREFIX.length)];\",\"EntityType\" :"
            + " \"ASSIGNMENT\",\"Modifiers\" : \"0\",\"SourceCodeRange\" : {\"Start\" :"
            + " \"407\",\"End\" : \"473\"}},\"ParentEntity\" : {\"UniqueName\" :"
            + " \"MultipartStream\",\"EntityType\" : \"METHOD\",\"Modifiers\" :"
            + " \"0\",\"SourceCodeRange\" : {\"Start\" : \"19\",\"End\" :"
            + " \"861\"}}},{\"OperationType\" : \"Insert\",\"changeType\" :"
            + " \"STATEMENT_INSERT\",\"InsertedEntity\" : {\"UniqueName\" : \"new"
            + " IllegalArgumentException(\\\"The buffer size specified for the MultipartStream is"
            + " too small\\\");\",\"EntityType\" : \"THROW_STATEMENT\",\"Modifiers\" :"
            + " \"0\",\"SourceCodeRange\" : {\"Start\" : \"534\",\"End\" :"
            + " \"656\"}},\"ParentEntity\" : {\"UniqueName\" : \"(bufSize < (this.boundaryLength +"
            + " 1))\",\"EntityType\" : \"THEN_STATEMENT\",\"Modifiers\" : \"0\",\"SourceCodeRange\""
            + " : {\"Start\" : \"519\",\"End\" : \"667\"}}}]}}";
test_class.type: String
test_class.var_name: sigChange
test_class.file: lang-java/src/test/java/org/eclipse/steady/java/sign/ASTSignatureComparatorTest.java
test_class.identifier: ASTSignatureComparatorTest
test_case.body: @Test
    public void testChangeComparison() throws FileAnalysisException, IOException {
  
      // Read previous change from disk and check equality
      final String sig_chg_json =
          FileUtil.readFile(
              Paths.get("./src/test/resources/methodBody/deserialize/signatureChange.json"));
      final SignatureChange ddf =
          (ASTSignatureChange)
              JacksonUtil.asObject(sig_chg_json, custom_deserializers, ASTSignatureChange.class);
  
      SignatureComparator signComparator = new ASTSignatureComparator();
      SignatureChange ddt = signComparator.computeChange(signatureDef, signatureUnderTest);
  
      this.setupDefectiveConstruct();
      this.setupFixedConstruct();
      this.setupConstructUnderTest();
      SignatureChange dtf = signComparator.computeChange(signatureUnderTest, signatureFix);
  
      final Set<Object> i_dt =
          ASTUtil.intersectSourceCodeChanges(ddt.getModifications(), ddf.getModifications(), false);
      final Set<Object> i_tf =
          ASTUtil.intersectSourceCodeChanges(dtf.getModifications(), ddf.getModifications(), false);
  
      this.setupConstructUnderTest();
    }
test_case.class_method_signature: ASTSignatureComparatorTest.testChangeComparison()
test_case.full_signature: @Test public void testChangeComparison()
test_case.identifier: testChangeComparison
test_case.invocations: readFile get asObject computeChange setupDefectiveConstruct setupFixedConstruct setupConstructUnderTest computeChange intersectSourceCodeChanges getModifications getModifications intersectSourceCodeChanges getModifications getModifications setupConstructUnderTest
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testChangeComparison()
focal_class.declarator: log = org.apache.logging.log4j.LogManager.getLogger()
focal_class.modifier: private static final
focal_class.original_string: private static final Logger log = org.apache.logging.log4j.LogManager.getLogger();
focal_class.type: Logger
focal_class.var_name: log
focal_class.declarator: NUM_OF_FIXES_THRESHOLD = 100.0
focal_class.modifier: private static final
focal_class.original_string: private static final double NUM_OF_FIXES_THRESHOLD = 100.0;
focal_class.type: double
focal_class.var_name: NUM_OF_FIXES_THRESHOLD
focal_class.declarator: totalNumFixes
focal_class.modifier: private
focal_class.original_string: private int totalNumFixes;
focal_class.type: int
focal_class.var_name: totalNumFixes
focal_class.declarator: matchedNumFixes
focal_class.modifier: private
focal_class.original_string: private int matchedNumFixes;
focal_class.type: int
focal_class.var_name: matchedNumFixes
focal_class.declarator: fLevenshtein = new LevenshteinSimilarityCalculator()
focal_class.modifier: private
focal_class.original_string: private LevenshteinSimilarityCalculator fLevenshtein = new LevenshteinSimilarityCalculator();
focal_class.type: LevenshteinSimilarityCalculator
focal_class.var_name: fLevenshtein
focal_class.declarator: fNgrams = new NGramsCalculator(2)
focal_class.modifier: private
focal_class.original_string: private NGramsCalculator fNgrams = new NGramsCalculator(2);
focal_class.type: NGramsCalculator
focal_class.var_name: fNgrams
focal_class.declarator: STRING_SIMILARITY_THRESHOLD_LESS_THAN_TWO_CHANGES = 0.7
focal_class.modifier: private static final
focal_class.original_string: private static final double STRING_SIMILARITY_THRESHOLD_LESS_THAN_TWO_CHANGES = 0.7;
focal_class.type: double
focal_class.var_name: STRING_SIMILARITY_THRESHOLD_LESS_THAN_TWO_CHANGES
focal_class.declarator: STRING_SIMILARITY_THRESHOLD_BETWEEN_TWO_AND_FIVE_CHANGES = 0.6
focal_class.modifier: private static final
focal_class.original_string: private static final double STRING_SIMILARITY_THRESHOLD_BETWEEN_TWO_AND_FIVE_CHANGES = 0.6;
focal_class.type: double
focal_class.var_name: STRING_SIMILARITY_THRESHOLD_BETWEEN_TWO_AND_FIVE_CHANGES
focal_class.declarator: STRING_SIMILARITY_THRESHOLD_MORE_THAN__FIVE_CHANGES = 0.5
focal_class.modifier: private static final
focal_class.original_string: private static final double STRING_SIMILARITY_THRESHOLD_MORE_THAN__FIVE_CHANGES = 0.5;
focal_class.type: double
focal_class.var_name: STRING_SIMILARITY_THRESHOLD_MORE_THAN__FIVE_CHANGES
focal_class.declarator: mStringSimilarity
focal_class.modifier: private
focal_class.original_string: private double mStringSimilarity;
focal_class.type: double
focal_class.var_name: mStringSimilarity
focal_class.file: lang-java/src/main/java/org/eclipse/steady/java/sign/ASTSignatureComparator.java
focal_class.identifier: ASTSignatureComparator
focal_class.interfaces: implements SignatureComparator
focal_class.class_method_signature: ASTSignatureComparator.ASTSignatureComparator()
focal_class.full_signature: public  ASTSignatureComparator()
focal_class.identifier: ASTSignatureComparator
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  ASTSignatureComparator()
focal_class.class_method_signature: ASTSignatureComparator.ASTSignatureComparator(double stringSimilarity)
focal_class.full_signature: public  ASTSignatureComparator(double stringSimilarity)
focal_class.identifier: ASTSignatureComparator
focal_class.modifiers: public
focal_class.parameters: (double stringSimilarity)
focal_class.signature:  ASTSignatureComparator(double stringSimilarity)
focal_class.class_method_signature: ASTSignatureComparator.computeSimilarity(Signature _a, Signature _b)
focal_class.full_signature: @Override public float computeSimilarity(Signature _a, Signature _b)
focal_class.identifier: computeSimilarity
focal_class.modifiers: @Override public
focal_class.parameters: (Signature _a, Signature _b)
focal_class.return: float
focal_class.signature: float computeSimilarity(Signature _a, Signature _b)
focal_class.class_method_signature: ASTSignatureComparator.computeSimilarity(Node _vulnerable, Node _fixed)
focal_class.full_signature: private float computeSimilarity(Node _vulnerable, Node _fixed)
focal_class.identifier: computeSimilarity
focal_class.modifiers: private
focal_class.parameters: (Node _vulnerable, Node _fixed)
focal_class.return: float
focal_class.signature: float computeSimilarity(Node _vulnerable, Node _fixed)
focal_class.class_method_signature: ASTSignatureComparator.computeChange(Signature _a, Signature _b)
focal_class.full_signature: @Override public SignatureChange computeChange(Signature _a, Signature _b)
focal_class.identifier: computeChange
focal_class.modifiers: @Override public
focal_class.parameters: (Signature _a, Signature _b)
focal_class.return: SignatureChange
focal_class.signature: SignatureChange computeChange(Signature _a, Signature _b)
focal_class.class_method_signature: ASTSignatureComparator.getTotalNumChanges()
focal_class.full_signature: public int getTotalNumChanges()
focal_class.identifier: getTotalNumChanges
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getTotalNumChanges()
focal_class.class_method_signature: ASTSignatureComparator.getMatchedNumChanges()
focal_class.full_signature: public int getMatchedNumChanges()
focal_class.identifier: getMatchedNumChanges
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getMatchedNumChanges()
focal_class.class_method_signature: ASTSignatureComparator.containsChange(Signature _s, SignatureChange _change)
focal_class.full_signature: @Override public boolean containsChange(Signature _s, SignatureChange _change)
focal_class.identifier: containsChange
focal_class.modifiers: @Override public
focal_class.parameters: (Signature _s, SignatureChange _change)
focal_class.return: boolean
focal_class.signature: boolean containsChange(Signature _s, SignatureChange _change)
focal_class.class_method_signature: ASTSignatureComparator.getStringSimilarityThreshold()
focal_class.full_signature: public double getStringSimilarityThreshold()
focal_class.identifier: getStringSimilarityThreshold
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: double
focal_class.signature: double getStringSimilarityThreshold()
focal_class.class_method_signature: ASTSignatureComparator.setStringSimilarityThreshold(double _threshold)
focal_class.full_signature: public void setStringSimilarityThreshold(double _threshold)
focal_class.identifier: setStringSimilarityThreshold
focal_class.modifiers: public
focal_class.parameters: (double _threshold)
focal_class.return: void
focal_class.signature: void setStringSimilarityThreshold(double _threshold)
focal_class.class_method_signature: ASTSignatureComparator.assignSimlarityScheme(int _change_count)
focal_class.full_signature: private void assignSimlarityScheme(int _change_count)
focal_class.identifier: assignSimlarityScheme
focal_class.modifiers: private
focal_class.parameters: (int _change_count)
focal_class.return: void
focal_class.signature: void assignSimlarityScheme(int _change_count)
focal_class.class_method_signature: ASTSignatureComparator.getSimpleChangeName(SourceCodeChange _change)
focal_class.full_signature: private String getSimpleChangeName(SourceCodeChange _change)
focal_class.identifier: getSimpleChangeName
focal_class.modifiers: private
focal_class.parameters: (SourceCodeChange _change)
focal_class.return: String
focal_class.signature: String getSimpleChangeName(SourceCodeChange _change)
focal_class.class_method_signature: ASTSignatureComparator.getBestMatch(Node _root, SourceCodeChange _change)
focal_class.full_signature: private Node getBestMatch(Node _root, SourceCodeChange _change)
focal_class.identifier: getBestMatch
focal_class.modifiers: private
focal_class.parameters: (Node _root, SourceCodeChange _change)
focal_class.return: Node
focal_class.signature: Node getBestMatch(Node _root, SourceCodeChange _change)
focal_class.class_method_signature: ASTSignatureComparator.containsChange(Node _root_node, Set<SourceCodeChange> _changes)
focal_class.full_signature: private boolean containsChange(Node _root_node, Set<SourceCodeChange> _changes)
focal_class.identifier: containsChange
focal_class.modifiers: private
focal_class.parameters: (Node _root_node, Set<SourceCodeChange> _changes)
focal_class.return: boolean
focal_class.signature: boolean containsChange(Node _root_node, Set<SourceCodeChange> _changes)
focal_class.class_method_signature: ASTSignatureComparator.hasSameParent(Node _n1, Node _n2)
focal_class.full_signature: private boolean hasSameParent(Node _n1, Node _n2)
focal_class.identifier: hasSameParent
focal_class.modifiers: private
focal_class.parameters: (Node _n1, Node _n2)
focal_class.return: boolean
focal_class.signature: boolean hasSameParent(Node _n1, Node _n2)
focal_class.class_method_signature: ASTSignatureComparator.searchForBestMatchingNode(Node changedNode, Node astRoot)
focal_class.full_signature: private Node searchForBestMatchingNode(Node changedNode, Node astRoot)
focal_class.identifier: searchForBestMatchingNode
focal_class.modifiers: private
focal_class.parameters: (Node changedNode, Node astRoot)
focal_class.return: Node
focal_class.signature: Node searchForBestMatchingNode(Node changedNode, Node astRoot)
focal_class.class_method_signature: ASTSignatureComparator.searchSourceCodeEntityByUniqueName(
        String _entityUniqueName, Node astRoot)
focal_class.full_signature: private SourceCodeEntity searchSourceCodeEntityByUniqueName(
        String _entityUniqueName, Node astRoot)
focal_class.identifier: searchSourceCodeEntityByUniqueName
focal_class.modifiers: private
focal_class.parameters: (
        String _entityUniqueName, Node astRoot)
focal_class.return: SourceCodeEntity
focal_class.signature: SourceCodeEntity searchSourceCodeEntityByUniqueName(
        String _entityUniqueName, Node astRoot)
focal_class.class_method_signature: ASTSignatureComparator.search(String _entityUniqueName, Node _s)
focal_class.full_signature: private Node search(String _entityUniqueName, Node _s)
focal_class.identifier: search
focal_class.modifiers: private
focal_class.parameters: (String _entityUniqueName, Node _s)
focal_class.return: Node
focal_class.signature: Node search(String _entityUniqueName, Node _s)
focal_class.class_method_signature: ASTSignatureComparator.simplePercentageClosenessScheme(double numFoundFixes, double numTotalFixes)
focal_class.full_signature: private boolean simplePercentageClosenessScheme(double numFoundFixes, double numTotalFixes)
focal_class.identifier: simplePercentageClosenessScheme
focal_class.modifiers: private
focal_class.parameters: (double numFoundFixes, double numTotalFixes)
focal_class.return: boolean
focal_class.signature: boolean simplePercentageClosenessScheme(double numFoundFixes, double numTotalFixes)
focal_class.class_method_signature: ASTSignatureComparator.searchForNode(SourceCodeChange change, Node astRoot)
focal_class.full_signature: public Node searchForNode(SourceCodeChange change, Node astRoot)
focal_class.identifier: searchForNode
focal_class.modifiers: public
focal_class.parameters: (SourceCodeChange change, Node astRoot)
focal_class.return: Node
focal_class.signature: Node searchForNode(SourceCodeChange change, Node astRoot)
focal_class.class_method_signature: ASTSignatureComparator.searchForEntity(SourceCodeChange change, Node astRoot)
focal_class.full_signature: public boolean searchForEntity(SourceCodeChange change, Node astRoot)
focal_class.identifier: searchForEntity
focal_class.modifiers: public
focal_class.parameters: (SourceCodeChange change, Node astRoot)
focal_class.return: boolean
focal_class.signature: boolean searchForEntity(SourceCodeChange change, Node astRoot)
focal_class.class_method_signature: ASTSignatureComparator.searchForEntity(String _entityUniqueName, Node astRoot)
focal_class.full_signature: public boolean searchForEntity(String _entityUniqueName, Node astRoot)
focal_class.identifier: searchForEntity
focal_class.modifiers: public
focal_class.parameters: (String _entityUniqueName, Node astRoot)
focal_class.return: boolean
focal_class.signature: boolean searchForEntity(String _entityUniqueName, Node astRoot)
focal_method.body: @Override
    public SignatureChange computeChange(Signature _a, Signature _b) {
      SignatureChange astChange = new ASTSignatureChange(_a, _b);
      astChange.getModifications();
      return astChange;
    }
focal_method.class_method_signature: ASTSignatureComparator.computeChange(Signature _a, Signature _b)
focal_method.full_signature: @Override public SignatureChange computeChange(Signature _a, Signature _b)
focal_method.identifier: computeChange
focal_method.invocations: getModifications
focal_method.modifiers: @Override public
focal_method.parameters: (Signature _a, Signature _b)
focal_method.return: SignatureChange
focal_method.signature: SignatureChange computeChange(Signature _a, Signature _b)