рд╣реБрдЖрд╡реЗрдИ рдХреНрд▓рд╛рдЙрдб: рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдЯреБрдбреЗ рдореЗрдВ рдпрд╣ рдмрд╛рджрд▓ рдЫрд╛рдП рд░рд╣реЗрдВрдЧреЗ

рдЪрд┐рддреНрд░ 2

рдЖрдЬрдХрд▓ рд╣рд░ рдХреЛрдИ рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддрд╛ рд╣реИред рдХрдИ рдХрдВрдкрдирд┐рдпреЛрдВ рдиреЗ рдЗрд╕ рдмрд╛рдЬрд╛рд░ рдЦрдВрдб рдХреЛ рдХреНрд░реИрдХ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡рд╛рдПрдВ рдмрдирд╛рдИ рд╣реИрдВред рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╣рдорд╛рд░реА рдЯреАрдо рдХреЛ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рднреА рдЗрди рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд░рд╣реА рд╣реИред рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рдирд┐рдпрдорд┐рдд рдкрд╛рдардХреЛрдВ рдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд▓рд┐рдпрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдмрд╛рд░ рд╣рдо рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВрдЧреЗред рдпрд╣ рд╡рд┐рдХрд▓реНрдк рд╣реБрдЖрд╡реЗрдИ рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдХреЛрдб рдкрд░ рдЧрд┐рд░ рдЧрдпрд╛ред

рдкрд░рд┐рдЪрдп


рдпрджрд┐ рдЖрдк PVS-Studio рдЯреАрдо рдкреЛрд╕реНрдЯ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдиреЗ рд╢рд╛рдпрдж рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХреНрд▓рд╛рдЙрдб рдЯреЗрдХреНрдиреЛрд▓реЙрдЬреА рдореЗрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЧрд╣рд░реА рдЦреБрджрд╛рдИ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕ рд╡рд┐рд╖рдп рдХреЛ рдХрд╡рд░ рдХрд░рддреЗ рд╣реБрдП рдХрдИ рд▓реЗрдЦ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдП рд╣реИрдВ:


рдЬрдм рдореИрдВ рдЖрдЧрд╛рдореА рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛, рдореБрдЭреЗ рд╣реБрдЖрд╡реЗрдИ рдХреА рдиреМрдХрд░реА рдХреА рдкреЗрд╢рдХрд╢ рдХреЗ рд╕рд╛рде рдПрдХ рдИрдореЗрд▓ рдорд┐рд▓рд╛ред рдЗрд╕ рдХрдВрдкрдиреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЙрдирдХреА рдЕрдкрдиреА рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡рд╛рдПрдВ рдереАрдВ, рд▓реЗрдХрд┐рди рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЗрди рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб GitHub рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИред рдпрд╣ рдЗрд╕ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдХрдВрдкрдиреА рдХреЛ рдЪреБрдирдиреЗ рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░рдг рдерд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдПрдХ рдЪреАрдиреА рдЛрд╖рд┐ рдиреЗ рдХрд╣рд╛: "рджреБрд░реНрдШрдЯрдирд╛рдПрдВ рдЖрдХрд╕реНрдорд┐рдХ рдирд╣реАрдВ рд╣реИрдВред"

рдореБрдЭреЗ рд╣рдорд╛рд░реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рджреЗрдВред рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдмрдЧ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╣реИ, рдЬрд┐рд╕реЗ рд╕реА, рд╕реА ++, рд╕реА # рдФрд░ рдЬрд╛рд╡рд╛ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╡рд┐рдВрдбреЛрдЬ, рд▓рд┐рдирдХреНрд╕ рдФрд░ рдореИрдХрдУрдПрд╕ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдпрд╛ рдЗрдВрдЯреЗрд▓реАрдЬ рдЖрдИрдбреАрдИрдП рдЬреИрд╕реЗ рдХреНрд▓рд╛рд╕рд┐рдХ рд╡рд┐рдХрд╛рд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╕реЛрдирд╛рд░рдХреНрдпреВрдм рдФрд░ рдЬреЗрдирдХрд┐рдВрд╕ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд░рдЦрддрд╛ рд╣реИ:


рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг


рдЬрдм рдореИрдВ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╢реЛрдз рдХрд░ рд░рд╣рд╛ рдерд╛, рддреЛ рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ Huawei рдХреЗ рдкрд╛рд╕ рдЙрдкрд▓рдмреНрдз рдЬрд╛рдирдХрд╛рд░реА, рдореИрдиреБрдЕрд▓ рдФрд░ рдЙрдирдХреА рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕реНрд░реЛрддреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдХреЗрдВрджреНрд░ рдерд╛ред рдЗрди рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЧреЛ, рдЬрд╛рд╡рд╛ рдФрд░ рдкрд╛рдпрдерди рдЬреИрд╕реА рднрд╛рд╖рд╛рдПрдБ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рдЪрд▓рд┐рдд рдереАрдВред

