-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathanalysis_result.json
114 lines (114 loc) · 61.8 KB
/
analysis_result.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
[
{
"sensitivity": 3,
"file_path": "christmas\\src\\main\\java\\christmas\\EventControl.java",
"method_name": "EventControl.SocketClient.getInputStream",
"tree_position": "30-41",
"cut_tree": "Method: SocketClient()\nBody:\nTryStatement(block=[WhileStatement(body=BlockStatement(label=None, statements=[LocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=MethodInvocation(arguments=[], member=nextLine, postfix_operators=[], prefix_operators=[], qualifier=inputStream, selectors=[], type_arguments=None), name=line)], modifiers=set(), type=ReferenceType(arguments=None, dimensions=[], name=String, sub_type=None)), StatementExpression(expression=MethodInvocation(arguments=[MemberReference(member=line, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[])], member=println, postfix_operators=[], prefix_operators=[], qualifier=System.out, selectors=[], type_arguments=None), label=None)]), condition=MethodInvocation(arguments=[], member=hasNextLine, postfix_operators=[], prefix_operators=[], qualifier=inputStream, selectors=[], type_arguments=None), label=None)], catches=[CatchClause(block=[StatementExpression(expression=MethodInvocation(arguments=[], member=printStackTrace, postfix_operators=[], prefix_operators=[], qualifier=e, selectors=[], type_arguments=None), label=None)], label=None, parameter=CatchClauseParameter(annotations=None, modifiers=None, name=e, types=['IOException']))], finally_block=None, label=None, resources=[TryResource(annotations=[], modifiers=set(), name=clientSocket, type=ReferenceType(arguments=None, dimensions=[], name=Socket, sub_type=None), value=ClassCreator(arguments=[Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"localhost\"), Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=6789)], body=None, constructor_type_arguments=None, postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], type=ReferenceType(arguments=None, dimensions=None, name=Socket, sub_type=None))), TryResource(annotations=[], modifiers=set(), name=inputStream, type=ReferenceType(arguments=None, dimensions=[], name=Scanner, sub_type=None), value=ClassCreator(arguments=[ClassCreator(arguments=[MethodInvocation(arguments=[], member=getInputStream, postfix_operators=[], prefix_operators=[], qualifier=clientSocket, selectors=[], type_arguments=None)], body=None, constructor_type_arguments=None, postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], type=ReferenceType(arguments=None, dimensions=None, name=InputStreamReader, sub_type=None))], body=None, constructor_type_arguments=None, postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], type=ReferenceType(arguments=None, dimensions=None, name=Scanner, sub_type=None)))])",
"source_code": " public void SocketClient() {\n \n //Socket clientSocket = new Socket(\"localhost\", 6789);\n //Scanner inputStream = new Scanner(new InputStreamReader(clientSocket.getInputStream()));\n\n try (Socket clientSocket = new Socket(\"localhost\", 6789);\n Scanner inputStream = new Scanner(new InputStreamReader(clientSocket.getInputStream()))) {\n\n // \uc5ec\uae30\uc5d0 \ud074\ub77c\uc774\uc5b8\ud2b8 \uc18c\ucf13\uc744 \uc0ac\uc6a9\ud55c \uc791\uc5c5\uc744 \uc218\ud589\n while (inputStream.hasNextLine()) {\n String line = inputStream.nextLine();\n System.out.println(line);"
},
{
"sensitivity": 3,
"file_path": "christmas\\src\\main\\java\\christmas\\EventControl.java",
"method_name": "EventControl.DatabaseExample.executeQuery",
"tree_position": "84-123",
"cut_tree": "Method: DatabaseExample()\nBody:\nLocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"jdbc:mysql://localhost:3306/mydatabase\"), name=url)], modifiers=set(), type=ReferenceType(arguments=None, dimensions=[], name=String, sub_type=None))\nLocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"root\"), name=user)], modifiers=set(), type=ReferenceType(arguments=None, dimensions=[], name=String, sub_type=None))\nLocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"password\"), name=password)], modifiers=set(), type=ReferenceType(arguments=None, dimensions=[], name=String, sub_type=None))\nLocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=null), name=conn)], modifiers=set(), type=ReferenceType(arguments=None, dimensions=[], name=Connection, sub_type=None))\nLocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=null), name=pstmt)], modifiers=set(), type=ReferenceType(arguments=None, dimensions=[], name=PreparedStatement, sub_type=None))\nLocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=null), name=rs)], modifiers=set(), type=ReferenceType(arguments=None, dimensions=[], name=ResultSet, sub_type=None))\nTryStatement(block=[StatementExpression(expression=Assignment(expressionl=MemberReference(member=conn, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), type==, value=MethodInvocation(arguments=[MemberReference(member=url, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), MemberReference(member=user, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), MemberReference(member=password, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[])], member=getConnection, postfix_operators=[], prefix_operators=[], qualifier=DriverManager, selectors=[], type_arguments=None)), label=None), LocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"SELECT id, name, balance FROM users WHERE id = ?\"), name=sql)], modifiers=set(), type=ReferenceType(arguments=None, dimensions=[], name=String, sub_type=None)), StatementExpression(expression=Assignment(expressionl=MemberReference(member=pstmt, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), type==, value=MethodInvocation(arguments=[MemberReference(member=sql, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[])], member=prepareStatement, postfix_operators=[], prefix_operators=[], qualifier=conn, selectors=[], type_arguments=None)), label=None), StatementExpression(expression=MethodInvocation(arguments=[Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=1), Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=1)], member=setInt, postfix_operators=[], prefix_operators=[], qualifier=pstmt, selectors=[], type_arguments=None), label=None), StatementExpression(expression=Assignment(expressionl=MemberReference(member=rs, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), type==, value=MethodInvocation(arguments=[], member=executeQuery, postfix_operators=[], prefix_operators=[], qualifier=pstmt, selectors=[], type_arguments=None)), label=None), IfStatement(condition=MethodInvocation(arguments=[], member=next, postfix_operators=[], prefix_operators=[], qualifier=rs, selectors=[], type_arguments=None), else_statement=None, label=None, then_statement=BlockStatement(label=None, statements=[LocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=MethodInvocation(arguments=[Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"id\")], member=getInt, postfix_operators=[], prefix_operators=[], qualifier=rs, selectors=[], type_arguments=None), name=id)], modifiers=set(), type=BasicType(dimensions=[], name=int)), LocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=MethodInvocation(arguments=[Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"name\")], member=getString, postfix_operators=[], prefix_operators=[], qualifier=rs, selectors=[], type_arguments=None), name=name)], modifiers=set(), type=ReferenceType(arguments=None, dimensions=[], name=String, sub_type=None)), LocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=MethodInvocation(arguments=[Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"balance\")], member=getDouble, postfix_operators=[], prefix_operators=[], qualifier=rs, selectors=[], type_arguments=None), name=balance)], modifiers=set(), type=BasicType(dimensions=[], name=double)), StatementExpression(expression=MethodInvocation(arguments=[BinaryOperation(operandl=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"ID: \"), operandr=MemberReference(member=id, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), operator=+)], member=println, postfix_operators=[], prefix_operators=[], qualifier=System.out, selectors=[], type_arguments=None), label=None), StatementExpression(expression=MethodInvocation(arguments=[BinaryOperation(operandl=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"Name: \"), operandr=MemberReference(member=name, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), operator=+)], member=println, postfix_operators=[], prefix_operators=[], qualifier=System.out, selectors=[], type_arguments=None), label=None), StatementExpression(expression=MethodInvocation(arguments=[BinaryOperation(operandl=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"Balance: \"), operandr=MemberReference(member=balance, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), operator=+)], member=println, postfix_operators=[], prefix_operators=[], qualifier=System.out, selectors=[], type_arguments=None), label=None)]))], catches=[CatchClause(block=[StatementExpression(expression=MethodInvocation(arguments=[], member=printStackTrace, postfix_operators=[], prefix_operators=[], qualifier=e, selectors=[], type_arguments=None), label=None)], label=None, parameter=CatchClauseParameter(annotations=None, modifiers=None, name=e, types=['SQLException']))], finally_block=[TryStatement(block=[IfStatement(condition=BinaryOperation(operandl=MemberReference(member=rs, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), operandr=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=null), operator=!=), else_statement=None, label=None, then_statement=StatementExpression(expression=MethodInvocation(arguments=[], member=close, postfix_operators=[], prefix_operators=[], qualifier=rs, selectors=[], type_arguments=None), label=None)), IfStatement(condition=BinaryOperation(operandl=MemberReference(member=pstmt, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), operandr=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=null), operator=!=), else_statement=None, label=None, then_statement=StatementExpression(expression=MethodInvocation(arguments=[], member=close, postfix_operators=[], prefix_operators=[], qualifier=pstmt, selectors=[], type_arguments=None), label=None)), IfStatement(condition=BinaryOperation(operandl=MemberReference(member=conn, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), operandr=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=null), operator=!=), else_statement=None, label=None, then_statement=StatementExpression(expression=MethodInvocation(arguments=[], member=close, postfix_operators=[], prefix_operators=[], qualifier=conn, selectors=[], type_arguments=None), label=None))], catches=[CatchClause(block=[StatementExpression(expression=MethodInvocation(arguments=[], member=printStackTrace, postfix_operators=[], prefix_operators=[], qualifier=e, selectors=[], type_arguments=None), label=None)], label=None, parameter=CatchClauseParameter(annotations=None, modifiers=None, name=e, types=['SQLException']))], finally_block=None, label=None, resources=None)], label=None, resources=None)",
"source_code": " public void DatabaseExample() \n {\n String url = \"jdbc:mysql://localhost:3306/mydatabase\";\n String user = \"root\";\n String password = \"password\";\n\n Connection conn = null;\n PreparedStatement pstmt = null;\n ResultSet rs = null;\n\n try {\n // \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc5f0\uacb0\n conn = DriverManager.getConnection(url, user, password);\n\n // SQL \ucffc\ub9ac \uc900\ube44\n String sql = \"SELECT id, name, balance FROM users WHERE id = ?\";\n pstmt = conn.prepareStatement(sql);\n pstmt.setInt(1, 1); // \uc608\uc2dc\ub85c ID\uac00 1\uc778 \uc0ac\uc6a9\uc790\ub97c \uc870\ud68c\n\n // \ucffc\ub9ac \uc2e4\ud589\n rs = pstmt.executeQuery();\n\n // \uacb0\uacfc \ucc98\ub9ac\n if (rs.next()) {\n int id = rs.getInt(\"id\");\n String name = rs.getString(\"name\");\n double balance = rs.getDouble(\"balance\");\n\n System.out.println(\"ID: \" + id);\n System.out.println(\"Name: \" + name);\n System.out.println(\"Balance: \" + balance);\n }\n } catch (SQLException e) {\n e.printStackTrace();\n } finally {\n // \uc790\uc6d0 \ud574\uc81c\n try {\n if (rs != null) rs.close();\n if (pstmt != null) pstmt.close();\n if (conn != null) conn.close();"
},
{
"sensitivity": 2,
"file_path": "christmas\\src\\main\\java\\christmas\\EventControl.java",
"method_name": "EventControl.SwitchExample.nextLine",
"tree_position": "54-79",
"cut_tree": "Method: SwitchExample()\nBody:\nLocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=ClassCreator(arguments=[MemberReference(member=in, postfix_operators=[], prefix_operators=[], qualifier=System, selectors=[])], body=None, constructor_type_arguments=None, postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], type=ReferenceType(arguments=None, dimensions=None, name=Scanner, sub_type=None)), name=scanner)], modifiers=set(), type=ReferenceType(arguments=None, dimensions=[], name=Scanner, sub_type=None))\nStatementExpression(expression=MethodInvocation(arguments=[Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"\uc635\uc158\uc744 \uc120\ud0dd\ud558\uc138\uc694 (1: \uc774\ub984 \uc785\ub825, 2: \ub098\uc774 \uc785\ub825, 3: \ub3c4\uc2dc \uc785\ub825): \")], member=println, postfix_operators=[], prefix_operators=[], qualifier=System.out, selectors=[], type_arguments=None), label=None)\nLocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=MethodInvocation(arguments=[], member=nextInt, postfix_operators=[], prefix_operators=[], qualifier=scanner, selectors=[], type_arguments=None), name=option)], modifiers=set(), type=BasicType(dimensions=[], name=int))\nStatementExpression(expression=MethodInvocation(arguments=[], member=nextLine, postfix_operators=[], prefix_operators=[], qualifier=scanner, selectors=[], type_arguments=None), label=None)\nSwitchStatement(cases=[SwitchStatementCase(case=[Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=1)], statements=[StatementExpression(expression=MethodInvocation(arguments=[Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"\uc774\ub984\uc744 \uc785\ub825\ud558\uc138\uc694: \")], member=println, postfix_operators=[], prefix_operators=[], qualifier=System.out, selectors=[], type_arguments=None), label=None), LocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=MethodInvocation(arguments=[], member=nextLine, postfix_operators=[], prefix_operators=[], qualifier=scanner, selectors=[], type_arguments=None), name=name)], modifiers=set(), type=ReferenceType(arguments=None, dimensions=[], name=String, sub_type=None)), StatementExpression(expression=MethodInvocation(arguments=[BinaryOperation(operandl=BinaryOperation(operandl=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"\uc785\ub825\ud55c \uc774\ub984\uc740 \"), operandr=MemberReference(member=name, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), operator=+), operandr=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"\uc785\ub2c8\ub2e4.\"), operator=+)], member=println, postfix_operators=[], prefix_operators=[], qualifier=System.out, selectors=[], type_arguments=None), label=None), BreakStatement(goto=None, label=None)]), SwitchStatementCase(case=[Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=2)], statements=[StatementExpression(expression=MethodInvocation(arguments=[Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"\ub098\uc774\ub97c \uc785\ub825\ud558\uc138\uc694: \")], member=println, postfix_operators=[], prefix_operators=[], qualifier=System.out, selectors=[], type_arguments=None), label=None), LocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=MethodInvocation(arguments=[], member=nextInt, postfix_operators=[], prefix_operators=[], qualifier=scanner, selectors=[], type_arguments=None), name=age)], modifiers=set(), type=BasicType(dimensions=[], name=int)), StatementExpression(expression=MethodInvocation(arguments=[BinaryOperation(operandl=BinaryOperation(operandl=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"\uc785\ub825\ud55c \ub098\uc774\ub294 \"), operandr=MemberReference(member=age, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), operator=+), operandr=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"\uc785\ub2c8\ub2e4.\"), operator=+)], member=println, postfix_operators=[], prefix_operators=[], qualifier=System.out, selectors=[], type_arguments=None), label=None), BreakStatement(goto=None, label=None)]), SwitchStatementCase(case=[], statements=[StatementExpression(expression=MethodInvocation(arguments=[Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"\uc720\ud6a8\ud55c \uc635\uc158\uc744 \uc120\ud0dd\ud558\uc138\uc694.\")], member=println, postfix_operators=[], prefix_operators=[], qualifier=System.out, selectors=[], type_arguments=None), label=None), BreakStatement(goto=None, label=None)])], expression=MemberReference(member=option, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), label=None)\nStatementExpression(expression=MethodInvocation(arguments=[], member=close, postfix_operators=[], prefix_operators=[], qualifier=scanner, selectors=[], type_arguments=None), label=None)",
"source_code": " public void SwitchExample() \n {\n \n Scanner scanner = new Scanner(System.in);\n\n System.out.println(\"\uc635\uc158\uc744 \uc120\ud0dd\ud558\uc138\uc694 (1: \uc774\ub984 \uc785\ub825, 2: \ub098\uc774 \uc785\ub825, 3: \ub3c4\uc2dc \uc785\ub825): \");\n int option = scanner.nextInt();\n scanner.nextLine(); // \ubc84\ud37c\ub97c \ube44\uc6b0\uae30 \uc704\ud55c \ucf54\ub4dc\n\n switch (option) {\n case 1:\n System.out.println(\"\uc774\ub984\uc744 \uc785\ub825\ud558\uc138\uc694: \");\n String name = scanner.nextLine();\n System.out.println(\"\uc785\ub825\ud55c \uc774\ub984\uc740 \" + name + \"\uc785\ub2c8\ub2e4.\");\n break;\n case 2:\n System.out.println(\"\ub098\uc774\ub97c \uc785\ub825\ud558\uc138\uc694: \");\n int age = scanner.nextInt();\n System.out.println(\"\uc785\ub825\ud55c \ub098\uc774\ub294 \" + age + \"\uc785\ub2c8\ub2e4.\");\n break;\n default:\n System.out.println(\"\uc720\ud6a8\ud55c \uc635\uc158\uc744 \uc120\ud0dd\ud558\uc138\uc694.\");\n break;\n }\n\n scanner.close();"
},
{
"sensitivity": 2,
"file_path": "christmas\\src\\main\\java\\christmas\\EventControl.java",
"method_name": "EventControl.inputDate.readLine",
"tree_position": "132-146",
"cut_tree": "Method: inputDate()\nBody:\nLocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=MethodInvocation(arguments=[], member=readLine, postfix_operators=[], prefix_operators=[], qualifier=Console, selectors=[], type_arguments=None), name=date)], modifiers=set(), type=ReferenceType(arguments=None, dimensions=[], name=String, sub_type=None))\nStatementExpression(expression=MethodInvocation(arguments=[BinaryOperation(operandl=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"\ud14d\uc2a4\ud2b8\"), operandr=MemberReference(member=date, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), operator=+)], member=println, postfix_operators=[], prefix_operators=[], qualifier=System.out, selectors=[], type_arguments=None), label=None)\nLocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=MethodInvocation(arguments=[], member=nextLine, postfix_operators=[], prefix_operators=[], qualifier=scanner, selectors=[], type_arguments=None), name=new_scan_taint2)], modifiers=set(), type=ReferenceType(arguments=None, dimensions=[], name=String, sub_type=None))\nLocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"a\"), name=a)], modifiers=set(), type=ReferenceType(arguments=None, dimensions=[], name=String, sub_type=None))\nStatementExpression(expression=Assignment(expressionl=MemberReference(member=a, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), type==, value=MemberReference(member=date, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[])), label=None)\nStatementExpression(expression=MethodInvocation(arguments=[], member=close, postfix_operators=[], prefix_operators=[], qualifier=inputStream, selectors=[], type_arguments=None), label=None)\nWhileStatement(body=BlockStatement(label=None, statements=[StatementExpression(expression=MethodInvocation(arguments=[], member=tryAgainMessage, postfix_operators=[], prefix_operators=[], qualifier=EventView, selectors=[], type_arguments=None), label=None), StatementExpression(expression=Assignment(expressionl=MemberReference(member=date, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), type==, value=MethodInvocation(arguments=[], member=readLine, postfix_operators=[], prefix_operators=[], qualifier=console, selectors=[], type_arguments=None)), label=None), StatementExpression(expression=MethodInvocation(arguments=[MethodInvocation(arguments=[MemberReference(member=a, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[])], member=parseInt, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[], type_arguments=None)], member=setDate, postfix_operators=[], prefix_operators=[], qualifier=EventModel, selectors=[], type_arguments=None), label=None)]), condition=MethodInvocation(arguments=[MemberReference(member=date, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[])], member=catchDateError, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[], type_arguments=None), label=None)\nStatementExpression(expression=MethodInvocation(arguments=[MethodInvocation(arguments=[MemberReference(member=date, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[])], member=parseInt, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[], type_arguments=None)], member=setDate, postfix_operators=[], prefix_operators=[], qualifier=EventModel, selectors=[], type_arguments=None), label=None)",
"source_code": " public void inputDate() {\n String date = Console.readLine();\n System.out.println(\"\ud14d\uc2a4\ud2b8\" + date);\n String new_scan_taint2 = scanner.nextLine();\n String a = \"a\";\n a=date;\n \n inputStream.close();\n while (catchDateError(date)) {\n EventView.tryAgainMessage();\n date = console.readLine();\n EventModel.setDate(parseInt(a));\n }\n\n EventModel.setDate(parseInt(date));"
},
{
"sensitivity": 2,
"file_path": "christmas\\src\\main\\java\\christmas\\EventControl.java",
"method_name": "EventControl.inputMenu.readLine",
"tree_position": "158-168",
"cut_tree": "Method: inputMenu()\nBody:\nStatementExpression(expression=MethodInvocation(arguments=[], member=orgerGuideMessage, postfix_operators=[], prefix_operators=[], qualifier=EventView, selectors=[], type_arguments=None), label=None)\nLocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=MethodInvocation(arguments=[], member=readLine, postfix_operators=[], prefix_operators=[], qualifier=Console, selectors=[], type_arguments=None), name=menu)], modifiers=set(), type=ReferenceType(arguments=None, dimensions=[], name=String, sub_type=None))\nWhileStatement(body=BlockStatement(label=None, statements=[StatementExpression(expression=MethodInvocation(arguments=[], member=eraseOrderedMenu, postfix_operators=[], prefix_operators=[], qualifier=EventModel, selectors=[], type_arguments=None), label=None), StatementExpression(expression=MethodInvocation(arguments=[], member=tryAgainMessage, postfix_operators=[], prefix_operators=[], qualifier=EventView, selectors=[], type_arguments=None), label=None), StatementExpression(expression=Assignment(expressionl=MemberReference(member=menu, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), type==, value=MethodInvocation(arguments=[], member=readLine, postfix_operators=[], prefix_operators=[], qualifier=Console, selectors=[], type_arguments=None)), label=None)]), condition=MethodInvocation(arguments=[MemberReference(member=menu, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[])], member=catchMenuError, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[], type_arguments=None), label=None)\nStatementExpression(expression=MethodInvocation(arguments=[], member=printOrderedMenu, postfix_operators=[], prefix_operators=[], qualifier=EventView, selectors=[], type_arguments=None), label=None)",
"source_code": " public void inputMenu() {\n EventView.orgerGuideMessage();\n\n String menu = Console.readLine();\n while (catchMenuError(menu)) {\n EventModel.eraseOrderedMenu();\n EventView.tryAgainMessage();\n menu = Console.readLine();\n }\n\n EventView.printOrderedMenu();"
},
{
"sensitivity": 2,
"file_path": "christmas\\src\\main\\java\\christmas\\EventControl.java",
"method_name": "EventControl.catchMenuError",
"tree_position": "171-174",
"cut_tree": "Method: catchMenuError(String menu)\nBody:\nTryStatement(block=[StatementExpression(expression=MethodInvocation(arguments=[MemberReference(member=menu, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[])], member=checkMenuError, postfix_operators=[], prefix_operators=[], qualifier=EventControlError, selectors=[], type_arguments=None), label=None), ReturnStatement(expression=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=false), label=None)], catches=[CatchClause(block=[ReturnStatement(expression=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=true), label=None)], label=None, parameter=CatchClauseParameter(annotations=None, modifiers=None, name=e, types=['IllegalArgumentException']))], finally_block=None, label=None, resources=None)",
"source_code": " private boolean catchMenuError(String menu) {\n try {\n EventControlError.checkMenuError(menu);\n return false;"
},
{
"sensitivity": 2,
"file_path": "christmas\\src\\main\\java\\christmas\\EventControlError.java",
"method_name": "EventControlError.checkMenuError",
"tree_position": "18-24",
"cut_tree": "Method: checkMenuError(String menu)\nBody:\nIfStatement(condition=MethodInvocation(arguments=[MemberReference(member=menu, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[])], member=isOneMenu, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[], type_arguments=None), else_statement=None, label=None, then_statement=BlockStatement(label=None, statements=[StatementExpression(expression=MethodInvocation(arguments=[MemberReference(member=menu, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[])], member=checkOneMenuErrors, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[], type_arguments=None), label=None), StatementExpression(expression=MethodInvocation(arguments=[MethodInvocation(arguments=[], member=getOrderedMenu, postfix_operators=[], prefix_operators=[], qualifier=EventModel, selectors=[], type_arguments=None)], member=onlyDrinksError, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[], type_arguments=None), label=None), ReturnStatement(expression=None, label=None)]))\nStatementExpression(expression=MethodInvocation(arguments=[MemberReference(member=menu, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[])], member=checkManyMenuErrors, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[], type_arguments=None), label=None)",
"source_code": " public static void checkMenuError(String menu) {\n if (isOneMenu(menu)) {\n checkOneMenuErrors(menu);\n onlyDrinksError(EventModel.getOrderedMenu());\n return;\n }\n checkManyMenuErrors(menu);"
},
{
"sensitivity": 2,
"file_path": "christmas\\src\\main\\java\\christmas\\EventControlError.java",
"method_name": "EventControlError.checkOneMenuErrors",
"tree_position": "36-43",
"cut_tree": "Method: checkOneMenuErrors(String oneMenu)\nBody:\nStatementExpression(expression=MethodInvocation(arguments=[MemberReference(member=oneMenu, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[])], member=checkMenuFormError, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[], type_arguments=None), label=None)\nLocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=MethodInvocation(arguments=[Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"-\")], member=split, postfix_operators=[], prefix_operators=[], qualifier=oneMenu, selectors=[], type_arguments=None), name=menuInfo)], modifiers=set(), type=ReferenceType(arguments=None, dimensions=[None], name=String, sub_type=None))\nStatementExpression(expression=MethodInvocation(arguments=[MemberReference(member=menuInfo, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[ArraySelector(index=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=0))])], member=checkMenuNameError, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[], type_arguments=None), label=None)\nStatementExpression(expression=MethodInvocation(arguments=[MemberReference(member=menuInfo, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[ArraySelector(index=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=1))])], member=checkMenuCountError, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[], type_arguments=None), label=None)\nStatementExpression(expression=MethodInvocation(arguments=[MemberReference(member=menuInfo, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[ArraySelector(index=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=0))])], member=checkMenuDuplicateError, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[], type_arguments=None), label=None)\nStatementExpression(expression=MethodInvocation(arguments=[MemberReference(member=menuInfo, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[])], member=setOrderedMenu, postfix_operators=[], prefix_operators=[], qualifier=EventModel, selectors=[], type_arguments=None), label=None)",
"source_code": " private static void checkOneMenuErrors(String oneMenu) {\n checkMenuFormError(oneMenu);\n String[] menuInfo = oneMenu.split(\"-\");\n checkMenuNameError(menuInfo[0]);\n checkMenuCountError(menuInfo[1]);\n checkMenuDuplicateError(menuInfo[0]);\n \n EventModel.setOrderedMenu(menuInfo);"
},
{
"sensitivity": 2,
"file_path": "christmas\\src\\main\\java\\christmas\\EventModel.java",
"method_name": "EventModel.setOrderedMenu",
"tree_position": "19-22",
"cut_tree": "Method: setOrderedMenu(String menuInfo)\nBody:\nStatementExpression(expression=MethodInvocation(arguments=[MemberReference(member=menuInfo, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[])], member=add, postfix_operators=[], prefix_operators=[], qualifier=orderedMenu, selectors=[], type_arguments=None), label=None)\nStatementExpression(expression=Assignment(expressionl=MemberReference(member=leftMenus, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), type=-=, value=MethodInvocation(arguments=[MemberReference(member=menuInfo, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[ArraySelector(index=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=1))])], member=parseInt, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[], type_arguments=None)), label=None)\nStatementExpression(expression=MethodInvocation(arguments=[MemberReference(member=leftMenus, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[])], member=println, postfix_operators=[], prefix_operators=[], qualifier=System.out, selectors=[], type_arguments=None), label=None)",
"source_code": " public static void setOrderedMenu(String[] menuInfo) {\n orderedMenu.add(menuInfo);\n leftMenus -= parseInt(menuInfo[1]);\n System.out.println(leftMenus);"
},
{
"sensitivity": 2,
"file_path": "christmas\\src\\main\\java\\christmas\\EventControlError.java",
"method_name": "EventControlError.checkManyMenuErrors",
"tree_position": "46-51",
"cut_tree": "Method: checkManyMenuErrors(String menu)\nBody:\nLocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=MethodInvocation(arguments=[Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\",\")], member=split, postfix_operators=[], prefix_operators=[], qualifier=menu, selectors=[], type_arguments=None), name=menus)], modifiers=set(), type=ReferenceType(arguments=None, dimensions=[None], name=String, sub_type=None))\nForStatement(body=BlockStatement(label=None, statements=[StatementExpression(expression=MethodInvocation(arguments=[MemberReference(member=oneMenu, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[])], member=checkOneMenuErrors, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[], type_arguments=None), label=None)]), control=EnhancedForControl(iterable=MemberReference(member=menus, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), var=VariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=None, initializer=None, name=oneMenu)], modifiers=set(), type=ReferenceType(arguments=None, dimensions=[], name=String, sub_type=None))), label=None)\nStatementExpression(expression=MethodInvocation(arguments=[MethodInvocation(arguments=[], member=getOrderedMenu, postfix_operators=[], prefix_operators=[], qualifier=EventModel, selectors=[], type_arguments=None)], member=onlyDrinksError, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[], type_arguments=None), label=None)",
"source_code": " private static void checkManyMenuErrors(String menu) {\n String[] menus = menu.split(\",\");\n for (String oneMenu : menus) {\n checkOneMenuErrors(oneMenu);\n }\n onlyDrinksError(EventModel.getOrderedMenu());"
},
{
"sensitivity": 2,
"file_path": "christmas\\src\\main\\java\\christmas\\Example.java",
"method_name": "Example.processMultipleInputs.readLine",
"tree_position": "79-84",
"cut_tree": "Method: processMultipleInputs()\nBody:\nLocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=MethodInvocation(arguments=[], member=console, postfix_operators=[], prefix_operators=[], qualifier=System, selectors=[], type_arguments=None), name=Console)], modifiers=set(), type=ReferenceType(arguments=None, dimensions=[], name=Console, sub_type=None))\nLocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=MethodInvocation(arguments=[], member=readLine, postfix_operators=[], prefix_operators=[], qualifier=Console, selectors=[], type_arguments=None), name=input)], modifiers=set(), type=ReferenceType(arguments=None, dimensions=[], name=String, sub_type=None))\nLocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=MethodInvocation(arguments=[Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\",\")], member=split, postfix_operators=[], prefix_operators=[], qualifier=input, selectors=[], type_arguments=None), name=parts)], modifiers=set(), type=ReferenceType(arguments=None, dimensions=[None], name=String, sub_type=None))\nForStatement(body=BlockStatement(label=None, statements=[StatementExpression(expression=MethodInvocation(arguments=[MemberReference(member=part, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[])], member=handleInputPart, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[], type_arguments=None), label=None)]), control=EnhancedForControl(iterable=MemberReference(member=parts, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), var=VariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=None, initializer=None, name=part)], modifiers=set(), type=ReferenceType(arguments=None, dimensions=[], name=String, sub_type=None))), label=None)",
"source_code": " public void processMultipleInputs() {\n Console Console = System.console();\n String input = Console.readLine();\n String[] parts = input.split(\",\");\n for (String part : parts) {\n handleInputPart(part);"
},
{
"sensitivity": 2,
"file_path": "christmas\\src\\main\\java\\christmas\\Example.java",
"method_name": "Example.handleInputPart",
"tree_position": "88-98",
"cut_tree": "Method: handleInputPart(String part)\nBody:\nLocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=1), name=not_tainted)], modifiers=set(), type=BasicType(dimensions=[], name=int))\nStatementExpression(expression=MethodInvocation(arguments=[MemberReference(member=not_tainted, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[])], member=println, postfix_operators=[], prefix_operators=[], qualifier=System.out, selectors=[], type_arguments=None), label=None)\nStatementExpression(expression=MethodInvocation(arguments=[MemberReference(member=part, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[])], member=println, postfix_operators=[], prefix_operators=[], qualifier=System.out, selectors=[], type_arguments=None), label=None)\nStatementExpression(expression=MethodInvocation(arguments=[BinaryOperation(operandl=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"Handling part: \"), operandr=MemberReference(member=part, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), operator=+)], member=println, postfix_operators=[], prefix_operators=[], qualifier=System.out, selectors=[], type_arguments=None), label=None)\nStatementExpression(expression=MethodInvocation(arguments=[BinaryOperation(operandl=MemberReference(member=part, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), operandr=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"Handling part: \"), operator=+)], member=println, postfix_operators=[], prefix_operators=[], qualifier=System.out, selectors=[], type_arguments=None), label=None)\nStatementExpression(expression=MethodInvocation(arguments=[BinaryOperation(operandl=BinaryOperation(operandl=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"Handling part: \"), operandr=MemberReference(member=part, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), operator=+), operandr=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"\ub2e4\ud56d \uccb4\ud06c3\"), operator=+)], member=println, postfix_operators=[], prefix_operators=[], qualifier=System.out, selectors=[], type_arguments=None), label=None)\nStatementExpression(expression=MethodInvocation(arguments=[BinaryOperation(operandl=BinaryOperation(operandl=BinaryOperation(operandl=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"Handling part: \"), operandr=MemberReference(member=part, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), operator=+), operandr=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"\ub2e4\ud56d \uccb4\ud06c4\"), operator=+), operandr=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"234234\"), operator=+)], member=println, postfix_operators=[], prefix_operators=[], qualifier=System.out, selectors=[], type_arguments=None), label=None)\nStatementExpression(expression=MethodInvocation(arguments=[BinaryOperation(operandl=BinaryOperation(operandl=BinaryOperation(operandl=BinaryOperation(operandl=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"Handling part: \"), operandr=MemberReference(member=part, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), operator=+), operandr=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"\ub2e4\ud56d \uccb4\ud06c5\"), operator=+), operandr=MemberReference(member=part, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), operator=+), operandr=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"etert\"), operator=+)], member=println, postfix_operators=[], prefix_operators=[], qualifier=System.out, selectors=[], type_arguments=None), label=None)\nStatementExpression(expression=MethodInvocation(arguments=[BinaryOperation(operandl=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"Handling part: \"), operandr=MemberReference(member=part, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), operator=+)], member=writeToFile, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[], type_arguments=None), label=None)",
"source_code": " public void handleInputPart(String part) {\n int not_tainted = 1;\n System.out.println(not_tainted);\n System.out.println(part);\n System.out.println(\"Handling part: \" + part);\n System.out.println(part + \"Handling part: \");\n System.out.println(\"Handling part: \" + part + \"\ub2e4\ud56d \uccb4\ud06c3\");\n System.out.println(\"Handling part: \" + part + \"\ub2e4\ud56d \uccb4\ud06c4\" + \"234234\");\n System.out.println(\"Handling part: \" + part + \"\ub2e4\ud56d \uccb4\ud06c5\" + part + \"etert\");\n\n writeToFile(\"Handling part: \" + part); // \ud30c\uc77c \ucd9c\ub825 \ucd94\uac00"
},
{
"sensitivity": 2,
"file_path": "christmas\\src\\main\\java\\christmas\\Application.java",
"method_name": "InputProcessor.main.nextLine",
"tree_position": "4-5",
"cut_tree": "Method: main(String args)\nBody:\nStatementExpression(expression=ClassCreator(arguments=[], body=None, constructor_type_arguments=None, postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], type=ReferenceType(arguments=None, dimensions=None, name=EventControl, sub_type=None)), label=None)",
"source_code": " public static void main(String[] args) {\n new EventControl();"
},
{
"sensitivity": 2,
"file_path": "christmas\\src\\main\\java\\christmas\\TaintAnalysisTest.java",
"method_name": "TaintAnalysisTest.doGet.nextLine",
"tree_position": "12-67",
"cut_tree": "Method: doGet(HttpServletRequest request, HttpServletResponse response)\nBody:\nLocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=ClassCreator(arguments=[MemberReference(member=in, postfix_operators=[], prefix_operators=[], qualifier=System, selectors=[])], body=None, constructor_type_arguments=None, postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], type=ReferenceType(arguments=None, dimensions=None, name=Scanner, sub_type=None)), name=scanner)], modifiers=set(), type=ReferenceType(arguments=None, dimensions=[], name=Scanner, sub_type=None))\nLocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=MethodInvocation(arguments=[], member=nextLine, postfix_operators=[], prefix_operators=[], qualifier=scanner, selectors=[], type_arguments=None), name=userInput)], modifiers=set(), type=ReferenceType(arguments=None, dimensions=[], name=String, sub_type=None))\nLocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=MethodInvocation(arguments=[], member=nextInt, postfix_operators=[], prefix_operators=[], qualifier=scanner, selectors=[], type_arguments=None), name=userInt)], modifiers=set(), type=BasicType(dimensions=[], name=int))\nLocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=MethodInvocation(arguments=[], member=nextDouble, postfix_operators=[], prefix_operators=[], qualifier=scanner, selectors=[], type_arguments=None), name=userDouble)], modifiers=set(), type=BasicType(dimensions=[], name=double))\nLocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=MethodInvocation(arguments=[Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"param\")], member=getParameter, postfix_operators=[], prefix_operators=[], qualifier=request, selectors=[], type_arguments=None), name=paramValue)], modifiers=set(), type=ReferenceType(arguments=None, dimensions=[], name=String, sub_type=None))\nLocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=MethodInvocation(arguments=[], member=getParameterMap, postfix_operators=[], prefix_operators=[], qualifier=request, selectors=[], type_arguments=None), name=paramMap)], modifiers=set(), type=ReferenceType(arguments=[TypeArgument(pattern_type=None, type=ReferenceType(arguments=None, dimensions=[], name=String, sub_type=None)), TypeArgument(pattern_type=None, type=ReferenceType(arguments=None, dimensions=[None], name=String, sub_type=None))], dimensions=[], name=Map, sub_type=None))\nLocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=MethodInvocation(arguments=[Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"User-Agent\")], member=getHeader, postfix_operators=[], prefix_operators=[], qualifier=request, selectors=[], type_arguments=None), name=headerValue)], modifiers=set(), type=ReferenceType(arguments=None, dimensions=[], name=String, sub_type=None))\nLocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=MethodInvocation(arguments=[], member=getCookies, postfix_operators=[], prefix_operators=[], qualifier=request, selectors=[], type_arguments=None), name=cookies)], modifiers=set(), type=ReferenceType(arguments=None, dimensions=[None], name=Cookie, sub_type=None))\nLocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=MethodInvocation(arguments=[Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"PATH\")], member=getenv, postfix_operators=[], prefix_operators=[], qualifier=System, selectors=[], type_arguments=None), name=envVar)], modifiers=set(), type=ReferenceType(arguments=None, dimensions=[], name=String, sub_type=None))\nLocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=MethodInvocation(arguments=[Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"user.home\")], member=getProperty, postfix_operators=[], prefix_operators=[], qualifier=System, selectors=[], type_arguments=None), name=propValue)], modifiers=set(), type=ReferenceType(arguments=None, dimensions=[], name=String, sub_type=None))\nLocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"SELECT * FROM users\"), name=dbValue)], modifiers=set(), type=ReferenceType(arguments=None, dimensions=[], name=String, sub_type=None))\nLocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=MethodInvocation(arguments=[], member=getExternalApiData, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[], type_arguments=None), name=apiData)], modifiers=set(), type=ReferenceType(arguments=None, dimensions=[], name=String, sub_type=None))\nLocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=MethodInvocation(arguments=[], member=getSession, postfix_operators=[], prefix_operators=[], qualifier=request, selectors=[], type_arguments=None), name=session)], modifiers=set(), type=ReferenceType(arguments=None, dimensions=[], name=HttpSession, sub_type=None))\nLocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=Cast(expression=MethodInvocation(arguments=[Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"username\")], member=getAttribute, postfix_operators=[], prefix_operators=[], qualifier=session, selectors=[], type_arguments=None), type=ReferenceType(arguments=None, dimensions=[], name=String, sub_type=None)), name=sessionAttr)], modifiers=set(), type=ReferenceType(arguments=None, dimensions=[], name=String, sub_type=None))\nStatementExpression(expression=MethodInvocation(arguments=[BinaryOperation(operandl=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"User input: \"), operandr=MemberReference(member=userInput, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), operator=+)], member=println, postfix_operators=[], prefix_operators=[], qualifier=System.out, selectors=[], type_arguments=None), label=None)\nStatementExpression(expression=MethodInvocation(arguments=[Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"User number: %d, %f\\n\"), MemberReference(member=userInt, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), MemberReference(member=userDouble, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[])], member=printf, postfix_operators=[], prefix_operators=[], qualifier=System.out, selectors=[], type_arguments=None), label=None)\nTryStatement(block=[StatementExpression(expression=MethodInvocation(arguments=[BinaryOperation(operandl=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"File output: \"), operandr=MemberReference(member=paramValue, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), operator=+)], member=println, postfix_operators=[], prefix_operators=[], qualifier=printWriter, selectors=[], type_arguments=None), label=None), StatementExpression(expression=MethodInvocation(arguments=[BinaryOperation(operandl=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"Direct file write: \"), operandr=MemberReference(member=headerValue, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), operator=+)], member=write, postfix_operators=[], prefix_operators=[], qualifier=fileWriter, selectors=[], type_arguments=None), label=None)], catches=None, finally_block=None, label=None, resources=[TryResource(annotations=[], modifiers=set(), name=fileWriter, type=ReferenceType(arguments=None, dimensions=[], name=FileWriter, sub_type=None), value=ClassCreator(arguments=[Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"output.txt\")], body=None, constructor_type_arguments=None, postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], type=ReferenceType(arguments=None, dimensions=None, name=FileWriter, sub_type=None))), TryResource(annotations=[], modifiers=set(), name=bufferedWriter, type=ReferenceType(arguments=None, dimensions=[], name=BufferedWriter, sub_type=None), value=ClassCreator(arguments=[MemberReference(member=fileWriter, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[])], body=None, constructor_type_arguments=None, postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], type=ReferenceType(arguments=None, dimensions=None, name=BufferedWriter, sub_type=None))), TryResource(annotations=[], modifiers=set(), name=printWriter, type=ReferenceType(arguments=None, dimensions=[], name=PrintWriter, sub_type=None), value=ClassCreator(arguments=[MemberReference(member=bufferedWriter, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[])], body=None, constructor_type_arguments=None, postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], type=ReferenceType(arguments=None, dimensions=None, name=PrintWriter, sub_type=None)))])\nStatementExpression(expression=MethodInvocation(arguments=[], member=getWriter, postfix_operators=[], prefix_operators=[], qualifier=response, selectors=[MethodInvocation(arguments=[BinaryOperation(operandl=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"Response: \"), operandr=MemberReference(member=apiData, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), operator=+)], member=write, postfix_operators=None, prefix_operators=None, qualifier=None, selectors=None, type_arguments=None)], type_arguments=None), label=None)\nStatementExpression(expression=MethodInvocation(arguments=[BinaryOperation(operandl=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"https://example.com?data=\"), operandr=MethodInvocation(arguments=[MemberReference(member=sessionAttr, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"UTF-8\")], member=encode, postfix_operators=[], prefix_operators=[], qualifier=URLEncoder, selectors=[], type_arguments=None), operator=+)], member=sendRedirect, postfix_operators=[], prefix_operators=[], qualifier=response, selectors=[], type_arguments=None), label=None)\nLocalVariableDeclaration(annotations=[], declarators=[VariableDeclarator(dimensions=[], initializer=BinaryOperation(operandl=BinaryOperation(operandl=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"UPDATE users SET name = '\"), operandr=MemberReference(member=userInput, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), operator=+), operandr=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"'\"), operator=+), name=updateQuery)], modifiers=set(), type=ReferenceType(arguments=None, dimensions=[], name=String, sub_type=None))\nStatementExpression(expression=MethodInvocation(arguments=[BinaryOperation(operandl=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"Logged info: \"), operandr=MemberReference(member=envVar, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), operator=+)], member=info, postfix_operators=[], prefix_operators=[], qualifier=logger, selectors=[], type_arguments=None), label=None)\nStatementExpression(expression=MethodInvocation(arguments=[BinaryOperation(operandl=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"Error occurred: \"), operandr=MemberReference(member=propValue, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), operator=+)], member=error, postfix_operators=[], prefix_operators=[], qualifier=logger, selectors=[], type_arguments=None), label=None)\nStatementExpression(expression=MethodInvocation(arguments=[Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"application/json\")], member=setContentType, postfix_operators=[], prefix_operators=[], qualifier=response, selectors=[], type_arguments=None), label=None)\nStatementExpression(expression=MethodInvocation(arguments=[Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"Custom-Header\"), MemberReference(member=headerValue, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[])], member=setHeader, postfix_operators=[], prefix_operators=[], qualifier=response, selectors=[], type_arguments=None), label=None)\nStatementExpression(expression=MethodInvocation(arguments=[], member=getOutputStream, postfix_operators=[], prefix_operators=[], qualifier=response, selectors=[MethodInvocation(arguments=[BinaryOperation(operandl=BinaryOperation(operandl=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"{'result':'\"), operandr=MemberReference(member=dbValue, postfix_operators=[], prefix_operators=[], qualifier=, selectors=[]), operator=+), operandr=Literal(postfix_operators=[], prefix_operators=[], qualifier=None, selectors=[], value=\"'}\"), operator=+)], member=write, postfix_operators=None, prefix_operators=None, qualifier=None, selectors=None, type_arguments=None)], type_arguments=None), label=None)",
"source_code": " public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\n // \uc0ac\uc6a9\uc790 \uc785\ub825\n Scanner scanner = new Scanner(System.in);\n String userInput = scanner.nextLine();\n int userInt = scanner.nextInt();\n double userDouble = scanner.nextDouble();\n \n // \ub124\ud2b8\uc6cc\ud06c \uc785\ub825\n String paramValue = request.getParameter(\"param\");\n Map<String, String[]> paramMap = request.getParameterMap();\n String headerValue = request.getHeader(\"User-Agent\");\n Cookie[] cookies = request.getCookies();\n \n // \ud658\uacbd \ubcc0\uc218\n String envVar = System.getenv(\"PATH\");\n String propValue = System.getProperty(\"user.home\");\n \n // \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc785\ub825 (\uac00\uc815)\n String dbValue = \"SELECT * FROM users\"; // \uc2e4\uc81c\ub85c\ub294 ResultSet\uc5d0\uc11c \uac00\uc838\uc640\uc57c \ud568\n \n // API \ud638\ucd9c (\uac00\uc815)\n String apiData = getExternalApiData();\n \n // \uc138\uc158 \ub370\uc774\ud130\n HttpSession session = request.getSession();\n String sessionAttr = (String) session.getAttribute(\"username\");\n \n // \ucd9c\ub825 \ud14c\uc2a4\ud2b8\n // \ucf58\uc194 \ucd9c\ub825\n System.out.println(\"User input: \" + userInput);\n System.out.printf(\"User number: %d, %f\\n\", userInt, userDouble);\n \n // \ud30c\uc77c \ucd9c\ub825\n try (FileWriter fileWriter = new FileWriter(\"output.txt\");\n BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);\n PrintWriter printWriter = new PrintWriter(bufferedWriter)) {\n \n printWriter.println(\"File output: \" + paramValue);\n fileWriter.write(\"Direct file write: \" + headerValue);\n }\n \n // \ub124\ud2b8\uc6cc\ud06c \ucd9c\ub825\n response.getWriter().write(\"Response: \" + apiData);\n response.sendRedirect(\"https://example.com?data=\" + URLEncoder.encode(sessionAttr, \"UTF-8\"));\n \n // \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc5c5\ub370\uc774\ud2b8 (\uac00\uc815)\n String updateQuery = \"UPDATE users SET name = '\" + userInput + \"'\"; // \uc2e4\uc81c\ub85c\ub294 PreparedStatement \uc0ac\uc6a9 \ud544\uc694\n \n // \ub85c\uadf8 \ucd9c\ub825\n logger.info(\"Logged info: \" + envVar);\n logger.error(\"Error occurred: \" + propValue);\n \n // API \uc751\ub2f5\n response.setContentType(\"application/json\");\n response.setHeader(\"Custom-Header\", headerValue);\n response.getOutputStream().write((\"{'result':'\" + dbValue + \"'}\").getBytes());"
}
]