1. A method to automatically correct an original source code, the method comprising: receiving, by a processor, the original source code; executing, by the processor, a static analyzer to detect source code problems in the original source code; executing, by the processor, an abstract syntax tree (AST) parser on the original source code to generate an AST comprising AST nodes; executing, by the processor, an XML query engine to evaluate AST node filter queries on the AST to filter out one or more AST nodes with defect patterns; creating, by the processor, query filter fix contexts based on the filtered AST nodes; creating, by the processor, static analyzer problem fix contexts based on the source code problems detected by the static analyzer, wherein the static analyzer problem fix contexts include information used to fix the source code problems in the AST; selecting, by the processor, automatic fixes based on the query filter fix contexts and the static analyzer problem fix contexts, wherein selecting the automatic fixes comprises selecting at least some of the automatic fixes based on types of the source code problems in the static analyzer problem fix contexts; executing, by the processor, the automatic fixes to transform the AST; and creating, by the processor, a modified source code by deserializing the transformed AST.