рдЪреВрдВрдХрд┐ рдореИрдВ рдЬрд╛рд╡рд╛ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдореЗрд░реЗ рдЬреНрдЮрд╛рди рдФрд░ рдХреМрд╢рд▓ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИред рдЖрдк рдПрдХ GitHub рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА huaweicloud рдореЗрдВ рд▓реЗрдЦ рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реНрд░реЛрддреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдХреЗрд╡рд▓ рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА:

  • рднрдВрдбрд╛рд░ рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ;
  • рд╕реНрдЯрд╛рд░реНрдЯ-рдЕрдк рдЬрд╛рд╡рд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЪрд▓рд╛рдПрдВред

рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рддреАрди рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛, рдЬрд┐рд╕ рдкрд░ рд╣рдо рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдмрд╛рдХреА рдЬрд╛рд╡рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдЖрдХрд╛рд░ рдмрд╣реБрдд рдЫреЛрдЯрд╛ рдирд┐рдХрд▓рд╛ред

рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкрд░рд┐рдгрд╛рдо (рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдлрд╛рдЗрд▓реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛):


рдХреБрдЫ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рдереАрдВ, рдЬреЛ рд╣рдореЗрдВ рдХреЛрдб рдХреА рдЙрдЪреНрдЪ рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рддреА рд╣реИрдВ, рд╕рднреА рдЗрд╕рд▓рд┐рдП рдХрд┐ рд╕рднреА рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреА рд╣реИрдВред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЛ рдХрднреА-рдХрднреА рдЧрд▓рдд рдХреЛрдб рд╕реЗ рд╕рд╣реА рдХреЛрдб рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЕрднрд╛рд╡ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджрд┐рди-рдм-рджрд┐рди рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред рдЖрдк рд▓реЗрдЦ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд╛рдЧрдд рдХрд░рддреЗ рд╣реИрдВ " рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЭреВрдареА рд╕рдХрд╛рд░рд╛рддреНрдордХрддрд╛ рдХреЗ рдЦрд┐рд▓рд╛рдл рд▓рдбрд╝рддреЗ рд╣реИрдВ, рдФрд░ рд╡реЗ рдРрд╕рд╛ рдХреНрдпреЛрдВ рдХрд░рддреЗ рд╣реИрдВ ред"

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд░реВрдк рдореЗрдВ рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рд╕рдмрд╕реЗ рд╣реЙрдЯрд╢реЙрдЯ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рдЪреБрдирд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ред

рдЖрд░рдВрднреАрдХрд░рдг рдХреНрд░рдо


V6050 рд╡рд░реНрдЧ рдЖрд░рдВрднреАрдХрд░рдг рдЪрдХреНрд░ рдореМрдЬреВрдж рд╣реИред 'рд▓реЙрдЧ' рдХреЗ рдЖрд░рдВрднреАрдХрд░рдг рд╕реЗ рдкрд╣рд▓реЗ 'INSTANCE' рдХрд╛ рдкреНрд░рд╛рд░рдВрдн рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред рдЕрдирдЯреНрд░рд╕реНрдЯреЗрдбрдПрд╕рдПрд╕рдПрд▓.рдЬрд╛рд╡рд╛ (32), рдЕрдирдЯреНрд░рд╕реНрдЯреЗрдбрдПрд╕рдПрд╕рдПрд▓.рдЬрд╛рд╡рд╛ (59), рдЕрдирдЯреНрд░рд┐рд╕реНрд╡рд░реНрдбрдПрд╕рдПрд╕рдПрд▓.рдЬрд╛рд╡рд╛ (33)

public class UntrustedSSL { private static final UntrustedSSL INSTANCE = new UntrustedSSL(); private static final Logger LOG = LoggerFactory.getLogger(UntrustedSSL.class); .... private UntrustedSSL() { try { .... } catch (Throwable t) { LOG.error(t.getMessage(), t); // <= } } } 

рдЕрдЧрд░ UnrustedSSL рдХреНрд▓рд╛рд╕ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдХреЛрдИ рдЕрдкрд╡рд╛рдж рд╣реИ, рддреЛ рд▓реЙрдЧ рд▓реЙрдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдЕрдкрд╡рд╛рдж рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреИрдЪ рдмреНрд▓реЙрдХ рдореЗрдВ рд▓реЙрдЧ рд╣реЛрддреА рд╣реИ ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕реНрдерд┐рд░ рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЗ рдЖрд░рдВрднреАрдХрд░рдг рдХреНрд░рдо рдХреЗ рдХрд╛рд░рдг, INSTANCE рдлрд╝реАрд▓реНрдб рдХреЛ рдЖрд░рдореНрдн рдХрд░рдиреЗ рдХреЗ рдХреНрд╖рдг рдореЗрдВ, LOG рдЕрднреА рддрдХ рдЖрд░рдВрднреАрдХреГрдд рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдЕрдкрд╡рд╛рдж рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд▓реЙрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо NullPointerException рдореЗрдВ рд╣реЛрдЧрд╛ред рдпрд╣ рдЕрдкрд╡рд╛рдж рдПрдХ рдЕрдиреНрдп рдЕрдкрд╡рд╛рдж ExceptionInInitializerError рдХрд╛ рдХрд╛рд░рдг рд╣реИ, рдЬреЛ рдХрд┐ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╕реНрдереИрддрд┐рдХ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдЖрд░рдВрднрд┐рдХ рд░реВрдк рд╕реЗ рдЕрдкрд╡рд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд▓реЙрдЧ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЛ INSTANCE рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рд╕реЗ рдкрд╣рд▓реЗ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ ред

рдЕрд╕рдВрдЧрдд рдЯрд╛рдЗрдкреЛ


V6005 рдЪрд░ 'this.metricSchema' рдЦреБрдж рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред OpenTSDBSchema.java (72)

 public class OpenTSDBSchema { @JsonProperty("metric") private List<SchemaField> metricSchema; .... public void setMetricsSchema(List<SchemaField> metricsSchema) { this.metricSchema = metricSchema; // <= } public void setMetricSchema(List<SchemaField> metricSchema) { this.metricSchema = metricSchema; } .... } 

рджреЛрдиреЛрдВ рд╡рд┐рдзрд┐рдпрд╛рдБ рдореАрдЯреНрд░рд┐рдХрд╕реНрдЪреЗрдорд╛ рдлрд╝реАрд▓реНрдб рд╕реЗрдЯ рдХрд░рддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд┐рдзрд┐ рдХреЗ рдирд╛рдо рдПрдХ 's' рдЪрд┐рдиреНрд╣ рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддреЗ рд╣реИрдВред рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдиреЗ рд╡рд┐рдзрд┐ рдХреЗ рдирд╛рдо рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рддрд░реНрдХреЛрдВ рдХрд╛ рдирд╛рдо рджрд┐рдпрд╛ред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЬрд┐рд╕ рд▓рд╛рдЗрди рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддрд╛ рд╣реИ , рд╡рд╣ рдореАрдЯреНрд░рд┐рдХ рдлрд╝реАрд▓реНрдб рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рд╕рдореНтАНрдорд┐рд▓рд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдореИрдЯреНрд░рд┐рдХреНрд╕рд╕рдЪреЗрдорд╛ рд╡рд┐рдзрд┐ рдХрд╛ рддрд░реНрдХ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

V6005 рдЪрд░ 'рд╕рд╕реНрдкреЗрдВрдб' рдЦреБрдж рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред SuspendTransferTaskRequest.java (77)

 public class SuspendTransferTaskRequest { .... private boolean suspend; .... public void setSuspend(boolean suspend) { suspend = suspend; } .... } 

рдпрд╣рд╛рдВ рд▓рд╛рдкрд░рд╡рд╛рд╣реА рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХ рддреБрдЪреНрдЫ рддреНрд░реБрдЯрд┐ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдирд┐рд▓рдВрдмрд┐рдд рддрд░реНрдХ рдХреЛ рдЦреБрдж рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдирд┐рд▓рдВрдмрд┐рдд рдлрд╝реАрд▓реНрдб рдХреЛ рдкреНрд░рд╛рдкреНрдд рддрд░реНрдХ рдХреЗ рдорд╛рди рдХреЛ рдирд┐рд╣рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╕рд╣реА рд╕рдВрд╕реНрдХрд░рдг:

 public void setSuspend(boolean suspend) { this.suspend = suspend; } 

рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рдг


рдЬреИрд╕рд╛ рдХрд┐ рдЕрдХреНрд╕рд░ рд╣реЛрддрд╛ рд╣реИ, V6007 рдирд┐рдпрдо рдЪреЗрддрд╛рд╡рдиреА рдорд╛рддреНрд░рд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдЧреЗ рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИред

V6007 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'рдлрд╝рд╛рдпрд░рд╡реЙрд▓рдкреЙрд▓рд┐рд╢рд┐рдпрдб == рдирд▓' рд╣рдореЗрд╢рд╛ рдЧрд▓рдд рд╣реЛрддрд╛ рд╣реИред рдлрд╝рд╛рдпрд░рд╡реЙрд▓рдкреЙрд▓реАрд╕реНрдХреВрд▓ рд╕реЗрд╡рд╛рдЗрдореНрдкреНрд▓.рдЬрд╛рд╡рд╛ (125)

 public FirewallPolicy removeFirewallRuleFromPolicy(String firewallPolicyId, String firewallRuleId) { checkNotNull(firewallPolicyId); checkNotNull(firewallRuleId); checkState(!(firewallPolicyId == null && firewallRuleId == null), "Either a Firewall Policy or Firewall Rule identifier must be set"); .... } 

рдЗрд╕ рд╡рд┐рдзрд┐ рдореЗрдВ рддрд░реНрдХреЛрдВ рдХреА рдЬрд╛рдБрдЪ nNotNull рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдХреА рдЬрд╛рддреА рд╣реИ:

 @CanIgnoreReturnValue public static <T> T checkNotNull(T reference) { if (reference == null) { throw new NullPointerException(); } else { return reference; } } 

CheckNotNull рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рддрд░реНрдХ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк 100% рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рджрд┐рдпрд╛ рдЧрдпрд╛ рддрд░реНрдХ рд╢реВрдиреНрдп рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реИред рдЪреВрдВрдХрд┐ CheckNotNull рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ removeFirewallRuleFromPolicy рд╡рд┐рдзрд┐ рдХреЗ рджреЛрдиреЛрдВ рддрд░реНрдХреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдирд▓ рдХреЗ рд▓рд┐рдП рдЙрдирдХреА рдЖрдЧреЗ рдХреА рдЬрд╛рдВрдЪ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐, рдЬрд╣рд╛рдБ рдлрд╝рд╛рдпрд░рд╡реЙрд▓рдкреЙрд▓реАрд╕рд╛рдЗрдб рдФрд░ рдлрд╝рд╛рдпрд░рд╡реЙрд▓рд░реБрд▓реНрдб рддрд░реНрдХ рд╢реВрдиреНрдп рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдЬрд╛рдБрдЪ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЪреЗрдХрд╕реНрдЯреИрдЯ рд╡рд┐рдзрд┐ рдХреЗ рдкрд╣рд▓реЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдлрд╛рдпрд░рд╡реЙрд▓ рдХреЗ рд▓рд┐рдП рдЗрд╕реА рддрд░рд╣ рдХреА рдЪреЗрддрд╛рд╡рдиреА рдЬрд╛рд░реА рдХреА рдЬрд╛рддреА рд╣реИред

  • V6007 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'рдлрд╝рд╛рдпрд░рд╡реЙрд▓RuleId == рдирд▓' рд╣рдореЗрд╢рд╛ рдЧрд▓рдд рд╣реИред рдлрд╝рд╛рдпрд░рд╡реЙрд▓рдкреЙрд▓реАрд╕реНрдХреВрд▓ рд╕реЗрд╡рд╛рдЗрдореНрдкреНрд▓.рдЬрд╛рд╡рд╛ (125)

V6007 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧрдкрд╛рдо! = рдирд▓' рд╣рдореЗрд╢рд╛ рд╕рдЪ рд╣реЛрддрд╛ рд╣реИред NetworkPolicyServiceImpl.java (60)

 private Invocation<NetworkServicePolicies> buildInvocation(Map<String, String> filteringParams) { .... if (filteringParams == null) { return servicePoliciesInvocation; } if (filteringParams != null) { // <= .... } return servicePoliciesInvocation; } 

рдЗрд╕ рд╡рд┐рдзрд┐ рдореЗрдВ, рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧрдкрд╛рд░реНрдореНрд╕ рддрд░реНрдХ рд╢реВрдиреНрдп рд╣реИ , рддреЛ рд╡рд┐рдзрд┐ рдПрдХ рдорд╛рди рд▓реМрдЯрд╛рддреА рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЬреЛ рдЪреЗрдХ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рд╡рд╣ рд╣рдореЗрд╢рд╛ рд╕рд╣реА рд╣реЛрдЧрд╛ рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рдЪреЗрдХ рдЕрд░реНрдерд╣реАрди рд╣реИред

13 рдФрд░ рдХрдХреНрд╖рд╛рдПрдВ рд╕рдорд╛рди рд╣реИрдВ:

  • V6007 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧрдкрд╛рдо! = рдирд▓' рд╣рдореЗрд╢рд╛ рд╕рдЪ рд╣реЛрддрд╛ рд╣реИред PolicyRuleServiceImpl.java (58)
  • V6007 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧрдкрд╛рдо! = рдирд▓' рд╣рдореЗрд╢рд╛ рд╕рдЪ рд╣реЛрддрд╛ рд╣реИред GroupServiceImpl.java (58)
  • V6007 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧрдкрд╛рдо! = рдирд▓' рд╣рдореЗрд╢рд╛ рд╕рдЪ рд╣реЛрддрд╛ рд╣реИред рдПрдХреНрд╕рдЯрд░реНрдирд▓рд╢рд┐рдк рд╕реЗрд╡рд╛рдЗрдореНрдкреНрд▓.рдЬрд╛рд╡рд╛ (57)
  • V6007 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧрдкрд╛рдо! = рдирд▓' рд╣рдореЗрд╢рд╛ рд╕рдЪ рд╣реЛрддрд╛ рд╣реИред L3policyServiceImpl.java (57)
  • V6007 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧрдкрд╛рдо! = рдирд▓' рд╣рдореЗрд╢рд╛ рд╕рдЪ рд╣реЛрддрд╛ рд╣реИред PolicyRuleSetServiceImpl.java (58)
  • рдФрд░ рдЗрд╕реА рддрд░рд╣ ...

рдЕрд╢рдХреНрдд рд╕рдВрджрд░реНрдн


V6008 'm.blockDeviceMapping' рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рдЕрд╢рдХреНрддред рдиреЛрд╡рд╛рд╕реЗрд╡рд░рдХреНрд░рд┐рдПрдЯ.рдЬрд╛рд╡рд╛ (390)

 @Override public ServerCreateBuilder blockDevice(BlockDeviceMappingCreate blockDevice) { if (blockDevice != null && m.blockDeviceMapping == null) { m.blockDeviceMapping = Lists.newArrayList(); } m.blockDeviceMapping.add(blockDevice); // <= return this; } 

рдЗрд╕ рд╡рд┐рдзрд┐ рдореЗрдВ, block.evice рддрд░реНрдХ рдХреЗ рдЕрд╢рдХреНрдд рд╣реЛрдиреЗ рдкрд░ m.blockDeviceMapping рд╕рдВрджрд░реНрдн рдлрд╝реАрд▓реНрдб рдХрд╛ рдЖрд░рдВрднреАрдХрд░рдг рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЗрд╕ рдлрд╝реАрд▓реНрдб рдХреЛ рдХреЗрд╡рд▓ рдЗрд╕ рд╡рд┐рдзрд┐ рдореЗрдВ рдЖрд░рдВрднреАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП m.blockDeviceMapping рдлрд╝реАрд▓реНрдб рд╕реЗ рдРрдб рдореЗрдердб рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдкрд░, NullPointerException рд╣реЛрдЧрд╛ред

V6008 рдлрд╝рдВрдХреНрд╢рди '<init>' рдореЗрдВ 'FileId.get (рдкрде)' рдХреА рд╕рдВрднрд╛рд╡рд┐рдд рдЕрд╢рдХреНрддрддрд╛ ред TrackedFile.java (140), TrackedFile.java (115)

 public TrackedFile(FileFlow<?> flow, Path path) throws IOException { this(flow, path, FileId.get(path), ....); } 

TrackedFile рд╡рд░реНрдЧ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рддреАрд╕рд░реЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд┐рд░ FileId.get (рдкрде) рд╡рд┐рдзрд┐ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд┐рдзрд┐ рд╢реВрдиреНрдп рд╣реЛ рд╕рдХрддреА рд╣реИ :

 public static FileId get(Path file) throws IOException { if (!Files.exists(file)) { return null; } .... } 

рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдирд┐рд░реНрдорд╛рддрд╛ рдореЗрдВ, рдЖрдИрдбреА рддрд░реНрдХ рддрдм рддрдХ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЗрд╕рдХрд╛ рдкрд╣рд▓рд╛ рдЙрдкрдпреЛрдЧ рди рд╣реЛ рдЬрд╛рдП:

 public TrackedFile(...., ...., FileId id, ....) throws IOException { .... FileId newId = FileId.get(path); if (!id.equals(newId)) { .... } } 

рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдЧрд░ рд╢реВрдиреНрдп рдХреЛ рд╡рд┐рдзрд┐ рдХреЗ рддреАрд╕рд░реЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ рдЕрдкрд╡рд╛рдж рд╣реЛрдЧрд╛ред

рдпрд╣рд╛рдБ рдПрдХ рдФрд░ рд╕рдорд╛рди рдорд╛рдорд▓рд╛ рд╣реИ:

  • V6008 'рдмрдлрд░' рдХреА рд╕рдВрднрд╛рд╡рд┐рдд рдЕрд╢рдХреНрддрддрд╛ред PublishingQueue.java (518)

V6008 'рдбреЗрдЯрд╛рдЯреЗрдореНрдкрд╛рдЗрд▓' рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рдЕрд╢рдХреНрддрддрд╛ред рдХреИрдЪреЗрдордирдЧрд░.рдЬрд╛рд╡рд╛ (91)

 @Override public void putToCache(PutRecordsRequest putRecordsRequest) { .... if (dataTmpFile == null || !dataTmpFile.exists()) { try { dataTmpFile.createNewFile(); // <= } catch (IOException e) { LOGGER.error("Failed to create cache tmp file, return.", e); return ; } } .... } 

рдлрд┐рд░ рд╕реЗ рдПрди.рдкреА.рдИ. рд╕рд╢рд░реНрдд рдСрдкрд░реЗрдЯрд░ рдореЗрдВ рдХрдИ рдЪреЗрдХ рд╢реВрдиреНрдп рд╡рд╕реНрддреБ рдбреЗрдЯрд╛рдЯреИрдореНрдкрдлрд╛рдЗрд▓ рдХреЛ рдЖрдЧреЗ рдХреА рдкрд░рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рджреЛ рдЯрд╛рдЗрдкреЛ рд╣реИрдВ рдФрд░ рдЪреЗрдХ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:

 if (dataTmpFile != null && !dataTmpFile.exists()) 

рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧ рдФрд░ рдирдХрд╛рд░рд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛


V6009 ' рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди ' рдлрд╝рдВрдХреНрд╢рди '-1' рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрдмрдХрд┐ рдЧреИрд░-рдирдХрд╛рд░рд╛рддреНрдордХ рдорд╛рди рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИред рддрд░реНрдХ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░реЗрдВ: 2. RemoveVersionProjectIdFromURL.java (37)

 @Override public String apply(String url) { String urlRmovePojectId = url.substring(0, url.lastIndexOf("/")); return urlRmovePojectId.substring(0, urlRmovePojectId.lastIndexOf("/")); } 

рдирд┐рд╣рд┐рддрд╛рд░реНрде рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ URL рдорд┐рд▓рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИред рдмрд╛рдж рдореЗрдВ, рдЗрд╕ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ lastIndexOf рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдИ рдмрд╛рд░ рдХрд╛рдЯ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рд╡рд┐рдзрд┐ lastIndexOf рдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдореЗрд▓ рдирд╣реАрдВ рдорд┐рд▓рддреА рд╣реИ, рддреЛ рдпрд╣ -1 рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧреАред рдпрд╣ StringIndexOutOfBoundsException рдХреЛ рд▓реЗ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡рд┐рдзрд┐ рдХреЗ рддрд░реНрдХреЛрдВ рдХреЛ рдЧреИрд░-рдирдХрд╛рд░рд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рд╣реА рд╡рд┐рдзрд┐ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рдХреЛ рдЗрдирдкреБрдЯ рддрд░реНрдХ рд╕рддреНрдпрд╛рдкрди рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ рдпрд╛ рдЬрд╛рдВрдЪрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ lastIndexOf рд╡рд┐рдзрд┐ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдЧреИрд░-рдирдХрд╛рд░рд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛рдПрдВ рд╣реИрдВред

рдпрд╣рд╛рдБ рдХреБрдЫ рдЕрдиреНрдп рд╕реНрдирд┐рдкреЗрдЯ рдЗрд╕реА рддрд░рд╣ рдХреА рдЪреАрдЬреЗрдВ рд╣реИрдВ:

  • V6009 'рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди' рдлрд╝рдВрдХреНрд╢рди '-1' рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрдмрдХрд┐ рдЧреИрд░-рдирдХрд╛рд░рд╛рддреНрдордХ рдорд╛рди рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИред рдирд┐рд░реАрдХреНрд╖рдг рддрд░реНрдХ: 2. RemoveProjectIdFromURL.java (37)
  • V6009 'рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди' рдлрд╝рдВрдХреНрд╢рди '-1' рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрдмрдХрд┐ рдЧреИрд░-рдирдХрд╛рд░рд╛рддреНрдордХ рдорд╛рди рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИред рддрд░реНрдХ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░реЗрдВ: 2. RemoveVersionProjectIdFromURL.java (38)

рднреВрд▓ рдЧрдП рдкрд░рд┐рдгрд╛рдо


V6010 рдлрд╝рдВрдХреНрд╢рди ' рдХреЙрдирдХреИрдЯ ' рдХреЗ рд░рд┐рдЯрд░реНрди рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред AKSK.java (278)

 public static String buildCanonicalHost(URL url) { String host = url.getHost(); int port = url.getPort(); if (port > -1) { host.concat(":" + Integer.toString(port)); } return host; } 

рдЗрд╕ рдХреЛрдб рдХреЛ рд▓рд┐рдЦрддреЗ рд╕рдордп, рдЗрд╕рдХреЗ рд▓реЗрдЦрдХ рдиреЗ рдЗрд╕ рдмрд╛рдд рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрд╛ рдХрд┐ рдХреЙрдиреНрдЯреНрд░рд╛рд╕реНрдЯ рд╡рд┐рдзрд┐ рдХреА рдПрдХ рдХреЙрд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреА рдЕрдкрд░рд┐рд╣рд╛рд░реНрдпрддрд╛ рдХреЗ рдХрд╛рд░рдг рд╣реЛрд╕реНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдирд╣реАрдВ рдмрджрд▓реЗрдЧреАред рд╕рд╣реА рд╡рд┐рдзрд┐ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП, рдХреЙрдирдХреИрдЯ рд╡рд┐рдзрд┐ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реЛрд╕реНрдЯ рдмреНрд▓реЙрдХ рдореЗрдВ рдЕрдЧрд░ рдмреНрд▓реЙрдХ рдореЗрдВ рд╕реМрдВрдкрд╛ рдЬрд╛рдирд╛ рд╣реИред рд╕рд╣реА рд╕рдВрд╕реНрдХрд░рдг:

 if (port > -1) { host = host.concat(":" + Integer.toString(port)); } 

рдЕрдкреНрд░рдпреБрдХреНрдд рдЪрд░


V6021 рдЪрд░ 'url' рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред TriggerV2Service.java (95)

 public ActionResponse deleteAllTriggersForFunction(String functionUrn) { checkArgument(!Strings.isNullOrEmpty(functionUrn), ....); String url = ClientConstants.FGS_TRIGGERS_V2 + ClientConstants.URI_SEP + functionUrn; return deleteWithResponse(uri(triggersUrlFmt, functionUrn)).execute(); } 

рдЗрд╕ рд╡рд┐рдзрд┐ рдореЗрдВ, url рд╡реИрд░рд┐рдПрдмрд▓ рдХреЛ рдЗрд╕рдХреЗ рдЖрд░рдВрднреАрдХрд░рдг рдХреЗ рдмрд╛рдж рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, url рдЪрд░ рдХреЛ functionUrn рдХреЗ рдмрдЬрд╛рдп рджреВрд╕рд░реЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ uri рд╡рд┐рдзрд┐ рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ functionUrn рдЪрд░ url рдЪрд░ рдХреЗ рдЖрд░рдВрдн рдореЗрдВ рднрд╛рдЧ рд▓реЗрддрд╛ рд╣реИред

рддрд░реНрдХ рдиреЗ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛


V6022 рдкреИрд░рд╛рдореАрдЯрд░ 'returnType' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдмреЙрдбреА рдХреЗ рдЕрдВрджрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред HttpRequest.java (68)

 public class HttpReQuest<R> { .... Class<R> returnType; .... public HttpRequest(...., Class<R> returnType) // <= { this.endpoint = endpoint; this.path = path; this.method = method; this.entity = entity; } .... public Class<R> getReturnType() { return returnType; } .... } 

рдЗрд╕ рдирд┐рд░реНрдорд╛рддрд╛ рдореЗрдВ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд░рд┐рдЯрд░реНрди рдЯрд╛рдЗрдк рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рднреВрд▓ рдЧрдпрд╛, рдФрд░ рд░рд┐рдЯрд░реНрди рдЯрд╛рдЗрдк рдлрд╝реАрд▓реНрдб рдореЗрдВ рдЗрд╕рдХреЗ рдореВрд▓реНрдп рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░рддрд╛ рд╣реИред рдЗрд╕реАрд▓рд┐рдП, рдЬрдм рдЗрд╕ рд░рдЪрдирд╛рдХрд╛рд░ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ getReturnType рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдирд▓ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рдерд╛, рдкрд╣рд▓реЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдПрдХ рд╣реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛


V6032 рдпрд╣ рдЕрдЬреАрдм рд╣реИ рдХрд┐ рд╡рд┐рдзрд┐ 'рд╕рдХреНрд╖рдо' рдХрд╛ рд╢рд░реАрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд┐рдзрд┐ 'рдЕрдХреНрд╖рдо' рдХреЗ рд╢рд░реАрд░ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред ServiceAction.java (32), ServiceAction.java (36)

 public class ServiceAction implements ModelEntity { private String binary; private String host; private ServiceAction(String binary, String host) { this.binary = binary; this.host = host; } public static ServiceAction enable(String binary, String host) { // <= return new ServiceAction(binary, host); } public static ServiceAction disable(String binary, String host) { // <= return new ServiceAction(binary, host); } .... } 

рджреЛ рд╕рдорд╛рди рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реЛрдирд╛ рдХреЛрдИ рдЧрд▓рддреА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рддрдереНрдп рдХрд┐ рджреЛ рд╡рд┐рдзрд┐рдпрд╛рдБ рдПрдХ рд╣реА рдХреНрд░рд┐рдпрд╛ рдХрд░рддреА рд╣реИрдВ, рдХрдо рд╕реЗ рдХрдо рдЕрдЬреАрдм рд╣реИред рдЙрдкрд░реЛрдХреНрдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдирд╛рдореЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рд╣рдо рдпрд╣ рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рд╡рд┐рдкрд░реАрдд рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рджреЛрдиреЛрдВ рд╡рд┐рдзрд┐рдпрд╛рдВ рдПрдХ рд╣реА рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ - ServiceAction рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ рдФрд░ рд╡рд╛рдкрд╕ рдХрд░реЗрдВред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рд╕рдХреНрд╖рдо рд╡рд┐рдзрд┐ рдХреЗ рдХреЛрдб рдХреЛ рдХреЙрдкреА рдХрд░рдХреЗ рдЕрдХреНрд╖рдо рд╡рд┐рдзрд┐ рдмрдирд╛рдИ рдЧрдИ рдереА, рд▓реЗрдХрд┐рди рд╡рд┐рдзрд┐ рдХрд╛ рд╢рд░реАрд░ рдПрдХ рд╣реА рд░рд╣рд╛ред

рдореБрдЦреНрдп рдмрд╛рдд рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рднреВрд▓ рдЧрдП


V6060 рдирд▓ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рддреНрдпрд╛рдкрд┐рдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ ' рдкрд░рдо ' рд╕рдВрджрд░реНрдн рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред DomainService.java (49), DomainService.java (46)

 public Domains list(Map<String, String> params) { Preconditions.checkNotNull(params.get("page_size"), ....); Preconditions.checkNotNull(params.get("page_number"), ....); Invocation<Domains> domainInvocation = get(Domains.class, uri("/domains")); if (params != null) { // <= .... } return domainInvocation.execute(this.buildExecutionOptions(Domains.class)); } 

рдЗрд╕ рдкрджреНрдзрддрд┐ рдореЗрдВ, рд▓реЗрдЦрдХ рдиреЗ рдирд▓ рдХреЗ рд▓рд┐рдП рдорд╛рдирдЪрд┐рддреНрд░ рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд░рдо рд╡рд┐рдзрд┐ рддрд░реНрдХ рд╕реЗ рджреЛ рдмрд╛рд░ рд╡рд┐рдзрд┐ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИред рдкреНрд░рд╛рдкреНрдд рд╡рд┐рдзрд┐ рдХрд╛ рдкрд░рд┐рдгрд╛рдо CheckNotNull рд╡рд┐рдзрд┐ рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕рдм рдХреБрдЫ рддрд╛рд░реНрдХрд┐рдХ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ! рдЕрдЧрд░ рдореЗрдВ рдЕрд╢рдХреНрдд рдХреЗ рд▓рд┐рдП рдкрд░рдореЗрд╕ рддрд░реНрдХ рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рдж рдпрд╣ рдЙрдореНрдореАрдж рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдЗрдирдкреБрдЯ рддрд░реНрдХ рд╢реВрдиреНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдЬрд╛рдБрдЪ рд╕реЗ рдкрд╣рд▓реЗ, рдЧреЗрдЯ рд╡рд┐рдзрд┐ рдХреЛ рдкрд╣рд▓реЗ рд╣реА рджреЛ рдмрд╛рд░ рдкрд╛рд░рд╛рдо рдХрд╣рд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИ ред рдпрджрд┐ рдирд▓ рдХреЛ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкрд╣рд▓реА рдмрд╛рд░ рдЬрдм рдЖрдк рдкреНрд░рд╛рдкреНрдд рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ , рддреЛ рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЗрд╕реА рддрд░рд╣ рдХреА рд╕реНрдерд┐рддрд┐ рддреАрди рдЕрдиреНрдп рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рд╣реЛрддреА рд╣реИ:

  • V6060 рдирд▓ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рддреНрдпрд╛рдкрд┐рдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ 'рдкрд░рдо' рд╕рдВрджрд░реНрдн рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред DomainService.java (389), DomainService.java (387)
  • V6060 рдирд▓ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рддреНрдпрд╛рдкрд┐рдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ 'рдкрд░рдо' рд╕рдВрджрд░реНрдн рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред DomainService.java (372), DomainService.java (369)
  • V6060 рдирд▓ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рддреНрдпрд╛рдкрд┐рдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ 'рдкрд░рдо' рд╕рдВрджрд░реНрдн рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред DomainService.java (353), DomainService.java (350)

рдирд┐рд╖реНрдХрд░реНрд╖


рдЖрдЬ рдХреА рдмрдбрд╝реА рдХрдВрдкрдирд┐рдпрд╛рдВ рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреА рд╣реИрдВред рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд▓реЛрдЧ рдЗрди рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ, рдПрдХ рд╕реЗрд╡рд╛ рдореЗрдВ рдЫреЛрдЯреА рд╕реА рддреНрд░реБрдЯрд┐ рднреА рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛рдПрдБ рдкреИрджрд╛ рдХрд░ рд╕рдХрддреА рд╣реИ рдФрд░ рд╕рд╛рде рд╣реА рдЕрддрд┐рд░рд┐рдХреНрдд рдиреБрдХрд╕рд╛рди рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЗ рджреБрд╖реНрдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдВрдкрдиреА рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд░реИрдХред рдорд╛рдирд╡реАрдп рджреЛрд╖реЛрдВ рдХреЛ рд╣рдореЗрд╢рд╛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ рдпрд╛ рдмрд╛рдж рдореЗрдВ рд╣рд░ рдХреЛрдИ рдЧрд▓рддреА рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИред рдпрд╣ рддрдереНрдп рдХреЛрдб рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рд╕рднреА рд╕рдВрднрд╡ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИред

PVS-Studio рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ Huawei рдХрдВрдкрдиреА рдХреЛ рдЕрдкрдиреА рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡рд╛рдУрдВ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реВрдЪрд┐рдд рдХрд░реЗрдЧрд╛ рддрд╛рдХрд┐ Huawei рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЙрди рдкрд░ рдмрд╕ рд╕рдХреЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рд▓реЗрдЦ рджреНрд╡рд╛рд░рд╛ рдХрд╡рд░ рдХрд┐рдП рдЧрдП рд╕реНрдереИрддрд┐рдХ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛ рдПрдХ рдмрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЗрд╕рдХреЗ рд╕рднреА рдлрд╛рдпрджреЗред рдЖрдк рдпрд╣рд╛рдВ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред

Source: https://habr.com/ru/post/hi477558/


All Articles