[{"data":1,"prerenderedAt":3664},["ShallowReactive",2],{"global-navigation":3,"page-\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fexpressions-exp\u002Fexp01-j":28,"surround-\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fexpressions-exp\u002Fexp01-j":2104,"sidebar-sei-cert-oracle-coding-standard-for-java":2111},[4,8],{"title":5,"path":6,"_path":6,"fromAppConfig":7},"Home","\u002F",true,{"title":9,"path":10,"children":11,"_path":27,"fromAppConfig":7},"Coding Standards","\u002Fcoding-standards\u002F",[12,15,18,21,24],{"title":13,"path":14},"Android Coding Standard","\u002Fandroid-secure-coding-standard\u002F",{"title":16,"path":17},"C Coding Standard","\u002Fsei-cert-c-coding-standard\u002F",{"title":19,"path":20},"C++ Coding Standard","\u002Fsei-cert-cpp-coding-standard\u002F",{"title":22,"path":23},"Java Coding Standard","\u002Fsei-cert-oracle-coding-standard-for-java\u002F",{"title":25,"path":26},"Perl Coding Standard","\u002Fsei-cert-perl-coding-standard\u002F","\u002Fcoding-standards",{"id":29,"title":30,"body":31,"description":2089,"extension":2090,"meta":2091,"navigation":7,"path":2100,"seo":2101,"stem":2102,"__hash__":2103},"content\u002F6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F06.expressions-exp\u002F3.exp01-j.md","EXP01-J. Do not use a null in a case where an object is required",{"type":32,"value":33,"toc":2074},"minimark",[34,38,47,78,97,102,136,383,387,390,564,567,582,695,703,707,714,891,906,910,939,1047,1066,1070,1084,1088,1096,1163,1168,1176,1831,1835,1848,1852,1905,1909,1915,1919,2047,2050,2070],[35,36,30],"h1",{"id":37},"exp01-j-do-not-use-a-null-in-a-case-where-an-object-is-required",[39,40,41,42,46],"p",{},"Do not use the ",[43,44,45],"code",{},"null"," value in any instance where an object is required, including the following cases:",[48,49,50,54,57,63,68],"ul",{},[51,52,53],"li",{},"Calling the instance method of a null object",[51,55,56],{},"Accessing or modifying the field of a null object",[51,58,59,60,62],{},"Taking the length of ",[43,61,45],{}," as if it were an array",[51,64,65,66,62],{},"Accessing or modifying the elements of ",[43,67,45],{},[51,69,70,71,73,74,77],{},"Throwing ",[43,72,45],{}," as if it were a ",[43,75,76],{},"Throwable"," value",[39,79,80,81,83,84,87,88,93,94,96],{},"Using a ",[43,82,45],{}," in cases where an object is required results in a ",[43,85,86],{},"NullPointerException"," being thrown, which interrupts execution of the program or thread. Code conforming to this coding standard will consequently terminate because ",[89,90,92],"a",{"href":91},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fexceptional-behavior-err\u002Ferr08-j","ERR08-J. Do not catch NullPointerException or any of its ancestors"," requires that ",[43,95,86],{}," is not caught.",[98,99,101],"h2",{"id":100},"noncompliant-code-example","Noncompliant Code Example",[39,103,104,105,109,110,113,114,117,118,121,122,124,125,128,129,131,132,135],{},"This noncompliant example shows a bug in Tomcat version 4.1.24, initially discovered by Reasoning [ ",[89,106,108],{"href":107},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-aa-references#RuleAA.References-Reasoning03","Reasoning 2003"," ]. The ",[43,111,112],{},"cardinality()"," method was designed to return the number of occurrences of object ",[43,115,116],{},"obj"," in collection ",[43,119,120],{},"col"," . One valid use of the ",[43,123,112],{}," method is to determine how many objects in the collection are null. However, because membership in the collection is checked using the expression ",[43,126,127],{},"obj.equals(elt)"," , a null pointer dereference is guaranteed whenever ",[43,130,116],{}," is null and ",[43,133,134],{},"elt"," is not null.",[137,138,140],"code-block",{"quality":139},"bad",[141,142,147],"pre",{"className":143,"code":144,"language":145,"meta":146,"style":146},"language-java shiki shiki-themes github-light github-dark monokai","public static int cardinality(Object obj, final Collection\u003C?> col) {\n  int count = 0;\n  if (col == null) {\n    return count;\n  }\n  Iterator\u003C?> it = col.iterator();\n  while (it.hasNext()) {\n    Object elt = it.next();\n    if ((null == obj && null == elt) || obj.equals(elt)) {  \u002F\u002F Null pointer dereference\n      count++;\n    }\n  }\n  return count;\n}\n","java","",[43,148,149,192,211,229,238,244,270,285,304,347,358,364,369,377],{"__ignoreMap":146},[150,151,154,158,161,165,169,173,177,180,183,186,189],"span",{"class":152,"line":153},"line",1,[150,155,157],{"class":156},"sC2Qs","public",[150,159,160],{"class":156}," static",[150,162,164],{"class":163},"sq6CD"," int",[150,166,168],{"class":167},"srTi1"," cardinality",[150,170,172],{"class":171},"sMOD_","(",[150,174,176],{"class":175},"sk8M1","Object",[150,178,179],{"class":171}," obj, ",[150,181,182],{"class":156},"final",[150,184,185],{"class":175}," Collection",[150,187,188],{"class":156},"\u003C?>",[150,190,191],{"class":171}," col) {\n",[150,193,195,198,201,204,208],{"class":152,"line":194},2,[150,196,197],{"class":163},"  int",[150,199,200],{"class":171}," count ",[150,202,203],{"class":156},"=",[150,205,207],{"class":206},"s7F3e"," 0",[150,209,210],{"class":171},";\n",[150,212,214,217,220,223,226],{"class":152,"line":213},3,[150,215,216],{"class":156},"  if",[150,218,219],{"class":171}," (col ",[150,221,222],{"class":156},"==",[150,224,225],{"class":206}," null",[150,227,228],{"class":171},") {\n",[150,230,232,235],{"class":152,"line":231},4,[150,233,234],{"class":156},"    return",[150,236,237],{"class":171}," count;\n",[150,239,241],{"class":152,"line":240},5,[150,242,243],{"class":171},"  }\n",[150,245,247,250,253,256,259,261,264,267],{"class":152,"line":246},6,[150,248,249],{"class":175},"  Iterator",[150,251,252],{"class":171},"\u003C",[150,254,255],{"class":163},"?",[150,257,258],{"class":171},"> it ",[150,260,203],{"class":156},[150,262,263],{"class":171}," col.",[150,265,266],{"class":167},"iterator",[150,268,269],{"class":171},"();\n",[150,271,273,276,279,282],{"class":152,"line":272},7,[150,274,275],{"class":156},"  while",[150,277,278],{"class":171}," (it.",[150,280,281],{"class":167},"hasNext",[150,283,284],{"class":171},"()) {\n",[150,286,288,291,294,296,299,302],{"class":152,"line":287},8,[150,289,290],{"class":175},"    Object",[150,292,293],{"class":171}," elt ",[150,295,203],{"class":156},[150,297,298],{"class":171}," it.",[150,300,301],{"class":167},"next",[150,303,269],{"class":171},[150,305,307,310,313,315,318,321,324,326,328,331,334,337,340,343],{"class":152,"line":306},9,[150,308,309],{"class":156},"    if",[150,311,312],{"class":171}," ((",[150,314,45],{"class":206},[150,316,317],{"class":156}," ==",[150,319,320],{"class":171}," obj ",[150,322,323],{"class":156},"&&",[150,325,225],{"class":206},[150,327,317],{"class":156},[150,329,330],{"class":171}," elt) ",[150,332,333],{"class":156},"||",[150,335,336],{"class":171}," obj.",[150,338,339],{"class":167},"equals",[150,341,342],{"class":171},"(elt)) {  ",[150,344,346],{"class":345},"s8-w5","\u002F\u002F Null pointer dereference\n",[150,348,350,353,356],{"class":152,"line":349},10,[150,351,352],{"class":171},"      count",[150,354,355],{"class":156},"++",[150,357,210],{"class":171},[150,359,361],{"class":152,"line":360},11,[150,362,363],{"class":171},"    }\n",[150,365,367],{"class":152,"line":366},12,[150,368,243],{"class":171},[150,370,372,375],{"class":152,"line":371},13,[150,373,374],{"class":156},"  return",[150,376,237],{"class":171},[150,378,380],{"class":152,"line":379},14,[150,381,382],{"class":171},"}\n",[98,384,386],{"id":385},"compliant-solution","Compliant Solution",[39,388,389],{},"This compliant solution eliminates the null pointer dereference by adding an explicit check:",[137,391,393],{"quality":392},"good",[141,394,396],{"className":143,"code":395,"language":145,"meta":146,"style":146},"public static int cardinality(Object obj, final Collection col) {\n  int count = 0;\n  if (col == null) {\n    return count;\n  }\n  Iterator it = col.iterator();\n  while (it.hasNext()) {\n    Object elt = it.next();\n    if ((null == obj && null == elt) ||\n        (null != obj && obj.equals(elt))) {\n      count++;\n    }\n  }\n  return count;\n}\n",[43,397,398,420,432,444,450,454,469,479,493,516,537,545,549,553,559],{"__ignoreMap":146},[150,399,400,402,404,406,408,410,412,414,416,418],{"class":152,"line":153},[150,401,157],{"class":156},[150,403,160],{"class":156},[150,405,164],{"class":163},[150,407,168],{"class":167},[150,409,172],{"class":171},[150,411,176],{"class":175},[150,413,179],{"class":171},[150,415,182],{"class":156},[150,417,185],{"class":175},[150,419,191],{"class":171},[150,421,422,424,426,428,430],{"class":152,"line":194},[150,423,197],{"class":163},[150,425,200],{"class":171},[150,427,203],{"class":156},[150,429,207],{"class":206},[150,431,210],{"class":171},[150,433,434,436,438,440,442],{"class":152,"line":213},[150,435,216],{"class":156},[150,437,219],{"class":171},[150,439,222],{"class":156},[150,441,225],{"class":206},[150,443,228],{"class":171},[150,445,446,448],{"class":152,"line":231},[150,447,234],{"class":156},[150,449,237],{"class":171},[150,451,452],{"class":152,"line":240},[150,453,243],{"class":171},[150,455,456,458,461,463,465,467],{"class":152,"line":246},[150,457,249],{"class":175},[150,459,460],{"class":171}," it ",[150,462,203],{"class":156},[150,464,263],{"class":171},[150,466,266],{"class":167},[150,468,269],{"class":171},[150,470,471,473,475,477],{"class":152,"line":272},[150,472,275],{"class":156},[150,474,278],{"class":171},[150,476,281],{"class":167},[150,478,284],{"class":171},[150,480,481,483,485,487,489,491],{"class":152,"line":287},[150,482,290],{"class":175},[150,484,293],{"class":171},[150,486,203],{"class":156},[150,488,298],{"class":171},[150,490,301],{"class":167},[150,492,269],{"class":171},[150,494,495,497,499,501,503,505,507,509,511,513],{"class":152,"line":306},[150,496,309],{"class":156},[150,498,312],{"class":171},[150,500,45],{"class":206},[150,502,317],{"class":156},[150,504,320],{"class":171},[150,506,323],{"class":156},[150,508,225],{"class":206},[150,510,317],{"class":156},[150,512,330],{"class":171},[150,514,515],{"class":156},"||\n",[150,517,518,521,523,526,528,530,532,534],{"class":152,"line":349},[150,519,520],{"class":171},"        (",[150,522,45],{"class":206},[150,524,525],{"class":156}," !=",[150,527,320],{"class":171},[150,529,323],{"class":156},[150,531,336],{"class":171},[150,533,339],{"class":167},[150,535,536],{"class":171},"(elt))) {\n",[150,538,539,541,543],{"class":152,"line":360},[150,540,352],{"class":171},[150,542,355],{"class":156},[150,544,210],{"class":171},[150,546,547],{"class":152,"line":366},[150,548,363],{"class":171},[150,550,551],{"class":152,"line":371},[150,552,243],{"class":171},[150,554,555,557],{"class":152,"line":379},[150,556,374],{"class":156},[150,558,237],{"class":171},[150,560,562],{"class":152,"line":561},15,[150,563,382],{"class":171},[98,565,101],{"id":566},"noncompliant-code-example-1",[39,568,569,570,573,574,577,578,581],{},"This noncompliant code example defines an ",[43,571,572],{},"isProperName"," ",[43,575,576],{},"()"," method that returns true if the specified ",[43,579,580],{},"String"," argument is a valid name (two capitalized words separated by one or more spaces):",[137,583,584],{"quality":139},[141,585,587],{"className":143,"code":586,"language":145,"meta":146,"style":146},"public boolean isProperName(String s) {\n  String names[] = s.split(\" \");\n  if (names.length != 2) {\n    return false;\n  }\n  return (isCapitalized(names[0]) && isCapitalized(names[1]));\n}\n",[43,588,589,606,631,646,655,659,691],{"__ignoreMap":146},[150,590,591,593,596,599,601,603],{"class":152,"line":153},[150,592,157],{"class":156},[150,594,595],{"class":163}," boolean",[150,597,598],{"class":167}," isProperName",[150,600,172],{"class":171},[150,602,580],{"class":175},[150,604,605],{"class":171}," s) {\n",[150,607,608,611,614,616,619,622,624,628],{"class":152,"line":194},[150,609,610],{"class":175},"  String",[150,612,613],{"class":171}," names[] ",[150,615,203],{"class":156},[150,617,618],{"class":171}," s.",[150,620,621],{"class":167},"split",[150,623,172],{"class":171},[150,625,627],{"class":626},"sstjo","\" \"",[150,629,630],{"class":171},");\n",[150,632,633,635,638,641,644],{"class":152,"line":213},[150,634,216],{"class":156},[150,636,637],{"class":171}," (names.length ",[150,639,640],{"class":156},"!=",[150,642,643],{"class":206}," 2",[150,645,228],{"class":171},[150,647,648,650,653],{"class":152,"line":231},[150,649,234],{"class":156},[150,651,652],{"class":206}," false",[150,654,210],{"class":171},[150,656,657],{"class":152,"line":240},[150,658,243],{"class":171},[150,660,661,663,666,669,672,675,678,680,683,685,688],{"class":152,"line":246},[150,662,374],{"class":156},[150,664,665],{"class":171}," (",[150,667,668],{"class":167},"isCapitalized",[150,670,671],{"class":171},"(names[",[150,673,674],{"class":206},"0",[150,676,677],{"class":171},"]) ",[150,679,323],{"class":156},[150,681,682],{"class":167}," isCapitalized",[150,684,671],{"class":171},[150,686,687],{"class":206},"1",[150,689,690],{"class":171},"]));\n",[150,692,693],{"class":152,"line":272},[150,694,382],{"class":171},[39,696,697,698,573,700,702],{},"Method ",[43,699,572],{},[43,701,576],{}," is noncompliant because it may be called with a null argument, resulting in a null pointer dereference.",[98,704,706],{"id":705},"compliant-solution-wrapped-method","Compliant Solution (Wrapped Method)",[39,708,709,710,713],{},"This compliant solution includes the same ",[43,711,712],{},"isProperName()"," method implementation as the previous noncompliant example, but it is now a private method with only one caller in its containing class.",[137,715,716],{"quality":392},[141,717,719],{"className":143,"code":718,"language":145,"meta":146,"style":146},"public class Foo {\n  private boolean isProperName(String s) {\n    String names[] = s.split(\" \");\n    if (names.length != 2) {\n      return false;\n    }\n    return (isCapitalized(names[0]) && isCapitalized(names[1]));\n  }\n\n  public boolean testString(String s) {\n    if (s == null) return false;\n    else return isProperName(s);\n  }\n}\n",[43,720,721,735,754,773,785,794,798,822,826,831,849,870,883,887],{"__ignoreMap":146},[150,722,723,725,728,732],{"class":152,"line":153},[150,724,157],{"class":156},[150,726,727],{"class":156}," class",[150,729,731],{"class":730},"sz2Vg"," Foo",[150,733,734],{"class":171}," {\n",[150,736,737,740,742,744,746,748,752],{"class":152,"line":194},[150,738,739],{"class":156},"  private",[150,741,595],{"class":163},[150,743,598],{"class":167},[150,745,172],{"class":171},[150,747,580],{"class":175},[150,749,751],{"class":750},"sTHNf"," s",[150,753,228],{"class":171},[150,755,756,759,761,763,765,767,769,771],{"class":152,"line":213},[150,757,758],{"class":175},"    String",[150,760,613],{"class":171},[150,762,203],{"class":156},[150,764,618],{"class":171},[150,766,621],{"class":167},[150,768,172],{"class":171},[150,770,627],{"class":626},[150,772,630],{"class":171},[150,774,775,777,779,781,783],{"class":152,"line":231},[150,776,309],{"class":156},[150,778,637],{"class":171},[150,780,640],{"class":156},[150,782,643],{"class":206},[150,784,228],{"class":171},[150,786,787,790,792],{"class":152,"line":240},[150,788,789],{"class":156},"      return",[150,791,652],{"class":206},[150,793,210],{"class":171},[150,795,796],{"class":152,"line":246},[150,797,363],{"class":171},[150,799,800,802,804,806,808,810,812,814,816,818,820],{"class":152,"line":272},[150,801,234],{"class":156},[150,803,665],{"class":171},[150,805,668],{"class":167},[150,807,671],{"class":171},[150,809,674],{"class":206},[150,811,677],{"class":171},[150,813,323],{"class":156},[150,815,682],{"class":167},[150,817,671],{"class":171},[150,819,687],{"class":206},[150,821,690],{"class":171},[150,823,824],{"class":152,"line":287},[150,825,243],{"class":171},[150,827,828],{"class":152,"line":306},[150,829,830],{"emptyLinePlaceholder":7},"\n",[150,832,833,836,838,841,843,845,847],{"class":152,"line":349},[150,834,835],{"class":156},"  public",[150,837,595],{"class":163},[150,839,840],{"class":167}," testString",[150,842,172],{"class":171},[150,844,580],{"class":175},[150,846,751],{"class":750},[150,848,228],{"class":171},[150,850,851,853,856,858,860,863,866,868],{"class":152,"line":360},[150,852,309],{"class":156},[150,854,855],{"class":171}," (s ",[150,857,222],{"class":156},[150,859,225],{"class":206},[150,861,862],{"class":171},") ",[150,864,865],{"class":156},"return",[150,867,652],{"class":206},[150,869,210],{"class":171},[150,871,872,875,878,880],{"class":152,"line":366},[150,873,874],{"class":156},"    else",[150,876,877],{"class":156}," return",[150,879,598],{"class":167},[150,881,882],{"class":171},"(s);\n",[150,884,885],{"class":152,"line":371},[150,886,243],{"class":171},[150,888,889],{"class":152,"line":379},[150,890,382],{"class":171},[39,892,893,894,897,898,573,900,902,903,905],{},"The calling method, ",[43,895,896],{},"testString()"," , guarantees that ",[43,899,572],{},[43,901,576],{}," is always called with a valid string reference. As a result, the class conforms with this rule even though a public ",[43,904,712],{}," method would not. Guarantees of this sort can be used to eliminate null pointer dereferences.",[98,907,909],{"id":908},"compliant-solution-optional-type","Compliant Solution (Optional Type)",[39,911,912,913,916,917,919,920,923,924,927,928,932,933],{},"This compliant solution uses an ",[43,914,915],{},"  Optional String "," instead of a ",[43,918,580],{}," object that may be null. The ",[43,921,922],{},"Optional"," class ( ",[43,925,926],{},"java.util.Optional"," [ ",[89,929,931],{"href":930},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-aa-references#RuleAA.References-API14","API 2014"," ]) was introduced in Java 8 and can be used to mitigate against null pointer dereferences ",[89,934,938],{"href":935,"rel":936},"http:\u002F\u002Fdocs.oracle.com\u002Fjavase\u002F8\u002Fdocs\u002Fapi\u002Fjava\u002Futil\u002FOptional.html",[937],"nofollow",".",[137,940,941],{"quality":392},[141,942,944],{"className":143,"code":943,"language":145,"meta":146,"style":146},"public boolean isProperName(Optional\u003CString> os) {\n  String names[] = os.orElse(\"\").split(\" \");\n  return (names.length != 2) ? false : \n         (isCapitalized(names[0]) && isCapitalized(names[1]));\n}\n",[43,945,946,968,998,1020,1043],{"__ignoreMap":146},[150,947,948,950,952,954,956,958,960,962,965],{"class":152,"line":153},[150,949,157],{"class":156},[150,951,595],{"class":163},[150,953,598],{"class":167},[150,955,172],{"class":171},[150,957,922],{"class":175},[150,959,252],{"class":156},[150,961,580],{"class":171},[150,963,964],{"class":156},">",[150,966,967],{"class":171}," os) {\n",[150,969,970,972,974,976,979,982,984,987,990,992,994,996],{"class":152,"line":194},[150,971,610],{"class":175},[150,973,613],{"class":171},[150,975,203],{"class":156},[150,977,978],{"class":171}," os.",[150,980,981],{"class":167},"orElse",[150,983,172],{"class":171},[150,985,986],{"class":626},"\"\"",[150,988,989],{"class":171},").",[150,991,621],{"class":167},[150,993,172],{"class":171},[150,995,627],{"class":626},[150,997,630],{"class":171},[150,999,1000,1002,1004,1006,1008,1010,1012,1014,1017],{"class":152,"line":213},[150,1001,374],{"class":156},[150,1003,637],{"class":171},[150,1005,640],{"class":156},[150,1007,643],{"class":206},[150,1009,862],{"class":171},[150,1011,255],{"class":156},[150,1013,652],{"class":206},[150,1015,1016],{"class":156}," :",[150,1018,1019],{"class":171}," \n",[150,1021,1022,1025,1027,1029,1031,1033,1035,1037,1039,1041],{"class":152,"line":231},[150,1023,1024],{"class":171},"         (",[150,1026,668],{"class":167},[150,1028,671],{"class":171},[150,1030,674],{"class":206},[150,1032,677],{"class":171},[150,1034,323],{"class":156},[150,1036,682],{"class":167},[150,1038,671],{"class":171},[150,1040,687],{"class":206},[150,1042,690],{"class":171},[150,1044,1045],{"class":152,"line":240},[150,1046,382],{"class":171},[39,1048,1049,1050,1052,1053,573,1057,573,1061,1065],{},"The ",[43,1051,922],{}," class contains methods that can be used to make programs shorter and more intuitive ",[89,1054,1056],{"href":935,"rel":1055},[937],"[",[89,1058,1060],{"href":1059},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-aa-references#RuleAA.References-Urma14","Urma 2014",[89,1062,1064],{"href":935,"rel":1063},[937],"]"," .",[98,1067,1069],{"id":1068},"exceptions","Exceptions",[39,1071,1072,1076,1077,1079,1080,1083],{},[1073,1074,1075],"strong",{},"EXP01-J-EX0:"," A method may dereference an object-typed parameter without guarantee that it is a valid object reference provided that the method documents that it (potentially) throws a ",[43,1078,86],{}," , either via the ",[43,1081,1082],{},"throws"," clause of the method or in the method comments. However, this exception should be relied on sparingly.",[98,1085,1087],{"id":1086},"risk-assessment","Risk Assessment",[39,1089,1090,1091,1095],{},"Dereferencing a null pointer can lead to a ",[89,1092,1094],{"href":1093},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-bb-glossary#RuleBB.Glossary-denial-of-","denial of service"," . In multithreaded programs, null pointer dereferences can violate cache coherency policies and can cause resource leaks.",[1097,1098,1099,1100,1099,1130],"table",{},"\n  ",[1101,1102,1103,1104,1099],"thead",{},"\n    ",[1105,1106,1107,1108,1107,1112,1107,1115,1107,1118,1107,1121,1107,1124,1107,1127,1103],"tr",{},"\n      ",[1109,1110,1111],"th",{},"Rule",[1109,1113,1114],{},"Severity",[1109,1116,1117],{},"Likelihood",[1109,1119,1120],{},"Detectable",[1109,1122,1123],{},"Repairable",[1109,1125,1126],{},"Priority",[1109,1128,1129],{},"Level",[1131,1132,1103,1133,1099],"tbody",{},[1105,1134,1107,1135,1107,1139,1107,1142,1107,1145,1107,1148,1107,1151,1107,1158,1103],{},[1136,1137,1138],"td",{},"EXP01-J",[1136,1140,1141],{},"Low",[1136,1143,1144],{},"Likely",[1136,1146,1147],{},"No",[1136,1149,1150],{},"Yes",[1136,1152,1154],{"style":1153},"color: #f1c40f;",[1155,1156,1157],"b",{},"P6",[1136,1159,1160],{"style":1153},[1155,1161,1162],{},"L2",[1164,1165,1167],"h3",{"id":1166},"automated-detection","Automated Detection",[39,1169,1170,1171,1175],{},"Null pointer dereferences can happen in path-dependent ways. Limitations of automatic detection tools can require manual inspection of code [ ",[89,1172,1174],{"href":1173},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-aa-references#RuleAA.References-Hovemeyer07","Hovemeyer 2007"," ] to detect instances of null pointer dereferences. Annotations for method parameters that must be non-null can reduce the need for manual inspection by assisting automated null pointer dereference detection; use of these annotations is strongly encouraged.",[1097,1177,1180],{"className":1178},[1179],"wrapped",[1131,1181,1182,1198,1249,1359,1501,1531,1561,1602,1630,1668,1693,1768],{},[1105,1183,1186,1189,1192,1195],{"className":1184},[1185],"header",[1109,1187,1188],{},"Tool",[1109,1190,1191],{},"Version",[1109,1193,1194],{},"Checker",[1109,1196,1197],{},"Description",[1105,1199,1202,1208,1216,1238],{"className":1200},[1201],"odd",[1136,1203,1204],{},[89,1205,1207],{"href":1206},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-cc-analyzers\u002Fthe-checker-framework","The Checker Framework",[1136,1209,1210],{},[1211,1212,1215],"div",{"className":1213},[1214],"content-wrapper","2.1.3",[1136,1217,1218],{},[39,1219,1220,573,1226,573,1233],{},[1073,1221,1222,1223],{},"Nullness Checker",[1224,1225],"br",{},[1073,1227,1228],{},[1073,1229,1230,1231],{},"Initialization Checker",[1224,1232],{},[1073,1234,1235],{},[1073,1236,1237],{},"Map Key Checker",[1136,1239,1240],{},[39,1241,1242,1243,1245,1246,1248],{},"Null pointer errors (see Chapter 3)",[1224,1244],{},"\nEnsure all fields are set in the constructor (see Chapter 3.8)",[1224,1247],{},"\nTrack which values are keys in a map (see Chapter 4)",[1105,1250,1253,1259,1267,1314],{"className":1251},[1252],"even",[1136,1254,1255],{},[89,1256,1258],{"href":1257},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-cc-analyzers\u002Fcodesonar","CodeSonar",[1136,1260,1261],{},[1211,1262,1264],{"className":1263},[1214],[39,1265,1266],{},"9.0p0",[1136,1268,1269],{},[1073,1270,1271,1272,1274,1275,1277,1278,1280,1281,1283,1284,1286,1287,1289,1290,1292,1293,1295,1296,1298,1299,1301,1302,1304,1305,1307,1308,1310,1311,1313],{},"JAVA.DEEPNULL.PARAM.EACTUAL",[1224,1273],{},"\nJAVA.DEEPNULL.EFIELD",[1224,1276],{},"\nJAVA.DEEPNULL.FIELD",[1224,1279],{},"\nJAVA.NULL.PARAM.ACTUAL",[1224,1282],{},"\nJAVA.NULL.DEREF",[1224,1285],{},"\nJAVA.DEEPNULL.DEREF",[1224,1288],{},"\nJAVA.DEEPNULL.RET.EMETH",[1224,1291],{},"\nJAVA.DEEPNULL.RET.METH",[1224,1294],{},"\nJAVA.NULL.RET.ARRAY",[1224,1297],{},"\nJAVA.NULL.RET.BOOL",[1224,1300],{},"\nJAVA.NULL.RET.OPT",[1224,1303],{},"\nJAVA.STRUCT.UPD",[1224,1306],{},"\nJAVA.STRUCT.DUPD",[1224,1309],{},"\nJAVA.STRUCT.UPED",[1224,1312],{},"\nJAVA.DEEPNULL.PARAM.ACTUAL",[1136,1315,1316,1317,1319,1320,1322,1323,1325,1326,1328,1329,1331,1332,1334,1335,1337,1338,1340,1341,1343,1344,1346,1347,1349,1350,1352,1353,1355,1356,1358],{},"Actual Parameter Element may be null",[1224,1318],{},"\nField Element may be null (deep)",[1224,1321],{},"\nField may be null (deep)",[1224,1324],{},"\nNull Parameter Dereference",[1224,1327],{},"\nNull Pointer Dereference",[1224,1330],{},"\nNull Pointer Dereference (deep)",[1224,1333],{},"\nReturn Value may Contain null Element",[1224,1336],{},"\nReturn Value may be null",[1224,1339],{},"\nReturn null Array",[1224,1342],{},"\nReturn null Boolean",[1224,1345],{},"\nReturn null Optional",[1224,1348],{},"\nUnchecked Parameter Dereference",[1224,1351],{},"\nUnchecked Parameter Dereference (deep)",[1224,1354],{},"\nUnchecked Parameter Element Dereference (deep)",[1224,1357],{},"\nnull Passed to Method (deep)",[1105,1360,1362,1368,1377,1498],{"className":1361},[1201],[1136,1363,1364],{},[89,1365,1367],{"href":1366},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-cc-analyzers\u002Fcoverity","Coverity",[1136,1369,1370,1373],{},[39,1371,1372],{},"v7.5",[39,1374,1375],{},[1224,1376],{},[1136,1378,1379],{},[39,1380,1381],{},[1073,1382,1383,1384,1386,1387,1389,1390,1392,1393,1395,1396,1398,1399,1401,1402,1404,1405,1407,1408,1410,1411,1413,1414,1416,1417,1419,1420,1422,1423,1425,1426,1428,1429,1431,1432,1434,1435,1437,1438,1440,1441,1443,1444,1446,1447,1449,1450,1452,1453,1455,1456,1458,1459,1461,1462,1464,1465,1467,1468,1470,1471,1473,1474,1476,1477,1479,1480,1482,1483,1485,1486,1488,1489,1491,1492,1494,1495,1497],{},"FORWARD_NULL",[1224,1385],{},"\nNULL_RETURNS",[1224,1388],{},"\nREVERSE_INULL",[1224,1391],{},"\nFB.BC_NULL_INSTANCEOF",[1224,1394],{},"\nFB.NP_ALWAYS_NULL",[1224,1397],{},"\nFB.NP_ALWAYS_NULL_EXCEPTION",[1224,1400],{},"\nFB.NP_ARGUMENT_MIGHT_BE_NULL",[1224,1403],{},"\nFB.NP_BOOLEAN_RETURN_NULL",[1224,1406],{},"\nFB.NP_CLONE_COULD_RETURN_NULL",[1224,1409],{},"\nFB.NP_CLOSING_NULL",[1224,1412],{},"\nFB.NP_DEREFERENCE_OF_ READLINE_VALUE",[1224,1415],{},"\nFB.NP_DOES_NOT_HANDLE_NULL",[1224,1418],{},"\nFB.NP_EQUALS_SHOULD_HANDLE_ NULL_ARGUMENT",[1224,1421],{},"\nFB.NP_FIELD_NOT_INITIALIZED_ IN_CONSTRUCTOR",[1224,1424],{},"\nFB.NP_GUARANTEED_DEREF",[1224,1427],{},"\nFB.NP_GUARANTEED_DEREF_ON_ EXCEPTION_PATH",[1224,1430],{},"\nFB.NP_IMMEDIATE_DEREFERENCE_ OF_READLINE",[1224,1433],{},"\nFB.NP_LOAD_OF_KNOWN_NULL_ VALUE",[1224,1436],{},"\nFB.NP_NONNULL_FIELD_NOT_ INITIALIZED_IN_CONSTRUCTOR",[1224,1439],{},"\nFB.NP_NONNULL_PARAM_VIOLATION",[1224,1442],{},"\nFB.NP_NONNULL_RETURN_VIOLATION",[1224,1445],{},"\nFB.NP_NULL_INSTANCEOF",[1224,1448],{},"\nFB.NP_NULL_ON_SOME_PATH",[1224,1451],{},"\nFB.NP_NULL_ON_SOME_PATH_ EXCEPTION",[1224,1454],{},"\nFB.NP_NULL_ON_SOME_PATH_ FROM_RETURN_VALUE",[1224,1457],{},"\nFB.NP_NULL_ON_SOME_PATH_ MIGHT_BE_INFEASIBLE",[1224,1460],{},"\nFB.NP_NULL_PARAM_DEREF",[1224,1463],{},"\nFB.NP_NULL_PARAM_DEREF_ALL_ TARGETS_DANGEROUS",[1224,1466],{},"\nFB.NP_NULL_PARAM_DEREF_ NONVIRTUAL",[1224,1469],{},"\nFB.NP_PARAMETER_MUST_BE_NON - NULL_BUT_MARKED_AS_NULLABLE",[1224,1472],{},"\nFB.NP_STORE_INTO_NONNULL_FIELD",[1224,1475],{},"\nFB.NP_TOSTRING_COULD_ RETURN_NULL",[1224,1478],{},"\nFB.NP_UNWRITTEN_FIELD",[1224,1481],{},"\nFB.NP_UNWRITTEN_PUBLIC_OR_ PROTECTED_FIELD",[1224,1484],{},"\nFB.RCN_REDUNDANT_COMPARISON_ OF_NULL_AND_NONNULL_VALUE",[1224,1487],{},"\nFB.RCN_REDUNDANT_COMPARISON_ TWO_NULL_VALUES",[1224,1490],{},"\nFB.RCN_REDUNDANT_NULLCHECK_ OF_NONNULL_VALUE",[1224,1493],{},"\nFB.RCN_REDUNDANT_NULLCHECK_ OF_NULL_VALUE",[1224,1496],{},"\nFB.RCN_REDUNDANT_NULLCHECK_ WOULD_HAVE_BEEN_A_NPE",[1136,1499,1500],{},"Implemented",[1105,1502,1504,1510,1516,1529],{"className":1503},[1252],[1136,1505,1506],{},[89,1507,1509],{"href":1508},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-cc-analyzers\u002Ffortify","Fortify",[1136,1511,1512],{},[1211,1513,1515],{"className":1514},[1214],"V. 5.0",[1136,1517,1518],{},[39,1519,1520],{},[1073,1521,1522,1523,1525,1526,1528],{},"Missing_Check_against_Null",[1224,1524],{},"\nNull_Dereference",[1224,1527],{},"\nRedundant_Null_Check",[1136,1530,1500],{},[1105,1532,1534,1540,1546,1559],{"className":1533},[1201],[1136,1535,1536],{},[89,1537,1539],{"href":1538},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-cc-analyzers\u002Ffindbugs","Findbugs",[1136,1541,1542],{},[1211,1543,1545],{"className":1544},[1214],"V. 2.0",[1136,1547,1548],{},[39,1549,1550],{},[1073,1551,1552,1553,1555,1556,1558],{},"NP_DEREFERENCE_OF_READLINE_VALUE",[1224,1554],{},"\nNP_NULL_PARAM_DEREF",[1224,1557],{},"\nNP_TOSTRING_COULD_RETURN_NULL",[1136,1560,1500],{},[1105,1562,1564,1570,1578,1598],{"className":1563},[1252],[1136,1565,1566],{},[89,1567,1569],{"href":1568},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-cc-analyzers\u002Fklocwork","Klocwork",[1136,1571,1572],{},[1211,1573,1575],{"className":1574},[1214],[39,1576,1577],{},"2025.2",[1136,1579,1580],{},[1073,1581,1582,1583,1585,1586,1588,1589,1591,1592,1594,1595,1597],{},"NPE.COND",[1224,1584],{},"\nNPE.CONST",[1224,1587],{},"\nNPE.RET",[1224,1590],{},"\nNPE.RET.UTIL",[1224,1593],{},"\nNPE.STAT",[1224,1596],{},"\nREDUN.EQNULL",[1136,1599,1600],{},[1224,1601],{},[1105,1603,1605,1611,1616,1624],{"className":1604},[1201],[1136,1606,1607],{},[89,1608,1610],{"href":1609},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-cc-analyzers\u002Fparasoft","Parasoft Jtest",[1136,1612,1613],{},[1211,1614,1577],{"className":1615},[1214],[1136,1617,1618],{},[1073,1619,1620,1621,1623],{},"CERT.EXP01.NP",[1224,1622],{},"\nCERT.EXP01.NCMD",[1136,1625,1626,1627,1629],{},"Avoid NullPointerException",[1224,1628],{},"\nEnsure that dereferenced variables match variables which were previously checked for \"null\"",[1105,1631,1633,1639,1647,1664],{"className":1632},[1252],[1136,1634,1635],{},[89,1636,1638],{"href":1637},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-cc-analyzers\u002Fpvs-studio","PVS-Studio",[1136,1640,1641],{},[1211,1642,1644],{"className":1643},[1214],[39,1645,1646],{},"7.42",[1136,1648,1649],{},[1073,1650,1651,1655,1656,1655,1660],{},[89,1652,1654],{"href":1653},"https:\u002F\u002Fpvs-studio.com\u002Fen\u002Fdocs\u002Fwarnings\u002Fv6008\u002F","V6008"," , ",[89,1657,1659],{"href":1658},"https:\u002F\u002Fpvs-studio.com\u002Fen\u002Fdocs\u002Fwarnings\u002Fv6073\u002F","V6073",[89,1661,1663],{"href":1662},"https:\u002F\u002Fpvs-studio.com\u002Fen\u002Fdocs\u002Fwarnings\u002Fv6093\u002F","V6093",[1136,1665,1666],{},[1224,1667],{},[1105,1669,1671,1677,1685,1690],{"className":1670},[1201],[1136,1672,1673],{},[89,1674,1676],{"href":1675},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-cc-analyzers\u002Fsecurity-reviewer-static-reviewer","Security Reviewer - Static Reviewer",[1136,1678,1679],{},[1211,1680,1682],{"className":1681},[1214],[39,1683,1684],{},"6.02",[1136,1686,1687],{},[1073,1688,1689],{},"NullableReturns, ReturnNumberNull",[1136,1691,1692],{},"Full Implementation",[1105,1694,1696,1702,1708,1748],{"className":1695},[1252],[1136,1697,1698],{},[89,1699,1701],{"href":1700},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-cc-analyzers\u002Fsonarqube","SonarQube",[1136,1703,1704],{},[1211,1705,1707],{"className":1706},[1214],"9.9",[1136,1709,1710],{},[39,1711,1712,573,1720,573,1730,573,1740],{},[1073,1713,1714,1718],{},[89,1715,1717],{"href":1716},"https:\u002F\u002Frules.sonarsource.com\u002Fjava\u002FRSPEC-2259","S2259",[1224,1719],{},[1073,1721,1722],{},[1073,1723,1724,1728],{},[89,1725,1727],{"href":1726},"https:\u002F\u002Frules.sonarsource.com\u002Fjava\u002FRSPEC-2225","S2225",[1224,1729],{},[1073,1731,1732],{},[1073,1733,1734,1738],{},[89,1735,1737],{"href":1736},"https:\u002F\u002Frules.sonarsource.com\u002Fjava\u002FRSPEC-2447","S2447",[1224,1739],{},[1073,1741,1742],{},[1073,1743,1744],{},[89,1745,1747],{"href":1746},"https:\u002F\u002Frules.sonarsource.com\u002Fjava\u002FRSPEC-2637","S2637",[1136,1749,1750,1753,1755,1758,1760,1763,1765],{},[89,1751,1752],{"href":1716},"Null pointers should not be dereferenced",[1224,1754],{},[89,1756,1757],{"href":1726},"\"toString()\" and \"clone()\" methods should not return null",[1224,1759],{},[89,1761,1762],{"href":1736},"Null should not be returned from a \"Boolean\" method",[1224,1764],{},[89,1766,1767],{"href":1746},"\"@NonNull\" values should not be set to null",[1105,1769,1771,1777,1785,1829],{"className":1770},[1201],[1136,1772,1773],{},[89,1774,1776],{"href":1775},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-cc-analyzers\u002Fspotbugs","SpotBugs",[1136,1778,1779],{},[1211,1780,1782],{"className":1781},[1214],[39,1783,1784],{},"4.6.0",[1136,1786,1787,1789,1791,1794,1796,1799,1801,1804,1806,1809,1811,1814,1816,1819,1821,1824,1826],{},[1073,1788,1552],{},[1224,1790],{},[1073,1792,1793],{},"NP_IMMEDIATE_DEREFERENCE_OF_READLINE",[1224,1795],{},[1073,1797,1798],{},"NP_ALWAYS_NULL",[1224,1800],{},[1073,1802,1803],{},"NP_NULL_ON_SOME_PATH",[1224,1805],{},[1073,1807,1808],{},"NP_NULL_ON_SOME_PATH_EXCEPTION",[1224,1810],{},[1073,1812,1813],{},"NP_NULL_PARAM_DEREF",[1224,1815],{},[1073,1817,1818],{},"NP_NULL_PARAM_DEREF_NONVIRTUAL",[1224,1820],{},[1073,1822,1823],{},"NP_NULL_PARAM_DEREF_ALL_TARGETS_DANGEROUS",[1224,1825],{},[1073,1827,1828],{},"NP_TOSTRING_COULD_RETURN_NULL",[1136,1830,1500],{},[98,1832,1834],{"id":1833},"related-vulnerabilities","Related Vulnerabilities",[39,1836,1837,1838,927,1840,1844,1845,1847],{},"Java Web Start applications and applets particular to JDK version 1.6, prior to update 4, were affected by a bug that had some noteworthy security consequences. In some isolated cases, the application or applet's attempt to establish an HTTPS connection with a server generated a ",[43,1839,86],{},[89,1841,1843],{"href":1842},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-aa-references#RuleAA.References-SDN08","SDN 2008"," ]. The resulting failure to establish a secure HTTPS connection with the server caused a ",[89,1846,1094],{"href":1093}," . Clients were temporarily forced to use an insecure HTTP channel for data exchange.",[98,1849,1851],{"id":1850},"related-guidelines","Related Guidelines",[1097,1853,1854,1862],{},[1101,1855,1856],{},[1105,1857,1858,1860],{},[1109,1859],{},[1109,1861],{},[1131,1863,1864,1877,1888],{},[1105,1865,1866,1871],{},[1136,1867,1868],{},[89,1869,1870],{"href":17},"SEI CERT C Coding Standard",[1136,1872,1873],{},[89,1874,1876],{"href":1875},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp34-c","EXP34-C. Do not dereference null pointers",[1105,1878,1879,1885],{},[1136,1880,1881],{},[89,1882,1884],{"href":1883},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-aa-references#RuleAA.References-ISO\u002FIECTR24772-2010","ISO\u002FIEC TR 24772:2010",[1136,1886,1887],{},"Null Pointer Dereference [XYH]",[1105,1889,1890,1897],{},[1136,1891,1892],{},[89,1893,1896],{"href":1894,"rel":1895},"http:\u002F\u002Fcwe.mitre.org\u002F",[937],"MITRE CWE",[1136,1898,1899,1904],{},[89,1900,1903],{"href":1901,"rel":1902},"http:\u002F\u002Fcwe.mitre.org\u002Fdata\u002Fdefinitions\u002F476.html",[937],"CWE-476,"," NULL Pointer Dereference",[98,1906,1908],{"id":1907},"android-implementation-details","Android Implementation Details",[39,1910,1911,1912,1914],{},"Android applications are more sensitive to ",[43,1913,86],{}," because of the constraint of the limited mobile device memory. Static members or members of an Activity may become null when memory runs out.",[98,1916,1918],{"id":1917},"bibliography","Bibliography",[1097,1920,1922],{"className":1921},[1179],[1131,1923,1924,1947,1962,1977,1994,2011,2034],{},[1105,1925,1927,1937],{"className":1926},[1201],[1136,1928,1929],{},[39,1930,1931,1932,1936],{},"[ ",[89,1933,1935],{"href":1934},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-aa-references#RuleAA.References-API06","API 2006"," ]",[1136,1938,1939],{},[39,1940,1941],{},[89,1942,697,1944],{"href":1943},"http:\u002F\u002Fjava.sun.com\u002Fjavase\u002F6\u002Fdocs\u002Fapi\u002Fjava\u002Fsecurity\u002FAccessController.html#doPrivileged(java.security.PrivilegedAction)",[43,1945,1946],{},"        doPrivileged()       ",[1105,1948,1950,1954],{"className":1949},[1252],[1136,1951,1931,1952,1936],{},[89,1953,931],{"href":930},[1136,1955,1956],{},[89,1957,1958,1959],{"href":935},"Class ",[43,1960,1961],{},"       java.util.Optional      ",[1105,1963,1965,1971],{"className":1964},[1201],[1136,1966,1967],{},[39,1968,1931,1969,1936],{},[89,1970,1174],{"href":1173},[1136,1972,1973],{},[39,1974,1975],{},[1224,1976],{},[1105,1978,1980,1986],{"className":1979},[1252],[1136,1981,1982],{},[39,1983,1931,1984,1936],{},[89,1985,108],{"href":107},[1136,1987,1988],{},[39,1989,1990,1991,1993],{},"\"Defect ID 00-0001\"",[1224,1992],{},"\n\"Null Pointer Dereference\"",[1105,1995,1997,2003],{"className":1996},[1201],[1136,1998,1999],{},[39,2000,1931,2001,1936],{},[89,2002,1843],{"href":1842},[1136,2004,2005],{},[39,2006,2007],{},[89,2008,2010],{"href":2009},"http:\u002F\u002Fbugs.sun.com\u002Fbugdatabase\u002Fview_bug.do?bug_id=6514454","Bug ID 6514454",[1105,2012,2014,2020],{"className":2013},[1252],[1136,2015,1931,2016,1936],{},[89,2017,2019],{"href":2018},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-aa-references#RuleAA.References-Seacord2015","Seacord 2015",[1136,2021,2022],{},[1211,2023,2025,573,2029,2033],{"className":2024},[1214],[2026,2027],"img",{"src":2028},"https:\u002F\u002Fencrypted-tbn3.gstatic.com\u002Fimages?q=tbn:ANd9GcR5qEGh3iWVRSYkilqOBtCNr8FE15PosscXUuQBpnw67nRbPOcCyQ",[89,2030,2032],{"href":2031},"https:\u002F\u002Fwww.safaribooksonline.com\u002Flibrary\u002Fview\u002Fsecure-coding-rules\u002F9780134031521\u002Fpart15.html","EXP01-J. Never dereference null pointers"," LiveLesson",[1105,2035,2037,2041],{"className":2036},[1201],[1136,2038,1931,2039,1936],{},[89,2040,1060],{"href":1059},[1136,2042,2043],{},[89,2044,2046],{"href":2045},"http:\u002F\u002Fwww.oracle.com\u002Ftechnetwork\u002Farticles\u002Fjava\u002Fjava8-optional-2175753.html","Tired of Null Pointer Exceptions? Consider Using Java SE 8's Optional!",[2048,2049],"hr",{},[39,2051,2052,573,2058,573,2064],{},[89,2053,2055],{"href":2054},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fexpressions-exp\u002Fexp00-j",[2026,2056],{"src":2057},"\u002Fattachments\u002F88487702\u002F88497198.png",[89,2059,2061],{"href":2060},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fexpressions-exp\u002F",[2026,2062],{"src":2063},"\u002Fattachments\u002F88487702\u002F88497196.png",[89,2065,2067],{"href":2066},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fexpressions-exp\u002Fexp02-j",[2026,2068],{"src":2069},"\u002Fattachments\u002F88487702\u002F88497197.png",[2071,2072,2073],"style",{},"html pre.shiki code .sC2Qs, html code.shiki .sC2Qs{--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-sepia:#F92672}html pre.shiki code .sq6CD, html code.shiki .sq6CD{--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit;--shiki-sepia:#66D9EF;--shiki-sepia-font-style:italic}html pre.shiki code .srTi1, html code.shiki .srTi1{--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-sepia:#A6E22E}html pre.shiki code .sMOD_, html code.shiki .sMOD_{--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}html pre.shiki code .sk8M1, html code.shiki .sk8M1{--shiki-default:#24292E;--shiki-default-font-style:inherit;--shiki-dark:#E1E4E8;--shiki-dark-font-style:inherit;--shiki-sepia:#66D9EF;--shiki-sepia-font-style:italic}html pre.shiki code .s7F3e, html code.shiki .s7F3e{--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF}html pre.shiki code .s8-w5, html code.shiki .s8-w5{--shiki-default:#6A737D;--shiki-dark:#6A737D;--shiki-sepia:#88846F}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html.sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html pre.shiki code .sstjo, html code.shiki .sstjo{--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74}html pre.shiki code .sz2Vg, html code.shiki .sz2Vg{--shiki-default:#6F42C1;--shiki-default-text-decoration:inherit;--shiki-dark:#B392F0;--shiki-dark-text-decoration:inherit;--shiki-sepia:#A6E22E;--shiki-sepia-text-decoration:underline}html pre.shiki code .sTHNf, html code.shiki .sTHNf{--shiki-default:#E36209;--shiki-default-font-style:inherit;--shiki-dark:#FFAB70;--shiki-dark-font-style:inherit;--shiki-sepia:#FD971F;--shiki-sepia-font-style:italic}",{"title":146,"searchDepth":194,"depth":194,"links":2075},[2076,2077,2078,2079,2080,2081,2082,2085,2086,2087,2088],{"id":100,"depth":194,"text":101},{"id":385,"depth":194,"text":386},{"id":566,"depth":194,"text":101},{"id":705,"depth":194,"text":706},{"id":908,"depth":194,"text":909},{"id":1068,"depth":194,"text":1069},{"id":1086,"depth":194,"text":1087,"children":2083},[2084],{"id":1166,"depth":213,"text":1167},{"id":1833,"depth":194,"text":1834},{"id":1850,"depth":194,"text":1851},{"id":1907,"depth":194,"text":1908},{"id":1917,"depth":194,"text":1918},"Do not use the null value in any instance where an object is required, including the following cases:","md",{"tags":2092},[2093,2094,2095,2096,2097,2098,2099],"android-implementation-detail-java","rule","android","exp","cwe-754","analyzable","dos-enable","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fexpressions-exp\u002Fexp01-j",{"title":30,"description":2089},"6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F06.expressions-exp\u002F3.exp01-j","rhrxCwG143_npJhQ9liy-UgD5X6v8tEJihNdO7qDGWI",[2105,2108],{"title":2106,"path":2054,"stem":2107,"children":-1},"EXP00-J. Do not ignore values returned by methods","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F06.expressions-exp\u002F2.exp00-j",{"title":2109,"path":2066,"stem":2110,"children":-1},"EXP02-J. Do not use the Object.equals() method to compare two arrays","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F06.expressions-exp\u002F4.exp02-j",[2112],{"title":2113,"path":2114,"stem":2115,"children":2116},"SEI CERT Oracle Coding Standard for Java","\u002Fsei-cert-oracle-coding-standard-for-java","6.sei-cert-oracle-coding-standard-for-java\u002F1.index",[2117,2118,2258,3085,3484,3640],{"title":2113,"path":2114,"stem":2115},{"title":2119,"path":2120,"stem":2121,"children":2122},"Front Matter","\u002Fsei-cert-oracle-coding-standard-for-java\u002Ffront-matter","6.sei-cert-oracle-coding-standard-for-java\u002F2.front-matter\u002F1.index",[2123,2124,2128,2132,2136,2182,2220],{"title":2119,"path":2120,"stem":2121},{"title":2125,"path":2126,"stem":2127},"Rules versus Recommendations (Java)","\u002Fsei-cert-oracle-coding-standard-for-java\u002Ffront-matter\u002Frules-versus-recommendations-java","6.sei-cert-oracle-coding-standard-for-java\u002F2.front-matter\u002F2.rules-versus-recommendations-java",{"title":2129,"path":2130,"stem":2131},"Acknowledgments","\u002Fsei-cert-oracle-coding-standard-for-java\u002Ffront-matter\u002Facknowledgments","6.sei-cert-oracle-coding-standard-for-java\u002F2.front-matter\u002F3.acknowledgments",{"title":2133,"path":2134,"stem":2135},"Deprecations","\u002Fsei-cert-oracle-coding-standard-for-java\u002Ffront-matter\u002Fdeprecations","6.sei-cert-oracle-coding-standard-for-java\u002F2.front-matter\u002F4.deprecations",{"title":2137,"path":2138,"stem":2139,"children":2140},"Rec. Preface","\u002Fsei-cert-oracle-coding-standard-for-java\u002Ffront-matter\u002Frec-preface","6.sei-cert-oracle-coding-standard-for-java\u002F2.front-matter\u002F4.rec-preface\u002F01.index",[2141,2142,2146,2150,2154,2158,2162,2166,2170,2174,2178],{"title":2137,"path":2138,"stem":2139},{"title":2143,"path":2144,"stem":2145},"Scope","\u002Fsei-cert-oracle-coding-standard-for-java\u002Ffront-matter\u002Frec-preface\u002Fscope","6.sei-cert-oracle-coding-standard-for-java\u002F2.front-matter\u002F4.rec-preface\u002F02.scope",{"title":2147,"path":2148,"stem":2149},"Audience","\u002Fsei-cert-oracle-coding-standard-for-java\u002Ffront-matter\u002Frec-preface\u002Faudience","6.sei-cert-oracle-coding-standard-for-java\u002F2.front-matter\u002F4.rec-preface\u002F03.audience",{"title":2151,"path":2152,"stem":2153},"Contents and Organization","\u002Fsei-cert-oracle-coding-standard-for-java\u002Ffront-matter\u002Frec-preface\u002Fcontents-and-organization","6.sei-cert-oracle-coding-standard-for-java\u002F2.front-matter\u002F4.rec-preface\u002F05.contents-and-organization",{"title":2155,"path":2156,"stem":2157},"Guidelines","\u002Fsei-cert-oracle-coding-standard-for-java\u002Ffront-matter\u002Frec-preface\u002Fguidelines","6.sei-cert-oracle-coding-standard-for-java\u002F2.front-matter\u002F4.rec-preface\u002F06.guidelines",{"title":2159,"path":2160,"stem":2161},"Usage","\u002Fsei-cert-oracle-coding-standard-for-java\u002Ffront-matter\u002Frec-preface\u002Fusage","6.sei-cert-oracle-coding-standard-for-java\u002F2.front-matter\u002F4.rec-preface\u002F07.usage",{"title":2163,"path":2164,"stem":2165},"System Qualities","\u002Fsei-cert-oracle-coding-standard-for-java\u002Ffront-matter\u002Frec-preface\u002Fsystem-qualities","6.sei-cert-oracle-coding-standard-for-java\u002F2.front-matter\u002F4.rec-preface\u002F08.system-qualities",{"title":2167,"path":2168,"stem":2169},"Priority and Levels","\u002Fsei-cert-oracle-coding-standard-for-java\u002Ffront-matter\u002Frec-preface\u002Fpriority-and-levels","6.sei-cert-oracle-coding-standard-for-java\u002F2.front-matter\u002F4.rec-preface\u002F09.priority-and-levels",{"title":2171,"path":2172,"stem":2173},"Automatically Generated Code","\u002Fsei-cert-oracle-coding-standard-for-java\u002Ffront-matter\u002Frec-preface\u002Fautomatically-generated-code","6.sei-cert-oracle-coding-standard-for-java\u002F2.front-matter\u002F4.rec-preface\u002F10.automatically-generated-code",{"title":2175,"path":2176,"stem":2177},"Source Code Validation","\u002Fsei-cert-oracle-coding-standard-for-java\u002Ffront-matter\u002Frec-preface\u002Fsource-code-validation","6.sei-cert-oracle-coding-standard-for-java\u002F2.front-matter\u002F4.rec-preface\u002F11.source-code-validation",{"title":2179,"path":2180,"stem":2181},"Tool Selection and Validation","\u002Fsei-cert-oracle-coding-standard-for-java\u002Ffront-matter\u002Frec-preface\u002Ftool-selection-and-validation","6.sei-cert-oracle-coding-standard-for-java\u002F2.front-matter\u002F4.rec-preface\u002F12.tool-selection-and-validation",{"title":2183,"path":2184,"stem":2185,"children":2186},"Rule. Introduction","\u002Fsei-cert-oracle-coding-standard-for-java\u002Ffront-matter\u002Frule-introduction","6.sei-cert-oracle-coding-standard-for-java\u002F2.front-matter\u002F5.rule-introduction\u002F01.index",[2187,2188,2192,2196,2200,2204,2208,2212,2216],{"title":2183,"path":2184,"stem":2185},{"title":2189,"path":2190,"stem":2191},"Input Validation and Data Sanitization","\u002Fsei-cert-oracle-coding-standard-for-java\u002Ffront-matter\u002Frule-introduction\u002Finput-validation-and-data-sanitization","6.sei-cert-oracle-coding-standard-for-java\u002F2.front-matter\u002F5.rule-introduction\u002F02.input-validation-and-data-sanitization",{"title":2193,"path":2194,"stem":2195},"Leaking Sensitive Data","\u002Fsei-cert-oracle-coding-standard-for-java\u002Ffront-matter\u002Frule-introduction\u002Fleaking-sensitive-data","6.sei-cert-oracle-coding-standard-for-java\u002F2.front-matter\u002F5.rule-introduction\u002F03.leaking-sensitive-data",{"title":2197,"path":2198,"stem":2199},"Type Safety","\u002Fsei-cert-oracle-coding-standard-for-java\u002Ffront-matter\u002Frule-introduction\u002Ftype-safety","6.sei-cert-oracle-coding-standard-for-java\u002F2.front-matter\u002F5.rule-introduction\u002F04.type-safety",{"title":2201,"path":2202,"stem":2203},"Leaking Capabilities","\u002Fsei-cert-oracle-coding-standard-for-java\u002Ffront-matter\u002Frule-introduction\u002Fleaking-capabilities","6.sei-cert-oracle-coding-standard-for-java\u002F2.front-matter\u002F5.rule-introduction\u002F05.leaking-capabilities",{"title":2205,"path":2206,"stem":2207},"Denial of Service","\u002Fsei-cert-oracle-coding-standard-for-java\u002Ffront-matter\u002Frule-introduction\u002Fdenial-of-service","6.sei-cert-oracle-coding-standard-for-java\u002F2.front-matter\u002F5.rule-introduction\u002F06.denial-of-service",{"title":2209,"path":2210,"stem":2211},"Libraries","\u002Fsei-cert-oracle-coding-standard-for-java\u002Ffront-matter\u002Frule-introduction\u002Flibraries","6.sei-cert-oracle-coding-standard-for-java\u002F2.front-matter\u002F5.rule-introduction\u002F07.libraries",{"title":2213,"path":2214,"stem":2215},"Concurrency, Visibility, and Memory","\u002Fsei-cert-oracle-coding-standard-for-java\u002Ffront-matter\u002Frule-introduction\u002Fconcurrency-visibility-and-memory","6.sei-cert-oracle-coding-standard-for-java\u002F2.front-matter\u002F5.rule-introduction\u002F08.concurrency-visibility-and-memory",{"title":2217,"path":2218,"stem":2219},"Privilege Escalation","\u002Fsei-cert-oracle-coding-standard-for-java\u002Ffront-matter\u002Frule-introduction\u002Fprivilege-escalation","6.sei-cert-oracle-coding-standard-for-java\u002F2.front-matter\u002F5.rule-introduction\u002F09.privilege-escalation",{"title":2221,"path":2222,"stem":2223,"children":2224},"Rule. Preface","\u002Fsei-cert-oracle-coding-standard-for-java\u002Ffront-matter\u002Frule-preface","6.sei-cert-oracle-coding-standard-for-java\u002F2.front-matter\u002F6.rule-preface\u002F01.index",[2225,2226,2229,2232,2235,2239,2242,2245,2248,2251,2255],{"title":2221,"path":2222,"stem":2223},{"title":2143,"path":2227,"stem":2228},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Ffront-matter\u002Frule-preface\u002Fscope","6.sei-cert-oracle-coding-standard-for-java\u002F2.front-matter\u002F6.rule-preface\u002F02.scope",{"title":2147,"path":2230,"stem":2231},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Ffront-matter\u002Frule-preface\u002Faudience","6.sei-cert-oracle-coding-standard-for-java\u002F2.front-matter\u002F6.rule-preface\u002F03.audience",{"title":2151,"path":2233,"stem":2234},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Ffront-matter\u002Frule-preface\u002Fcontents-and-organization","6.sei-cert-oracle-coding-standard-for-java\u002F2.front-matter\u002F6.rule-preface\u002F04.contents-and-organization",{"title":2236,"path":2237,"stem":2238},"Identifiers","\u002Fsei-cert-oracle-coding-standard-for-java\u002Ffront-matter\u002Frule-preface\u002Fidentifiers","6.sei-cert-oracle-coding-standard-for-java\u002F2.front-matter\u002F6.rule-preface\u002F05.identifiers",{"title":2159,"path":2240,"stem":2241},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Ffront-matter\u002Frule-preface\u002Fusage","6.sei-cert-oracle-coding-standard-for-java\u002F2.front-matter\u002F6.rule-preface\u002F06.usage",{"title":2163,"path":2243,"stem":2244},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Ffront-matter\u002Frule-preface\u002Fsystem-qualities","6.sei-cert-oracle-coding-standard-for-java\u002F2.front-matter\u002F6.rule-preface\u002F07.system-qualities",{"title":2167,"path":2246,"stem":2247},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Ffront-matter\u002Frule-preface\u002Fpriority-and-levels","6.sei-cert-oracle-coding-standard-for-java\u002F2.front-matter\u002F6.rule-preface\u002F08.priority-and-levels",{"title":2171,"path":2249,"stem":2250},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Ffront-matter\u002Frule-preface\u002Fautomatically-generated-code","6.sei-cert-oracle-coding-standard-for-java\u002F2.front-matter\u002F6.rule-preface\u002F09.automatically-generated-code",{"title":2252,"path":2253,"stem":2254},"Conformance Testing","\u002Fsei-cert-oracle-coding-standard-for-java\u002Ffront-matter\u002Frule-preface\u002Fconformance-testing","6.sei-cert-oracle-coding-standard-for-java\u002F2.front-matter\u002F6.rule-preface\u002F10.conformance-testing",{"title":2179,"path":2256,"stem":2257},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Ffront-matter\u002Frule-preface\u002Ftool-selection-and-validation","6.sei-cert-oracle-coding-standard-for-java\u002F2.front-matter\u002F6.rule-preface\u002F11.tool-selection-and-validation",{"title":2259,"path":2260,"stem":2261,"children":2262},"Rules","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F01.index",[2263,2264,2268,2294,2312,2356,2385,2459,2513,2539,2593,2655,2709,2767,2829,2879,2919,2977,3007,3033,3055],{"title":2259,"path":2260,"stem":2261},{"title":2265,"path":2266,"stem":2267},"Android (DRD)","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fandroid-drd","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F02.android-drd",{"title":2269,"path":2270,"stem":2271,"children":2272},"Characters and Strings (STR)","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fcharacters-and-strings-str","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F03.characters-and-strings-str\u002F1.index",[2273,2274,2278,2282,2286,2290],{"title":2269,"path":2270,"stem":2271},{"title":2275,"path":2276,"stem":2277},"STR00-J. Don't form strings containing partial characters from variable-width encodings","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fcharacters-and-strings-str\u002Fstr00-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F03.characters-and-strings-str\u002F2.str00-j",{"title":2279,"path":2280,"stem":2281},"STR01-J. Do not assume that a Java char fully represents a Unicode code point","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fcharacters-and-strings-str\u002Fstr01-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F03.characters-and-strings-str\u002F3.str01-j",{"title":2283,"path":2284,"stem":2285},"STR02-J. Specify an appropriate locale when comparing locale-dependent data","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fcharacters-and-strings-str\u002Fstr02-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F03.characters-and-strings-str\u002F4.str02-j",{"title":2287,"path":2288,"stem":2289},"STR03-J. Do not encode noncharacter data as a string","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fcharacters-and-strings-str\u002Fstr03-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F03.characters-and-strings-str\u002F5.str03-j",{"title":2291,"path":2292,"stem":2293},"STR04-J. Use compatible character encodings when communicating string data between JVMs","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fcharacters-and-strings-str\u002Fstr04-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F03.characters-and-strings-str\u002F6.str04-j",{"title":2295,"path":2296,"stem":2297,"children":2298},"Declarations and Initialization (DCL)","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fdeclarations-and-initialization-dcl","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F04.declarations-and-initialization-dcl\u002F1.index",[2299,2300,2304,2308],{"title":2295,"path":2296,"stem":2297},{"title":2301,"path":2302,"stem":2303},"DCL00-J. Prevent class initialization cycles","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl00-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F04.declarations-and-initialization-dcl\u002F2.dcl00-j",{"title":2305,"path":2306,"stem":2307},"DCL01-J. Do not reuse public identifiers from the Java Standard Library","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl01-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F04.declarations-and-initialization-dcl\u002F3.dcl01-j",{"title":2309,"path":2310,"stem":2311},"DCL02-J. Do not modify the collection's elements during an enhanced for statement","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl02-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F04.declarations-and-initialization-dcl\u002F4.dcl02-j",{"title":2313,"path":2314,"stem":2315,"children":2316},"Exceptional Behavior (ERR)","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fexceptional-behavior-err","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F05.exceptional-behavior-err\u002F01.index",[2317,2318,2322,2326,2330,2334,2338,2342,2346,2350,2352],{"title":2313,"path":2314,"stem":2315},{"title":2319,"path":2320,"stem":2321},"ERR00-J. Do not suppress or ignore checked exceptions","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fexceptional-behavior-err\u002Ferr00-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F05.exceptional-behavior-err\u002F02.err00-j",{"title":2323,"path":2324,"stem":2325},"ERR01-J. Do not allow exceptions to expose sensitive information","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fexceptional-behavior-err\u002Ferr01-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F05.exceptional-behavior-err\u002F03.err01-j",{"title":2327,"path":2328,"stem":2329},"ERR02-J. Prevent exceptions while logging data","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fexceptional-behavior-err\u002Ferr02-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F05.exceptional-behavior-err\u002F04.err02-j",{"title":2331,"path":2332,"stem":2333},"ERR03-J. Restore prior object state on method failure","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fexceptional-behavior-err\u002Ferr03-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F05.exceptional-behavior-err\u002F05.err03-j",{"title":2335,"path":2336,"stem":2337},"ERR04-J. Do not complete abruptly from a finally block","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fexceptional-behavior-err\u002Ferr04-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F05.exceptional-behavior-err\u002F06.err04-j",{"title":2339,"path":2340,"stem":2341},"ERR05-J. Do not let checked exceptions escape from a finally block","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fexceptional-behavior-err\u002Ferr05-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F05.exceptional-behavior-err\u002F07.err05-j",{"title":2343,"path":2344,"stem":2345},"ERR06-J. Do not throw undeclared checked exceptions","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fexceptional-behavior-err\u002Ferr06-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F05.exceptional-behavior-err\u002F08.err06-j",{"title":2347,"path":2348,"stem":2349},"ERR07-J. Do not throw RuntimeException, Exception, or Throwable","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fexceptional-behavior-err\u002Ferr07-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F05.exceptional-behavior-err\u002F09.err07-j",{"title":92,"path":91,"stem":2351},"6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F05.exceptional-behavior-err\u002F10.err08-j",{"title":2353,"path":2354,"stem":2355},"ERR09-J. Do not allow untrusted code to terminate the JVM","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fexceptional-behavior-err\u002Ferr09-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F05.exceptional-behavior-err\u002F11.err09-j",{"title":2357,"path":2358,"stem":2359,"children":2360},"Expressions (EXP)","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fexpressions-exp","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F06.expressions-exp\u002F1.index",[2361,2362,2363,2364,2365,2369,2373,2377,2381],{"title":2357,"path":2358,"stem":2359},{"title":2106,"path":2054,"stem":2107},{"title":30,"path":2100,"stem":2102},{"title":2109,"path":2066,"stem":2110},{"title":2366,"path":2367,"stem":2368},"EXP03-J. Do not use the equality operators when comparing values of boxed primitives","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fexpressions-exp\u002Fexp03-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F06.expressions-exp\u002F5.exp03-j",{"title":2370,"path":2371,"stem":2372},"EXP04-J. Do not pass arguments to certain Java Collections Framework methods that are a different type than the collection parameter type","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fexpressions-exp\u002Fexp04-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F06.expressions-exp\u002F6.exp04-j",{"title":2374,"path":2375,"stem":2376},"EXP05-J. Do not follow a write by a subsequent write or read of the same object within an expression","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fexpressions-exp\u002Fexp05-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F06.expressions-exp\u002F7.exp05-j",{"title":2378,"path":2379,"stem":2380},"EXP06-J. Expressions used in assertions must not produce side effects","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fexpressions-exp\u002Fexp06-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F06.expressions-exp\u002F8.exp06-j",{"title":2382,"path":2383,"stem":2384},"EXP07-J. Prevent loss of useful data due to weak references","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fexpressions-exp\u002Fexp07-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F06.expressions-exp\u002F9.exp07-j",{"title":2386,"path":2387,"stem":2388,"children":2389},"Input Output (FIO)","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Finput-output-fio","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F07.input-output-fio\u002F01.index",[2390,2391,2395,2399,2403,2407,2411,2415,2419,2423,2427,2431,2435,2439,2443,2447,2451,2455],{"title":2386,"path":2387,"stem":2388},{"title":2392,"path":2393,"stem":2394},"FIO00-J. Do not operate on files in shared directories","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Finput-output-fio\u002Ffio00-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F07.input-output-fio\u002F02.fio00-j",{"title":2396,"path":2397,"stem":2398},"FIO01-J. Create files with appropriate access permissions","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Finput-output-fio\u002Ffio01-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F07.input-output-fio\u002F03.fio01-j",{"title":2400,"path":2401,"stem":2402},"FIO02-J. Detect and handle file-related errors","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Finput-output-fio\u002Ffio02-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F07.input-output-fio\u002F04.fio02-j",{"title":2404,"path":2405,"stem":2406},"FIO03-J. Remove temporary files before termination","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Finput-output-fio\u002Ffio03-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F07.input-output-fio\u002F05.fio03-j",{"title":2408,"path":2409,"stem":2410},"FIO04-J. Release resources when they are no longer needed","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Finput-output-fio\u002Ffio04-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F07.input-output-fio\u002F06.fio04-j",{"title":2412,"path":2413,"stem":2414},"FIO05-J. Do not expose buffers or their backing arrays methods to untrusted code","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Finput-output-fio\u002Ffio05-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F07.input-output-fio\u002F07.fio05-j",{"title":2416,"path":2417,"stem":2418},"FIO06-J. Do not create multiple buffered wrappers on a single byte or character stream","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Finput-output-fio\u002Ffio06-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F07.input-output-fio\u002F08.fio06-j",{"title":2420,"path":2421,"stem":2422},"FIO07-J. Do not let external processes block on IO buffers","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Finput-output-fio\u002Ffio07-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F07.input-output-fio\u002F09.fio07-j",{"title":2424,"path":2425,"stem":2426},"FIO08-J. Distinguish between characters or bytes read from a stream and -1","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Finput-output-fio\u002Ffio08-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F07.input-output-fio\u002F10.fio08-j",{"title":2428,"path":2429,"stem":2430},"FIO09-J. Do not rely on the write() method to output integers outside the range 0 to 255","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Finput-output-fio\u002Ffio09-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F07.input-output-fio\u002F11.fio09-j",{"title":2432,"path":2433,"stem":2434},"FIO10-J. Ensure the array is filled when using read() to fill an array","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Finput-output-fio\u002Ffio10-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F07.input-output-fio\u002F12.fio10-j",{"title":2436,"path":2437,"stem":2438},"FIO11-J. Do not convert between strings and bytes without specifying a valid character encoding","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Finput-output-fio\u002Ffio11-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F07.input-output-fio\u002F13.fio11-j",{"title":2440,"path":2441,"stem":2442},"FIO12-J. Provide methods to read and write little-endian data","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Finput-output-fio\u002Ffio12-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F07.input-output-fio\u002F14.fio12-j",{"title":2444,"path":2445,"stem":2446},"FIO13-J. Do not log sensitive information outside a trust boundary","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Finput-output-fio\u002Ffio13-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F07.input-output-fio\u002F15.fio13-j",{"title":2448,"path":2449,"stem":2450},"FIO14-J. Perform proper cleanup at program termination","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Finput-output-fio\u002Ffio14-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F07.input-output-fio\u002F16.fio14-j",{"title":2452,"path":2453,"stem":2454},"FIO15-J. Do not reset a servlet's output stream after committing it","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Finput-output-fio\u002Ffio15-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F07.input-output-fio\u002F17.fio15-j",{"title":2456,"path":2457,"stem":2458},"FIO16-J. Canonicalize path names before validating them","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Finput-output-fio\u002Ffio16-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F07.input-output-fio\u002F18.fio16-j",{"title":2460,"path":2461,"stem":2462,"children":2463},"Input Validation and Data Sanitization (IDS)","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Finput-validation-and-data-sanitization-ids","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F08.input-validation-and-data-sanitization-ids\u002F01.index",[2464,2465,2469,2473,2477,2481,2485,2489,2493,2497,2501,2505,2509],{"title":2460,"path":2461,"stem":2462},{"title":2466,"path":2467,"stem":2468},"IDS00-J. Prevent SQL injection","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Finput-validation-and-data-sanitization-ids\u002Fids00-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F08.input-validation-and-data-sanitization-ids\u002F02.ids00-j",{"title":2470,"path":2471,"stem":2472},"IDS01-J. Normalize strings before validating them","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Finput-validation-and-data-sanitization-ids\u002Fids01-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F08.input-validation-and-data-sanitization-ids\u002F03.ids01-j",{"title":2474,"path":2475,"stem":2476},"IDS03-J. Do not log unsanitized user input","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Finput-validation-and-data-sanitization-ids\u002Fids03-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F08.input-validation-and-data-sanitization-ids\u002F04.ids03-j",{"title":2478,"path":2479,"stem":2480},"IDS04-J. Safely extract files from ZipInputStream","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Finput-validation-and-data-sanitization-ids\u002Fids04-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F08.input-validation-and-data-sanitization-ids\u002F05.ids04-j",{"title":2482,"path":2483,"stem":2484},"IDS06-J. Exclude unsanitized user input from format strings","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Finput-validation-and-data-sanitization-ids\u002Fids06-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F08.input-validation-and-data-sanitization-ids\u002F06.ids06-j",{"title":2486,"path":2487,"stem":2488},"IDS07-J. Sanitize untrusted data passed to the Runtime.exec() method","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Finput-validation-and-data-sanitization-ids\u002Fids07-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F08.input-validation-and-data-sanitization-ids\u002F07.ids07-j",{"title":2490,"path":2491,"stem":2492},"IDS08-J. Sanitize untrusted data included in a regular expression","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Finput-validation-and-data-sanitization-ids\u002Fids08-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F08.input-validation-and-data-sanitization-ids\u002F08.ids08-j",{"title":2494,"path":2495,"stem":2496},"IDS11-J. Perform any string modifications before validation","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Finput-validation-and-data-sanitization-ids\u002Fids11-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F08.input-validation-and-data-sanitization-ids\u002F09.ids11-j",{"title":2498,"path":2499,"stem":2500},"IDS14-J. Do not trust the contents of hidden form fields","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Finput-validation-and-data-sanitization-ids\u002Fids14-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F08.input-validation-and-data-sanitization-ids\u002F10.ids14-j",{"title":2502,"path":2503,"stem":2504},"IDS15-J. Do not allow sensitive information to leak outside a trust boundary","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Finput-validation-and-data-sanitization-ids\u002Fids15-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F08.input-validation-and-data-sanitization-ids\u002F11.ids15-j",{"title":2506,"path":2507,"stem":2508},"IDS16-J. Prevent XML Injection","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Finput-validation-and-data-sanitization-ids\u002Fids16-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F08.input-validation-and-data-sanitization-ids\u002F12.ids16-j",{"title":2510,"path":2511,"stem":2512},"IDS17-J. Prevent XML External Entity Attacks","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Finput-validation-and-data-sanitization-ids\u002Fids17-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F08.input-validation-and-data-sanitization-ids\u002F13.ids17-j",{"title":2514,"path":2515,"stem":2516,"children":2517},"Java Native Interface (JNI)","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fjava-native-interface-jni","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F09.java-native-interface-jni\u002F1.index",[2518,2519,2523,2527,2531,2535],{"title":2514,"path":2515,"stem":2516},{"title":2520,"path":2521,"stem":2522},"JNI00-J. Define wrappers around native methods","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fjava-native-interface-jni\u002Fjni00-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F09.java-native-interface-jni\u002F2.jni00-j",{"title":2524,"path":2525,"stem":2526},"JNI01-J. Safely invoke standard APIs that perform tasks using the immediate caller's class loader instance (loadLibrary)","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fjava-native-interface-jni\u002Fjni01-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F09.java-native-interface-jni\u002F3.jni01-j",{"title":2528,"path":2529,"stem":2530},"JNI02-J. Do not assume object references are constant or unique","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fjava-native-interface-jni\u002Fjni02-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F09.java-native-interface-jni\u002F4.jni02-j",{"title":2532,"path":2533,"stem":2534},"JNI03-J. Do not use direct pointers to Java objects in JNI code","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fjava-native-interface-jni\u002Fjni03-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F09.java-native-interface-jni\u002F5.jni03-j",{"title":2536,"path":2537,"stem":2538},"JNI04-J. Do not assume that Java strings are null-terminated","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fjava-native-interface-jni\u002Fjni04-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F09.java-native-interface-jni\u002F6.jni04-j",{"title":2540,"path":2541,"stem":2542,"children":2543},"Locking (LCK)","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Flocking-lck","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F10.locking-lck\u002F01.index",[2544,2545,2549,2553,2557,2561,2565,2569,2573,2577,2581,2585,2589],{"title":2540,"path":2541,"stem":2542},{"title":2546,"path":2547,"stem":2548},"LCK00-J. Use private final lock objects to synchronize classes that may interact with untrusted code","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Flocking-lck\u002Flck00-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F10.locking-lck\u002F02.lck00-j",{"title":2550,"path":2551,"stem":2552},"LCK01-J. Do not synchronize on objects that may be reused","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Flocking-lck\u002Flck01-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F10.locking-lck\u002F03.lck01-j",{"title":2554,"path":2555,"stem":2556},"LCK02-J. Do not synchronize on the class object returned by getClass()","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Flocking-lck\u002Flck02-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F10.locking-lck\u002F04.lck02-j",{"title":2558,"path":2559,"stem":2560},"LCK03-J. Do not synchronize on the intrinsic locks of high-level concurrency objects","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Flocking-lck\u002Flck03-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F10.locking-lck\u002F05.lck03-j",{"title":2562,"path":2563,"stem":2564},"LCK04-J. Do not synchronize on a collection view if the backing collection is accessible","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Flocking-lck\u002Flck04-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F10.locking-lck\u002F06.lck04-j",{"title":2566,"path":2567,"stem":2568},"LCK05-J. Synchronize access to static fields that can be modified by untrusted code","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Flocking-lck\u002Flck05-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F10.locking-lck\u002F07.lck05-j",{"title":2570,"path":2571,"stem":2572},"LCK06-J. Do not use an instance lock to protect shared static data","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Flocking-lck\u002Flck06-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F10.locking-lck\u002F08.lck06-j",{"title":2574,"path":2575,"stem":2576},"LCK07-J. Avoid deadlock by requesting and releasing locks in the same order","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Flocking-lck\u002Flck07-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F10.locking-lck\u002F09.lck07-j",{"title":2578,"path":2579,"stem":2580},"LCK08-J. Ensure actively held locks are released on exceptional conditions","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Flocking-lck\u002Flck08-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F10.locking-lck\u002F10.lck08-j",{"title":2582,"path":2583,"stem":2584},"LCK09-J. Do not perform operations that can block while holding a lock","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Flocking-lck\u002Flck09-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F10.locking-lck\u002F11.lck09-j",{"title":2586,"path":2587,"stem":2588},"LCK10-J. Use a correct form of the double-checked locking idiom","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Flocking-lck\u002Flck10-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F10.locking-lck\u002F12.lck10-j",{"title":2590,"path":2591,"stem":2592},"LCK11-J. Avoid client-side locking when using classes that do not commit to their locking strategy","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Flocking-lck\u002Flck11-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F10.locking-lck\u002F13.lck11-j",{"title":2594,"path":2595,"stem":2596,"children":2597},"Methods (MET)","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fmethods-met","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F11.methods-met\u002F01.index",[2598,2599,2603,2607,2611,2615,2619,2623,2627,2631,2635,2639,2643,2647,2651],{"title":2594,"path":2595,"stem":2596},{"title":2600,"path":2601,"stem":2602},"MET00-J. Validate method arguments","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fmethods-met\u002Fmet00-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F11.methods-met\u002F02.met00-j",{"title":2604,"path":2605,"stem":2606},"MET01-J. Never use assertions to validate method arguments","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fmethods-met\u002Fmet01-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F11.methods-met\u002F03.met01-j",{"title":2608,"path":2609,"stem":2610},"MET02-J. Do not use deprecated or obsolete classes or methods","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fmethods-met\u002Fmet02-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F11.methods-met\u002F04.met02-j",{"title":2612,"path":2613,"stem":2614},"MET03-J. Methods that perform a security check must be declared private or final","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fmethods-met\u002Fmet03-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F11.methods-met\u002F05.met03-j",{"title":2616,"path":2617,"stem":2618},"MET04-J. Do not increase the accessibility of overridden or hidden methods","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fmethods-met\u002Fmet04-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F11.methods-met\u002F06.met04-j",{"title":2620,"path":2621,"stem":2622},"MET05-J. Ensure that constructors do not call overridable methods","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fmethods-met\u002Fmet05-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F11.methods-met\u002F07.met05-j",{"title":2624,"path":2625,"stem":2626},"MET06-J. Do not invoke overridable methods in clone()","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fmethods-met\u002Fmet06-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F11.methods-met\u002F08.met06-j",{"title":2628,"path":2629,"stem":2630},"MET07-J. Never declare a class method that hides a method declared in a superclass or superinterface","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fmethods-met\u002Fmet07-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F11.methods-met\u002F09.met07-j",{"title":2632,"path":2633,"stem":2634},"MET08-J. Preserve the equality contract when overriding the equals() method","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fmethods-met\u002Fmet08-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F11.methods-met\u002F10.met08-j",{"title":2636,"path":2637,"stem":2638},"MET09-J. Classes that define an equals() method must also define a hashCode() method","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fmethods-met\u002Fmet09-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F11.methods-met\u002F11.met09-j",{"title":2640,"path":2641,"stem":2642},"MET10-J. Follow the general contract when implementing the compareTo() method","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fmethods-met\u002Fmet10-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F11.methods-met\u002F12.met10-j",{"title":2644,"path":2645,"stem":2646},"MET11-J. Ensure that keys used in comparison operations are immutable","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fmethods-met\u002Fmet11-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F11.methods-met\u002F13.met11-j",{"title":2648,"path":2649,"stem":2650},"MET12-J. Do not use finalizers","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fmethods-met\u002Fmet12-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F11.methods-met\u002F14.met12-j",{"title":2652,"path":2653,"stem":2654},"MET13-J. Do not assume that reassigning method arguments modifies the calling environment","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fmethods-met\u002Fmet13-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F11.methods-met\u002F15.met13-j",{"title":2656,"path":2657,"stem":2658,"children":2659},"Miscellaneous (MSC)","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fmiscellaneous-msc","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F12.miscellaneous-msc\u002F01.index",[2660,2661,2665,2669,2673,2677,2681,2685,2689,2693,2697,2701,2705],{"title":2656,"path":2657,"stem":2658},{"title":2662,"path":2663,"stem":2664},"MSC00-J. Use SSLSocket rather than Socket for secure data exchange","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fmiscellaneous-msc\u002Fmsc00-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F12.miscellaneous-msc\u002F02.msc00-j",{"title":2666,"path":2667,"stem":2668},"MSC01-J. Do not use an empty infinite loop","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fmiscellaneous-msc\u002Fmsc01-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F12.miscellaneous-msc\u002F03.msc01-j",{"title":2670,"path":2671,"stem":2672},"MSC02-J. Generate strong random numbers","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fmiscellaneous-msc\u002Fmsc02-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F12.miscellaneous-msc\u002F04.msc02-j",{"title":2674,"path":2675,"stem":2676},"MSC03-J. Never hard code sensitive information","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fmiscellaneous-msc\u002Fmsc03-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F12.miscellaneous-msc\u002F05.msc03-j",{"title":2678,"path":2679,"stem":2680},"MSC04-J. Do not leak memory","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fmiscellaneous-msc\u002Fmsc04-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F12.miscellaneous-msc\u002F06.msc04-j",{"title":2682,"path":2683,"stem":2684},"MSC05-J. Do not exhaust heap space","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fmiscellaneous-msc\u002Fmsc05-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F12.miscellaneous-msc\u002F07.msc05-j",{"title":2686,"path":2687,"stem":2688},"MSC06-J. Do not modify the underlying collection when an iteration is in progress","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fmiscellaneous-msc\u002Fmsc06-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F12.miscellaneous-msc\u002F08.msc06-j",{"title":2690,"path":2691,"stem":2692},"MSC07-J. Prevent multiple instantiations of singleton objects","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fmiscellaneous-msc\u002Fmsc07-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F12.miscellaneous-msc\u002F09.msc07-j",{"title":2694,"path":2695,"stem":2696},"MSC08-J. Do not store nonserializable objects as attributes in an HTTP session","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fmiscellaneous-msc\u002Fmsc08-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F12.miscellaneous-msc\u002F10.msc08-j",{"title":2698,"path":2699,"stem":2700},"MSC09-J. For OAuth, ensure (a) [relying party receiving user's ID in last step] is same as (b) [relying party the access token was granted to].","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fmiscellaneous-msc\u002Fmsc09-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F12.miscellaneous-msc\u002F11.msc09-j",{"title":2702,"path":2703,"stem":2704},"MSC10-J. Do not use OAuth 2.0 implicit grant (unmodified) for authentication","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fmiscellaneous-msc\u002Fmsc10-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F12.miscellaneous-msc\u002F12.msc10-j",{"title":2706,"path":2707,"stem":2708},"MSC11-J. Do not let session information leak within a servlet","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fmiscellaneous-msc\u002Fmsc11-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F12.miscellaneous-msc\u002F13.msc11-j",{"title":2710,"path":2711,"stem":2712,"children":2713},"Numeric Types and Operations (NUM)","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fnumeric-types-and-operations-num","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F13.numeric-types-and-operations-num\u002F01.index",[2714,2715,2719,2723,2727,2731,2735,2739,2743,2747,2751,2755,2759,2763],{"title":2710,"path":2711,"stem":2712},{"title":2716,"path":2717,"stem":2718},"NUM00-J. Detect or prevent integer overflow","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fnumeric-types-and-operations-num\u002Fnum00-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F13.numeric-types-and-operations-num\u002F02.num00-j",{"title":2720,"path":2721,"stem":2722},"NUM01-J. Do not perform bitwise and arithmetic operations on the same data","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fnumeric-types-and-operations-num\u002Fnum01-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F13.numeric-types-and-operations-num\u002F03.num01-j",{"title":2724,"path":2725,"stem":2726},"NUM02-J. Ensure that division and remainder operations do not result in divide-by-zero errors","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fnumeric-types-and-operations-num\u002Fnum02-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F13.numeric-types-and-operations-num\u002F04.num02-j",{"title":2728,"path":2729,"stem":2730},"NUM03-J. Use integer types that can fully represent the possible range of unsigned data","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fnumeric-types-and-operations-num\u002Fnum03-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F13.numeric-types-and-operations-num\u002F05.num03-j",{"title":2732,"path":2733,"stem":2734},"NUM04-J. Do not use floating-point numbers if precise computation is required","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fnumeric-types-and-operations-num\u002Fnum04-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F13.numeric-types-and-operations-num\u002F06.num04-j",{"title":2736,"path":2737,"stem":2738},"NUM07-J. Do not attempt comparisons with NaN","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fnumeric-types-and-operations-num\u002Fnum07-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F13.numeric-types-and-operations-num\u002F07.num07-j",{"title":2740,"path":2741,"stem":2742},"NUM08-J. Check floating-point inputs for exceptional values","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fnumeric-types-and-operations-num\u002Fnum08-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F13.numeric-types-and-operations-num\u002F08.num08-j",{"title":2744,"path":2745,"stem":2746},"NUM09-J. Do not use floating-point variables as loop counters","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fnumeric-types-and-operations-num\u002Fnum09-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F13.numeric-types-and-operations-num\u002F09.num09-j",{"title":2748,"path":2749,"stem":2750},"NUM10-J. Do not construct BigDecimal objects from floating-point literals","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fnumeric-types-and-operations-num\u002Fnum10-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F13.numeric-types-and-operations-num\u002F10.num10-j",{"title":2752,"path":2753,"stem":2754},"NUM11-J. Do not compare or inspect the string representation of floating-point values","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fnumeric-types-and-operations-num\u002Fnum11-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F13.numeric-types-and-operations-num\u002F11.num11-j",{"title":2756,"path":2757,"stem":2758},"NUM12-J. Ensure conversions of numeric types to narrower types do not result in lost or misinterpreted data","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fnumeric-types-and-operations-num\u002Fnum12-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F13.numeric-types-and-operations-num\u002F12.num12-j",{"title":2760,"path":2761,"stem":2762},"NUM13-J. Avoid loss of precision when converting primitive integers to floating-point","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fnumeric-types-and-operations-num\u002Fnum13-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F13.numeric-types-and-operations-num\u002F13.num13-j",{"title":2764,"path":2765,"stem":2766},"NUM14-J. Use shift operators correctly","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fnumeric-types-and-operations-num\u002Fnum14-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F13.numeric-types-and-operations-num\u002F14.num14-j",{"title":2768,"path":2769,"stem":2770,"children":2771},"Object Orientation (OBJ)","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fobject-orientation-obj","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F14.object-orientation-obj\u002F01.index",[2772,2773,2777,2781,2785,2789,2793,2797,2801,2805,2809,2813,2817,2821,2825],{"title":2768,"path":2769,"stem":2770},{"title":2774,"path":2775,"stem":2776},"OBJ01-J. Limit accessibility of fields","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fobject-orientation-obj\u002Fobj01-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F14.object-orientation-obj\u002F02.obj01-j",{"title":2778,"path":2779,"stem":2780},"OBJ02-J. Preserve dependencies in subclasses when changing superclasses","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fobject-orientation-obj\u002Fobj02-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F14.object-orientation-obj\u002F03.obj02-j",{"title":2782,"path":2783,"stem":2784},"OBJ03-J. Prevent heap pollution","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fobject-orientation-obj\u002Fobj03-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F14.object-orientation-obj\u002F04.obj03-j",{"title":2786,"path":2787,"stem":2788},"OBJ04-J. Provide mutable classes with copy functionality to safely allow passing instances to untrusted code","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fobject-orientation-obj\u002Fobj04-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F14.object-orientation-obj\u002F05.obj04-j",{"title":2790,"path":2791,"stem":2792},"OBJ05-J. Do not return references to private mutable class members","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fobject-orientation-obj\u002Fobj05-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F14.object-orientation-obj\u002F06.obj05-j",{"title":2794,"path":2795,"stem":2796},"OBJ06-J. Defensively copy mutable inputs and mutable internal components","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fobject-orientation-obj\u002Fobj06-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F14.object-orientation-obj\u002F07.obj06-j",{"title":2798,"path":2799,"stem":2800},"OBJ07-J. Sensitive classes must not let themselves be copied","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fobject-orientation-obj\u002Fobj07-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F14.object-orientation-obj\u002F08.obj07-j",{"title":2802,"path":2803,"stem":2804},"OBJ08-J. Do not expose private members of an outer class from within a nested class","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fobject-orientation-obj\u002Fobj08-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F14.object-orientation-obj\u002F09.obj08-j",{"title":2806,"path":2807,"stem":2808},"OBJ09-J. Compare classes and not class names","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fobject-orientation-obj\u002Fobj09-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F14.object-orientation-obj\u002F10.obj09-j",{"title":2810,"path":2811,"stem":2812},"OBJ10-J. Do not use public static nonfinal fields","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fobject-orientation-obj\u002Fobj10-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F14.object-orientation-obj\u002F11.obj10-j",{"title":2814,"path":2815,"stem":2816},"OBJ11-J. Be wary of letting constructors throw exceptions","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fobject-orientation-obj\u002Fobj11-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F14.object-orientation-obj\u002F12.obj11-j",{"title":2818,"path":2819,"stem":2820},"OBJ12-J. Respect object-based annotations","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fobject-orientation-obj\u002Fobj12-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F14.object-orientation-obj\u002F13.obj12-j",{"title":2822,"path":2823,"stem":2824},"OBJ13-J. Ensure that references to mutable objects are not exposed","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fobject-orientation-obj\u002Fobj13-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F14.object-orientation-obj\u002F14.obj13-j",{"title":2826,"path":2827,"stem":2828},"OBJ14-J. Do not use an object that has been freed.","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fobject-orientation-obj\u002Fobj14-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F14.object-orientation-obj\u002F15.obj14-j",{"title":2830,"path":2831,"stem":2832,"children":2833},"Platform Security (SEC)","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fplatform-security-sec","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F15.platform-security-sec\u002F01.index",[2834,2835,2839,2843,2847,2851,2855,2859,2863,2867,2871,2875],{"title":2830,"path":2831,"stem":2832},{"title":2836,"path":2837,"stem":2838},"SEC00-J. Do not allow privileged blocks to leak sensitive information across a trust boundary","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fplatform-security-sec\u002Fsec00-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F15.platform-security-sec\u002F02.sec00-j",{"title":2840,"path":2841,"stem":2842},"SEC01-J. Do not allow tainted variables in privileged blocks","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fplatform-security-sec\u002Fsec01-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F15.platform-security-sec\u002F03.sec01-j",{"title":2844,"path":2845,"stem":2846},"SEC02-J. Do not base security checks on untrusted sources","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fplatform-security-sec\u002Fsec02-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F15.platform-security-sec\u002F04.sec02-j",{"title":2848,"path":2849,"stem":2850},"SEC03-J. Do not load trusted classes after allowing untrusted code to load arbitrary classes","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fplatform-security-sec\u002Fsec03-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F15.platform-security-sec\u002F05.sec03-j",{"title":2852,"path":2853,"stem":2854},"SEC04-J. Protect sensitive operations with security manager checks","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fplatform-security-sec\u002Fsec04-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F15.platform-security-sec\u002F06.sec04-j",{"title":2856,"path":2857,"stem":2858},"SEC05-J. Do not use reflection to increase accessibility of classes, methods, or fields","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fplatform-security-sec\u002Fsec05-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F15.platform-security-sec\u002F07.sec05-j",{"title":2860,"path":2861,"stem":2862},"SEC06-J. Do not rely on the default automatic signature verification provided by URLClassLoader and java.util.jar","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fplatform-security-sec\u002Fsec06-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F15.platform-security-sec\u002F08.sec06-j",{"title":2864,"path":2865,"stem":2866},"SEC07-J. Call the superclass's getPermissions() method when writing a custom class loader","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fplatform-security-sec\u002Fsec07-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F15.platform-security-sec\u002F09.sec07-j",{"title":2868,"path":2869,"stem":2870},"SEC08-J Trusted code must discard or clean any arguments provided by untrusted code","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fplatform-security-sec\u002Fsec08-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F15.platform-security-sec\u002F10.sec08-j",{"title":2872,"path":2873,"stem":2874},"SEC09-J Never leak the results of certain standard API methods from trusted code to untrusted code","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fplatform-security-sec\u002Fsec09-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F15.platform-security-sec\u002F11.sec09-j",{"title":2876,"path":2877,"stem":2878},"SEC10-J Never permit untrusted code to invoke any API that may (possibly transitively) invoke the reflection APIs","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fplatform-security-sec\u002Fsec10-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F15.platform-security-sec\u002F12.sec10-j",{"title":2880,"path":2881,"stem":2882,"children":2883},"Runtime Environment (ENV)","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fruntime-environment-env","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F16.runtime-environment-env\u002F1.index",[2884,2885,2889,2893,2897,2907,2911,2915],{"title":2880,"path":2881,"stem":2882},{"title":2886,"path":2887,"stem":2888},"ENV00-J. Do not sign code that performs only unprivileged operations","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fruntime-environment-env\u002Fenv00-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F16.runtime-environment-env\u002F2.env00-j",{"title":2890,"path":2891,"stem":2892},"ENV01-J. Place all security-sensitive code in a single JAR and sign and seal it","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fruntime-environment-env\u002Fenv01-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F16.runtime-environment-env\u002F3.env01-j",{"title":2894,"path":2895,"stem":2896},"ENV02-J. Do not trust the values of environment variables","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fruntime-environment-env\u002Fenv02-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F16.runtime-environment-env\u002F4.env02-j",{"title":2898,"path":2899,"stem":2900,"children":2901},"ENV03-J. Do not grant dangerous combinations of permissions","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fruntime-environment-env\u002Fenv03-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F16.runtime-environment-env\u002F5.env03-j\u002F1.index",[2902,2903],{"title":2898,"path":2899,"stem":2900},{"title":2904,"path":2905,"stem":2906},"DUMMY ENV03-J","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fruntime-environment-env\u002Fenv03-j\u002Fdummy-env03-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F16.runtime-environment-env\u002F5.env03-j\u002F2.dummy-env03-j",{"title":2908,"path":2909,"stem":2910},"ENV04-J. Do not disable bytecode verification","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fruntime-environment-env\u002Fenv04-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F16.runtime-environment-env\u002F6.env04-j",{"title":2912,"path":2913,"stem":2914},"ENV05-J. Do not deploy an application that can be remotely monitored","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fruntime-environment-env\u002Fenv05-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F16.runtime-environment-env\u002F7.env05-j",{"title":2916,"path":2917,"stem":2918},"ENV06-J. Production code must not contain debugging entry points","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fruntime-environment-env\u002Fenv06-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F16.runtime-environment-env\u002F8.env06-j",{"title":2920,"path":2921,"stem":2922,"children":2923},"Serialization (SER)","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fserialization-ser","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F17.serialization-ser\u002F01.index",[2924,2925,2929,2933,2937,2941,2945,2949,2953,2957,2961,2965,2969,2973],{"title":2920,"path":2921,"stem":2922},{"title":2926,"path":2927,"stem":2928},"SER00-J. Enable serialization compatibility during class evolution","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fserialization-ser\u002Fser00-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F17.serialization-ser\u002F02.ser00-j",{"title":2930,"path":2931,"stem":2932},"SER01-J. Do not deviate from the proper signatures of serialization methods","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fserialization-ser\u002Fser01-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F17.serialization-ser\u002F03.ser01-j",{"title":2934,"path":2935,"stem":2936},"SER02-J. Sign then seal objects before sending them outside a trust boundary","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fserialization-ser\u002Fser02-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F17.serialization-ser\u002F04.ser02-j",{"title":2938,"path":2939,"stem":2940},"SER03-J. Do not serialize unencrypted sensitive data","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fserialization-ser\u002Fser03-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F17.serialization-ser\u002F05.ser03-j",{"title":2942,"path":2943,"stem":2944},"SER04-J. Do not allow serialization and deserialization to bypass the security manager","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fserialization-ser\u002Fser04-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F17.serialization-ser\u002F06.ser04-j",{"title":2946,"path":2947,"stem":2948},"SER05-J. Do not serialize instances of inner classes","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fserialization-ser\u002Fser05-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F17.serialization-ser\u002F07.ser05-j",{"title":2950,"path":2951,"stem":2952},"SER06-J. Make defensive copies of private mutable components during deserialization","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fserialization-ser\u002Fser06-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F17.serialization-ser\u002F08.ser06-j",{"title":2954,"path":2955,"stem":2956},"SER07-J. Do not use the default serialized form for classes with implementation-defined invariants","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fserialization-ser\u002Fser07-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F17.serialization-ser\u002F09.ser07-j",{"title":2958,"path":2959,"stem":2960},"SER08-J. Minimize privileges before deserializing from a privileged context","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fserialization-ser\u002Fser08-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F17.serialization-ser\u002F10.ser08-j",{"title":2962,"path":2963,"stem":2964},"SER09-J. Do not invoke overridable methods from the readObject() method","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fserialization-ser\u002Fser09-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F17.serialization-ser\u002F11.ser09-j",{"title":2966,"path":2967,"stem":2968},"SER10-J. Avoid memory and resource leaks during serialization","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fserialization-ser\u002Fser10-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F17.serialization-ser\u002F12.ser10-j",{"title":2970,"path":2971,"stem":2972},"SER11-J. Prevent overwriting of externalizable objects","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fserialization-ser\u002Fser11-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F17.serialization-ser\u002F13.ser11-j",{"title":2974,"path":2975,"stem":2976},"SER12-J. Prevent deserialization of untrusted data","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fserialization-ser\u002Fser12-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F17.serialization-ser\u002F14.ser12-j",{"title":2978,"path":2979,"stem":2980,"children":2981},"Thread APIs (THI)","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fthread-apis-thi","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F18.thread-apis-thi\u002F1.index",[2982,2983,2987,2991,2995,2999,3003],{"title":2978,"path":2979,"stem":2980},{"title":2984,"path":2985,"stem":2986},"THI00-J. Do not invoke Thread.run()","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fthread-apis-thi\u002Fthi00-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F18.thread-apis-thi\u002F2.thi00-j",{"title":2988,"path":2989,"stem":2990},"THI01-J. Do not invoke ThreadGroup methods","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fthread-apis-thi\u002Fthi01-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F18.thread-apis-thi\u002F3.thi01-j",{"title":2992,"path":2993,"stem":2994},"THI02-J. Notify all waiting threads rather than a single thread","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fthread-apis-thi\u002Fthi02-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F18.thread-apis-thi\u002F4.thi02-j",{"title":2996,"path":2997,"stem":2998},"THI03-J. Always invoke wait() and await() methods inside a loop","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fthread-apis-thi\u002Fthi03-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F18.thread-apis-thi\u002F5.thi03-j",{"title":3000,"path":3001,"stem":3002},"THI04-J. Ensure that threads performing blocking operations can be terminated","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fthread-apis-thi\u002Fthi04-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F18.thread-apis-thi\u002F6.thi04-j",{"title":3004,"path":3005,"stem":3006},"THI05-J. Do not use Thread.stop() to terminate threads","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fthread-apis-thi\u002Fthi05-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F18.thread-apis-thi\u002F7.thi05-j",{"title":3008,"path":3009,"stem":3010,"children":3011},"Thread Pools (TPS)","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fthread-pools-tps","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F19.thread-pools-tps\u002F1.index",[3012,3013,3017,3021,3025,3029],{"title":3008,"path":3009,"stem":3010},{"title":3014,"path":3015,"stem":3016},"TPS00-J. Use thread pools to enable graceful degradation of service during traffic bursts","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fthread-pools-tps\u002Ftps00-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F19.thread-pools-tps\u002F2.tps00-j",{"title":3018,"path":3019,"stem":3020},"TPS01-J. Do not execute interdependent tasks in a bounded thread pool","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fthread-pools-tps\u002Ftps01-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F19.thread-pools-tps\u002F3.tps01-j",{"title":3022,"path":3023,"stem":3024},"TPS02-J. Ensure that tasks submitted to a thread pool are interruptible","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fthread-pools-tps\u002Ftps02-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F19.thread-pools-tps\u002F4.tps02-j",{"title":3026,"path":3027,"stem":3028},"TPS03-J. Ensure that tasks executing in a thread pool do not fail silently","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fthread-pools-tps\u002Ftps03-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F19.thread-pools-tps\u002F5.tps03-j",{"title":3030,"path":3031,"stem":3032},"TPS04-J. Ensure ThreadLocal variables are reinitialized when using thread pools","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fthread-pools-tps\u002Ftps04-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F19.thread-pools-tps\u002F6.tps04-j",{"title":3034,"path":3035,"stem":3036,"children":3037},"Thread-Safety Miscellaneous (TSM)","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fthread-safety-miscellaneous-tsm","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F20.thread-safety-miscellaneous-tsm\u002F1.index",[3038,3039,3043,3047,3051],{"title":3034,"path":3035,"stem":3036},{"title":3040,"path":3041,"stem":3042},"TSM00-J. Do not override thread-safe methods with methods that are not thread-safe","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fthread-safety-miscellaneous-tsm\u002Ftsm00-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F20.thread-safety-miscellaneous-tsm\u002F2.tsm00-j",{"title":3044,"path":3045,"stem":3046},"TSM01-J. Do not let the this reference escape during object construction","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fthread-safety-miscellaneous-tsm\u002Ftsm01-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F20.thread-safety-miscellaneous-tsm\u002F3.tsm01-j",{"title":3048,"path":3049,"stem":3050},"TSM02-J. Do not use background threads during class initialization","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fthread-safety-miscellaneous-tsm\u002Ftsm02-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F20.thread-safety-miscellaneous-tsm\u002F4.tsm02-j",{"title":3052,"path":3053,"stem":3054},"TSM03-J. Do not publish partially initialized objects","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fthread-safety-miscellaneous-tsm\u002Ftsm03-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F20.thread-safety-miscellaneous-tsm\u002F5.tsm03-j",{"title":3056,"path":3057,"stem":3058,"children":3059},"Visibility and Atomicity (VNA)","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fvisibility-and-atomicity-vna","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F21.visibility-and-atomicity-vna\u002F1.index",[3060,3061,3065,3069,3073,3077,3081],{"title":3056,"path":3057,"stem":3058},{"title":3062,"path":3063,"stem":3064},"VNA00-J. Ensure visibility when accessing shared primitive variables","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fvisibility-and-atomicity-vna\u002Fvna00-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F21.visibility-and-atomicity-vna\u002F2.vna00-j",{"title":3066,"path":3067,"stem":3068},"VNA01-J. Ensure visibility of shared references to immutable objects","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fvisibility-and-atomicity-vna\u002Fvna01-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F21.visibility-and-atomicity-vna\u002F3.vna01-j",{"title":3070,"path":3071,"stem":3072},"VNA02-J. Ensure that compound operations on shared variables are atomic","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fvisibility-and-atomicity-vna\u002Fvna02-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F21.visibility-and-atomicity-vna\u002F4.vna02-j",{"title":3074,"path":3075,"stem":3076},"VNA03-J. Do not assume that a group of calls to independently atomic methods is atomic","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fvisibility-and-atomicity-vna\u002Fvna03-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F21.visibility-and-atomicity-vna\u002F5.vna03-j",{"title":3078,"path":3079,"stem":3080},"VNA04-J. Ensure that calls to chained methods are atomic","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fvisibility-and-atomicity-vna\u002Fvna04-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F21.visibility-and-atomicity-vna\u002F6.vna04-j",{"title":3082,"path":3083,"stem":3084},"VNA05-J. Ensure atomicity when reading and writing 64-bit values","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fvisibility-and-atomicity-vna\u002Fvna05-j","6.sei-cert-oracle-coding-standard-for-java\u002F3.rules\u002F21.visibility-and-atomicity-vna\u002F7.vna05-j",{"title":3086,"path":3087,"stem":3088,"children":3089},"Recommendations","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F01.index",[3090,3091,3104,3122,3175,3200,3229,3250,3283,3316,3377,3402,3443],{"title":3086,"path":3087,"stem":3088},{"title":2269,"path":3092,"stem":3093,"children":3094},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fcharacters-and-strings-str","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F02.characters-and-strings-str\u002F1.index",[3095,3096,3100],{"title":2269,"path":3092,"stem":3093},{"title":3097,"path":3098,"stem":3099},"STR50-J. Use the appropriate method for counting characters in a string","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fcharacters-and-strings-str\u002Fstr50-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F02.characters-and-strings-str\u002F2.str50-j",{"title":3101,"path":3102,"stem":3103},"STR51-J. Use the charset encoder and decoder classes when more control over the encoding process is required","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fcharacters-and-strings-str\u002Fstr51-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F02.characters-and-strings-str\u002F3.str51-j",{"title":3105,"path":3106,"stem":3107,"children":3108},"Concurrency (CON)","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fconcurrency-con","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F03.concurrency-con\u002F1.index",[3109,3110,3114,3118],{"title":3105,"path":3106,"stem":3107},{"title":3111,"path":3112,"stem":3113},"CON50-J. Do not assume that declaring a reference volatile guarantees safe publication of the members of the referenced object","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fconcurrency-con\u002Fcon50-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F03.concurrency-con\u002F2.con50-j",{"title":3115,"path":3116,"stem":3117},"CON51-J. Do not assume that the sleep(), yield(), or getState() methods provide synchronization semantics","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fconcurrency-con\u002Fcon51-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F03.concurrency-con\u002F3.con51-j",{"title":3119,"path":3120,"stem":3121},"CON52-J. Document thread-safety and use annotations where applicable","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fconcurrency-con\u002Fcon52-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F03.concurrency-con\u002F4.con52-j",{"title":2295,"path":3123,"stem":3124,"children":3125},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fdeclarations-and-initialization-dcl","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F04.declarations-and-initialization-dcl\u002F01.index",[3126,3127,3131,3135,3139,3143,3147,3151,3155,3159,3163,3167,3171],{"title":2295,"path":3123,"stem":3124},{"title":3128,"path":3129,"stem":3130},"DCL50-J. Use visually distinct identifiers","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl50-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F04.declarations-and-initialization-dcl\u002F02.dcl50-j",{"title":3132,"path":3133,"stem":3134},"DCL51-J. Do not shadow or obscure identifiers in subscopes","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl51-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F04.declarations-and-initialization-dcl\u002F03.dcl51-j",{"title":3136,"path":3137,"stem":3138},"DCL52-J. Do not declare more than one variable per declaration","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl52-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F04.declarations-and-initialization-dcl\u002F04.dcl52-j",{"title":3140,"path":3141,"stem":3142},"DCL53-J. Minimize the scope of variables","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl53-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F04.declarations-and-initialization-dcl\u002F05.dcl53-j",{"title":3144,"path":3145,"stem":3146},"DCL54-J. Use meaningful symbolic constants to represent literal values in program logic","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl54-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F04.declarations-and-initialization-dcl\u002F06.dcl54-j",{"title":3148,"path":3149,"stem":3150},"DCL55-J. Properly encode relationships in constant definitions","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl55-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F04.declarations-and-initialization-dcl\u002F07.dcl55-j",{"title":3152,"path":3153,"stem":3154},"DCL56-J. Do not attach significance to the ordinal associated with an enum","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl56-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F04.declarations-and-initialization-dcl\u002F08.dcl56-j",{"title":3156,"path":3157,"stem":3158},"DCL57-J. Avoid ambiguous overloading of variable arity methods","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl57-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F04.declarations-and-initialization-dcl\u002F09.dcl57-j",{"title":3160,"path":3161,"stem":3162},"DCL58-J. Enable compile-time type checking of variable arity parameter types","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl58-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F04.declarations-and-initialization-dcl\u002F10.dcl58-j",{"title":3164,"path":3165,"stem":3166},"DCL59-J. Do not apply public final to constants whose value might change in later releases","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl59-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F04.declarations-and-initialization-dcl\u002F11.dcl59-j",{"title":3168,"path":3169,"stem":3170},"DCL60-J. Avoid cyclic dependencies between packages","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl60-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F04.declarations-and-initialization-dcl\u002F12.dcl60-j",{"title":3172,"path":3173,"stem":3174},"DCL61-J. Do not use raw types","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl61-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F04.declarations-and-initialization-dcl\u002F13.dcl61-j",{"title":2313,"path":3176,"stem":3177,"children":3178},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fexceptional-behavior-err","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F05.exceptional-behavior-err\u002F1.index",[3179,3180,3184,3188,3192,3196],{"title":2313,"path":3176,"stem":3177},{"title":3181,"path":3182,"stem":3183},"ERR50-J. Use exceptions only for exceptional conditions","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fexceptional-behavior-err\u002Ferr50-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F05.exceptional-behavior-err\u002F2.err50-j",{"title":3185,"path":3186,"stem":3187},"ERR51-J. Prefer user-defined exceptions over more general exception types","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fexceptional-behavior-err\u002Ferr51-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F05.exceptional-behavior-err\u002F3.err51-j",{"title":3189,"path":3190,"stem":3191},"ERR52-J. Avoid in-band error indicators","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fexceptional-behavior-err\u002Ferr52-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F05.exceptional-behavior-err\u002F4.err52-j",{"title":3193,"path":3194,"stem":3195},"ERR53-J. Try to gracefully recover from system errors","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fexceptional-behavior-err\u002Ferr53-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F05.exceptional-behavior-err\u002F5.err53-j",{"title":3197,"path":3198,"stem":3199},"ERR54-J. Use a try-with-resources statement to safely handle closeable resources","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fexceptional-behavior-err\u002Ferr54-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F05.exceptional-behavior-err\u002F6.err54-j",{"title":2357,"path":3201,"stem":3202,"children":3203},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fexpressions-exp","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F06.expressions-exp\u002F1.index",[3204,3205,3209,3213,3217,3221,3225],{"title":2357,"path":3201,"stem":3202},{"title":3206,"path":3207,"stem":3208},"EXP50-J. Do not confuse abstract object equality with reference equality","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fexpressions-exp\u002Fexp50-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F06.expressions-exp\u002F2.exp50-j",{"title":3210,"path":3211,"stem":3212},"EXP51-J. Do not perform assignments in conditional expressions","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fexpressions-exp\u002Fexp51-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F06.expressions-exp\u002F3.exp51-j",{"title":3214,"path":3215,"stem":3216},"EXP52-J. Use braces for the body of an if, for, or while statement","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fexpressions-exp\u002Fexp52-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F06.expressions-exp\u002F4.exp52-j",{"title":3218,"path":3219,"stem":3220},"EXP53-J. Use parentheses for precedence of operation","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fexpressions-exp\u002Fexp53-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F06.expressions-exp\u002F5.exp53-j",{"title":3222,"path":3223,"stem":3224},"EXP54-J. Understand the differences between bitwise and logical operators","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fexpressions-exp\u002Fexp54-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F06.expressions-exp\u002F6.exp54-j",{"title":3226,"path":3227,"stem":3228},"EXP55-J. Use the same type for the second and third operands in conditional expressions","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fexpressions-exp\u002Fexp55-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F06.expressions-exp\u002F7.exp55-j",{"title":2386,"path":3230,"stem":3231,"children":3232},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Finput-output-fio","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F07.input-output-fio\u002F1.index",[3233,3234,3238,3242,3246],{"title":2386,"path":3230,"stem":3231},{"title":3235,"path":3236,"stem":3237},"FIO50-J. Do not make assumptions about file creation","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Finput-output-fio\u002Ffio50-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F07.input-output-fio\u002F2.fio50-j",{"title":3239,"path":3240,"stem":3241},"FIO51-J. Identify files using multiple file attributes","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Finput-output-fio\u002Ffio51-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F07.input-output-fio\u002F3.fio51-j",{"title":3243,"path":3244,"stem":3245},"FIO52-J. Do not store unencrypted sensitive information on the client side","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Finput-output-fio\u002Ffio52-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F07.input-output-fio\u002F4.fio52-j",{"title":3247,"path":3248,"stem":3249},"FIO53-J. Use the serialization methods writeUnshared() and readUnshared() with care","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Finput-output-fio\u002Ffio53-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F07.input-output-fio\u002F5.fio53-j",{"title":2460,"path":3251,"stem":3252,"children":3253},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Finput-validation-and-data-sanitization-ids","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F08.input-validation-and-data-sanitization-ids\u002F1.index",[3254,3255,3259,3263,3267,3271,3275,3279],{"title":2460,"path":3251,"stem":3252},{"title":3256,"path":3257,"stem":3258},"IDS50-J. Use conservative file naming conventions","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Finput-validation-and-data-sanitization-ids\u002Fids50-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F08.input-validation-and-data-sanitization-ids\u002F2.ids50-j",{"title":3260,"path":3261,"stem":3262},"IDS51-J. Properly encode or escape output","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Finput-validation-and-data-sanitization-ids\u002Fids51-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F08.input-validation-and-data-sanitization-ids\u002F3.ids51-j",{"title":3264,"path":3265,"stem":3266},"IDS52-J. Prevent code injection","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Finput-validation-and-data-sanitization-ids\u002Fids52-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F08.input-validation-and-data-sanitization-ids\u002F4.ids52-j",{"title":3268,"path":3269,"stem":3270},"IDS53-J. Prevent XPath Injection","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Finput-validation-and-data-sanitization-ids\u002Fids53-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F08.input-validation-and-data-sanitization-ids\u002F5.ids53-j",{"title":3272,"path":3273,"stem":3274},"IDS54-J. Prevent LDAP injection","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Finput-validation-and-data-sanitization-ids\u002Fids54-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F08.input-validation-and-data-sanitization-ids\u002F6.ids54-j",{"title":3276,"path":3277,"stem":3278},"IDS55-J. Understand how escape characters are interpreted when strings are loaded","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Finput-validation-and-data-sanitization-ids\u002Fids55-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F08.input-validation-and-data-sanitization-ids\u002F7.ids55-j",{"title":3280,"path":3281,"stem":3282},"IDS56-J. Prevent arbitrary file upload","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Finput-validation-and-data-sanitization-ids\u002Fids56-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F08.input-validation-and-data-sanitization-ids\u002F8.ids56-j",{"title":2594,"path":3284,"stem":3285,"children":3286},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fmethods-met","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F09.methods-met\u002F1.index",[3287,3288,3292,3296,3300,3304,3308,3312],{"title":2594,"path":3284,"stem":3285},{"title":3289,"path":3290,"stem":3291},"MET50-J. Avoid ambiguous or confusing uses of overloading","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fmethods-met\u002Fmet50-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F09.methods-met\u002F2.met50-j",{"title":3293,"path":3294,"stem":3295},"MET51-J. Do not use overloaded methods to differentiate between runtime types","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fmethods-met\u002Fmet51-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F09.methods-met\u002F3.met51-j",{"title":3297,"path":3298,"stem":3299},"MET52-J. Do not use the clone() method to copy untrusted method parameters","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fmethods-met\u002Fmet52-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F09.methods-met\u002F4.met52-j",{"title":3301,"path":3302,"stem":3303},"MET53-J. Ensure that the clone() method calls super.clone()","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fmethods-met\u002Fmet53-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F09.methods-met\u002F5.met53-j",{"title":3305,"path":3306,"stem":3307},"MET54-J. Always provide feedback about the resulting value of a method","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fmethods-met\u002Fmet54-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F09.methods-met\u002F6.met54-j",{"title":3309,"path":3310,"stem":3311},"MET55-J. Return an empty array or collection instead of a null value for methods that return an array or collection","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fmethods-met\u002Fmet55-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F09.methods-met\u002F7.met55-j",{"title":3313,"path":3314,"stem":3315},"MET56-J. Do not use Object.equals() to compare cryptographic keys","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fmethods-met\u002Fmet56-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F09.methods-met\u002F8.met56-j",{"title":2656,"path":3317,"stem":3318,"children":3319},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fmiscellaneous-msc","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F10.miscellaneous-msc\u002F01.index",[3320,3321,3325,3329,3333,3337,3341,3345,3349,3353,3357,3361,3365,3369,3373],{"title":2656,"path":3317,"stem":3318},{"title":3322,"path":3323,"stem":3324},"MSC50-J. Minimize the scope of the @SuppressWarnings annotation","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc50-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F10.miscellaneous-msc\u002F02.msc50-j",{"title":3326,"path":3327,"stem":3328},"MSC51-J. Do not place a semicolon immediately following an if, for, or while condition","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc51-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F10.miscellaneous-msc\u002F03.msc51-j",{"title":3330,"path":3331,"stem":3332},"MSC52-J. Finish every set of statements associated with a case label with a break statement","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc52-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F10.miscellaneous-msc\u002F04.msc52-j",{"title":3334,"path":3335,"stem":3336},"MSC53-J. Carefully design interfaces before releasing them","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc53-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F10.miscellaneous-msc\u002F05.msc53-j",{"title":3338,"path":3339,"stem":3340},"MSC54-J. Avoid inadvertent wrapping of loop counters","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc54-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F10.miscellaneous-msc\u002F06.msc54-j",{"title":3342,"path":3343,"stem":3344},"MSC55-J. Use comments consistently and in a readable fashion","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc55-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F10.miscellaneous-msc\u002F07.msc55-j",{"title":3346,"path":3347,"stem":3348},"MSC56-J. Detect and remove superfluous code and values","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc56-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F10.miscellaneous-msc\u002F08.msc56-j",{"title":3350,"path":3351,"stem":3352},"MSC57-J. Strive for logical completeness","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc57-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F10.miscellaneous-msc\u002F09.msc57-j",{"title":3354,"path":3355,"stem":3356},"MSC58-J. Prefer using iterators over enumerations","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc58-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F10.miscellaneous-msc\u002F10.msc58-j",{"title":3358,"path":3359,"stem":3360},"MSC59-J. Limit the lifetime of sensitive data","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc59-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F10.miscellaneous-msc\u002F11.msc59-j",{"title":3362,"path":3363,"stem":3364},"MSC60-J. Do not use assertions to verify the absence of runtime errors","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc60-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F10.miscellaneous-msc\u002F12.msc60-j",{"title":3366,"path":3367,"stem":3368},"MSC61-J. Do not use insecure or weak cryptographic algorithms","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc61-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F10.miscellaneous-msc\u002F13.msc61-j",{"title":3370,"path":3371,"stem":3372},"MSC62-J. Store passwords using a hash function","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc62-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F10.miscellaneous-msc\u002F14.msc62-j",{"title":3374,"path":3375,"stem":3376},"MSC63-J. Ensure that SecureRandom is properly seeded","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc63-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F10.miscellaneous-msc\u002F15.msc63-j",{"title":2710,"path":3378,"stem":3379,"children":3380},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fnumeric-types-and-operations-num","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F11.numeric-types-and-operations-num\u002F1.index",[3381,3382,3386,3390,3394,3398],{"title":2710,"path":3378,"stem":3379},{"title":3383,"path":3384,"stem":3385},"NUM50-J. Convert integers to floating point for floating-point operations","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fnumeric-types-and-operations-num\u002Fnum50-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F11.numeric-types-and-operations-num\u002F2.num50-j",{"title":3387,"path":3388,"stem":3389},"NUM51-J. Do not assume that the remainder operator always returns a nonnegative result for integral operands","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fnumeric-types-and-operations-num\u002Fnum51-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F11.numeric-types-and-operations-num\u002F3.num51-j",{"title":3391,"path":3392,"stem":3393},"NUM52-J. Be aware of numeric promotion behavior","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fnumeric-types-and-operations-num\u002Fnum52-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F11.numeric-types-and-operations-num\u002F4.num52-j",{"title":3395,"path":3396,"stem":3397},"NUM53-J. Use the strictfp modifier for floating-point calculation consistency across platforms","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fnumeric-types-and-operations-num\u002Fnum53-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F11.numeric-types-and-operations-num\u002F5.num53-j",{"title":3399,"path":3400,"stem":3401},"NUM54-J. Do not use denormalized numbers","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fnumeric-types-and-operations-num\u002Fnum54-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F11.numeric-types-and-operations-num\u002F6.num54-j",{"title":2768,"path":3403,"stem":3404,"children":3405},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fobject-orientation-obj","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F12.object-orientation-obj\u002F01.index",[3406,3407,3411,3415,3419,3423,3427,3431,3435,3439],{"title":2768,"path":3403,"stem":3404},{"title":3408,"path":3409,"stem":3410},"OBJ50-J. Never confuse the immutability of a reference with that of the referenced object","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fobject-orientation-obj\u002Fobj50-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F12.object-orientation-obj\u002F02.obj50-j",{"title":3412,"path":3413,"stem":3414},"OBJ51-J. Minimize the accessibility of classes and their members","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fobject-orientation-obj\u002Fobj51-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F12.object-orientation-obj\u002F03.obj51-j",{"title":3416,"path":3417,"stem":3418},"OBJ52-J. Write garbage-collection-friendly code","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fobject-orientation-obj\u002Fobj52-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F12.object-orientation-obj\u002F04.obj52-j",{"title":3420,"path":3421,"stem":3422},"OBJ53-J. Do not use direct buffers for short-lived, infrequently used objects","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fobject-orientation-obj\u002Fobj53-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F12.object-orientation-obj\u002F05.obj53-j",{"title":3424,"path":3425,"stem":3426},"OBJ54-J. Do not attempt to help the garbage collector by setting local reference variables to null","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fobject-orientation-obj\u002Fobj54-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F12.object-orientation-obj\u002F06.obj54-j",{"title":3428,"path":3429,"stem":3430},"OBJ55-J. Remove short-lived objects from long-lived container objects","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fobject-orientation-obj\u002Fobj55-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F12.object-orientation-obj\u002F07.obj55-j",{"title":3432,"path":3433,"stem":3434},"OBJ56-J. Provide sensitive mutable classes with unmodifiable wrappers","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fobject-orientation-obj\u002Fobj56-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F12.object-orientation-obj\u002F08.obj56-j",{"title":3436,"path":3437,"stem":3438},"OBJ57-J. Do not rely on methods that can be overridden by untrusted code","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fobject-orientation-obj\u002Fobj57-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F12.object-orientation-obj\u002F09.obj57-j",{"title":3440,"path":3441,"stem":3442},"OBJ58-J. Limit the extensibility of classes and methods with invariants","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fobject-orientation-obj\u002Fobj58-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F12.object-orientation-obj\u002F10.obj58-j",{"title":2830,"path":3444,"stem":3445,"children":3446},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fplatform-security-sec","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F13.platform-security-sec\u002F01.index",[3447,3448,3452,3456,3460,3464,3468,3472,3476,3480],{"title":2830,"path":3444,"stem":3445},{"title":3449,"path":3450,"stem":3451},"SEC50-J. Avoid granting excess privileges","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fplatform-security-sec\u002Fsec50-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F13.platform-security-sec\u002F02.sec50-j",{"title":3453,"path":3454,"stem":3455},"SEC51-J. Minimize privileged code","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fplatform-security-sec\u002Fsec51-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F13.platform-security-sec\u002F03.sec51-j",{"title":3457,"path":3458,"stem":3459},"SEC52-J. Do not expose methods that use reduced-security checks to untrusted code","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fplatform-security-sec\u002Fsec52-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F13.platform-security-sec\u002F04.sec52-j",{"title":3461,"path":3462,"stem":3463},"SEC53-J. Define custom security permissions for fine-grained security","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fplatform-security-sec\u002Fsec53-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F13.platform-security-sec\u002F05.sec53-j",{"title":3465,"path":3466,"stem":3467},"SEC54-J. Create a secure sandbox using a security manager","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fplatform-security-sec\u002Fsec54-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F13.platform-security-sec\u002F06.sec54-j",{"title":3469,"path":3470,"stem":3471},"SEC55-J. Ensure that security-sensitive methods are called with validated arguments","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fplatform-security-sec\u002Fsec55-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F13.platform-security-sec\u002F07.sec55-j",{"title":3473,"path":3474,"stem":3475},"SEC56-J. Do not serialize direct handles to system resources","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fplatform-security-sec\u002Fsec56-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F13.platform-security-sec\u002F08.sec56-j",{"title":3477,"path":3478,"stem":3479},"SEC57-J. Do not let untrusted code misuse privileges of callback methods","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fplatform-security-sec\u002Fsec57-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F13.platform-security-sec\u002F09.sec57-j",{"title":3481,"path":3482,"stem":3483},"SEC58-J. Deserialization methods should not perform potentially dangerous operations","\u002Fsei-cert-oracle-coding-standard-for-java\u002Frecommendations\u002Fplatform-security-sec\u002Fsec58-j","6.sei-cert-oracle-coding-standard-for-java\u002F4.recommendations\u002F13.platform-security-sec\u002F10.sec58-j",{"title":3485,"path":3486,"stem":3487,"children":3488},"Back Matter","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter","6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F1.index",[3489,3490,3494,3498,3502,3506,3611,3636],{"title":3485,"path":3486,"stem":3487},{"title":3491,"path":3492,"stem":3493},"Rec. AA. References","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frec-aa-references","6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F2.rec-aa-references",{"title":3495,"path":3496,"stem":3497},"Rec. BB. Definitions","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frec-bb-definitions","6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F3.rec-bb-definitions",{"title":3499,"path":3500,"stem":3501},"Rule AA. References","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-aa-references","6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F4.rule-aa-references",{"title":3503,"path":3504,"stem":3505},"Rule BB. Glossary","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-bb-glossary","6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F5.rule-bb-glossary",{"title":3507,"path":3508,"stem":3509,"children":3510},"Rule or Rec. CC. Analyzers","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-cc-analyzers","6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F6.rule-or-rec-cc-analyzers\u002F01.index",[3511,3512,3514,3518,3520,3524,3528,3532,3536,3540,3542,3546,3548,3552,3554,3558,3561,3565,3569,3573,3575,3579,3581,3585,3587,3591,3593,3597,3599,3603,3607],{"title":3507,"path":3508,"stem":3509},{"title":1258,"path":1257,"stem":3513},"6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F6.rule-or-rec-cc-analyzers\u002F02.codesonar",{"title":3515,"path":3516,"stem":3517},"CodeSonar_V","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-cc-analyzers\u002Fcodesonar_v","6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F6.rule-or-rec-cc-analyzers\u002F03.codesonar_v",{"title":1367,"path":1366,"stem":3519},"6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F6.rule-or-rec-cc-analyzers\u002F04.coverity",{"title":3521,"path":3522,"stem":3523},"Coverity_V","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-cc-analyzers\u002Fcoverity_v","6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F6.rule-or-rec-cc-analyzers\u002F05.coverity_v",{"title":3525,"path":3526,"stem":3527},"Eclipse","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-cc-analyzers\u002Feclipse","6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F6.rule-or-rec-cc-analyzers\u002F06.eclipse",{"title":3529,"path":3530,"stem":3531},"Eclipse_V","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-cc-analyzers\u002Feclipse_v","6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F6.rule-or-rec-cc-analyzers\u002F07.eclipse_v",{"title":3533,"path":3534,"stem":3535},"Error Prone","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-cc-analyzers\u002Ferror-prone","6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F6.rule-or-rec-cc-analyzers\u002F08.error-prone",{"title":3537,"path":3538,"stem":3539},"Error Prone_V","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-cc-analyzers\u002Ferror-prone_v","6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F6.rule-or-rec-cc-analyzers\u002F09.error-prone_v",{"title":1539,"path":1538,"stem":3541},"6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F6.rule-or-rec-cc-analyzers\u002F10.findbugs",{"title":3543,"path":3544,"stem":3545},"Findbugs_V","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-cc-analyzers\u002Ffindbugs_v","6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F6.rule-or-rec-cc-analyzers\u002F11.findbugs_v",{"title":1509,"path":1508,"stem":3547},"6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F6.rule-or-rec-cc-analyzers\u002F12.fortify",{"title":3549,"path":3550,"stem":3551},"Fortify_V","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-cc-analyzers\u002Ffortify_v","6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F6.rule-or-rec-cc-analyzers\u002F13.fortify_v",{"title":1569,"path":1568,"stem":3553},"6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F6.rule-or-rec-cc-analyzers\u002F14.klocwork",{"title":3555,"path":3556,"stem":3557},"Klocwork_V","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-cc-analyzers\u002Fklocwork_v","6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F6.rule-or-rec-cc-analyzers\u002F15.klocwork_v",{"title":3559,"path":1609,"stem":3560},"Parasoft","6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F6.rule-or-rec-cc-analyzers\u002F16.parasoft",{"title":3562,"path":3563,"stem":3564},"Parasoft_V","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-cc-analyzers\u002Fparasoft_v","6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F6.rule-or-rec-cc-analyzers\u002F17.parasoft_v",{"title":3566,"path":3567,"stem":3568},"Pmd","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-cc-analyzers\u002Fpmd","6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F6.rule-or-rec-cc-analyzers\u002F18.pmd",{"title":3570,"path":3571,"stem":3572},"Pmd_V","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-cc-analyzers\u002Fpmd_v","6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F6.rule-or-rec-cc-analyzers\u002F19.pmd_v",{"title":1638,"path":1637,"stem":3574},"6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F6.rule-or-rec-cc-analyzers\u002F20.pvs-studio",{"title":3576,"path":3577,"stem":3578},"PVS-Studio_V","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-cc-analyzers\u002Fpvs-studio_v","6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F6.rule-or-rec-cc-analyzers\u002F21.pvs-studio_v",{"title":1676,"path":1675,"stem":3580},"6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F6.rule-or-rec-cc-analyzers\u002F22.security-reviewer-static-reviewer",{"title":3582,"path":3583,"stem":3584},"Security Reviewer - Static Reviewer_V","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-cc-analyzers\u002Fsecurity-reviewer-static-reviewer_v","6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F6.rule-or-rec-cc-analyzers\u002F23.security-reviewer-static-reviewer_v",{"title":1701,"path":1700,"stem":3586},"6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F6.rule-or-rec-cc-analyzers\u002F24.sonarqube",{"title":3588,"path":3589,"stem":3590},"SonarQube_V","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-cc-analyzers\u002Fsonarqube_v","6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F6.rule-or-rec-cc-analyzers\u002F25.sonarqube_v",{"title":1776,"path":1775,"stem":3592},"6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F6.rule-or-rec-cc-analyzers\u002F26.spotbugs",{"title":3594,"path":3595,"stem":3596},"SpotBugs_V","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-cc-analyzers\u002Fspotbugs_v","6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F6.rule-or-rec-cc-analyzers\u002F27.spotbugs_v",{"title":1207,"path":1206,"stem":3598},"6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F6.rule-or-rec-cc-analyzers\u002F28.the-checker-framework",{"title":3600,"path":3601,"stem":3602},"The Checker Framework_V","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-cc-analyzers\u002Fthe-checker-framework_v","6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F6.rule-or-rec-cc-analyzers\u002F29.the-checker-framework_v",{"title":3604,"path":3605,"stem":3606},"ThreadSafe","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-cc-analyzers\u002Fthreadsafe","6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F6.rule-or-rec-cc-analyzers\u002F30.threadsafe",{"title":3608,"path":3609,"stem":3610},"ThreadSafe_V","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-cc-analyzers\u002Fthreadsafe_v","6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F6.rule-or-rec-cc-analyzers\u002F31.threadsafe_v",{"title":3612,"path":3613,"stem":3614,"children":3615},"Rule or Rec. DD. Related Guidelines","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-dd-related-guidelines","6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F7.rule-or-rec-dd-related-guidelines\u002F1.index",[3616,3617,3621,3625,3629,3632],{"title":3612,"path":3613,"stem":3614},{"title":3618,"path":3619,"stem":3620},"2010","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-dd-related-guidelines\u002F2.2010","6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F7.rule-or-rec-dd-related-guidelines\u002F2.2010",{"title":3622,"path":3623,"stem":3624},"2013","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-dd-related-guidelines\u002F3.2013","6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F7.rule-or-rec-dd-related-guidelines\u002F3.2013",{"title":3626,"path":3627,"stem":3628},"MITRE CAPEC","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-dd-related-guidelines\u002Fmitre-capec","6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F7.rule-or-rec-dd-related-guidelines\u002F4.mitre-capec",{"title":1896,"path":3630,"stem":3631},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-dd-related-guidelines\u002Fmitre-cwe","6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F7.rule-or-rec-dd-related-guidelines\u002F5.mitre-cwe",{"title":3633,"path":3634,"stem":3635},"SECURE CODING GUIDELINES FOR JAVA SE, VERSION 5.0","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-dd-related-guidelines\u002Fsecure-coding-guidelines-for-java-se-version-50","6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F7.rule-or-rec-dd-related-guidelines\u002F6.secure-coding-guidelines-for-java-se-version-50",{"title":3637,"path":3638,"stem":3639},"Rule or Rec. EE. Risk Assessments","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fback-matter\u002Frule-or-rec-ee-risk-assessments","6.sei-cert-oracle-coding-standard-for-java\u002F5.back-matter\u002F8.rule-or-rec-ee-risk-assessments",{"title":3641,"path":3642,"stem":3643,"children":3644},"Admin","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fadmin","6.sei-cert-oracle-coding-standard-for-java\u002F6.admin\u002F1.index",[3645,3646,3650,3654,3658,3662],{"title":3641,"path":3642,"stem":3643},{"title":3647,"path":3648,"stem":3649},"All Guidelines with Classification","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fadmin\u002Fall-guidelines-with-classification","6.sei-cert-oracle-coding-standard-for-java\u002F6.admin\u002F2.all-guidelines-with-classification",{"title":3651,"path":3652,"stem":3653},"Normative Guidelines","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fadmin\u002Fnormative-guidelines","6.sei-cert-oracle-coding-standard-for-java\u002F6.admin\u002F3.normative-guidelines",{"title":3655,"path":3656,"stem":3657},"Tech-edit","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fadmin\u002Ftech-edit","6.sei-cert-oracle-coding-standard-for-java\u002F6.admin\u002F4.tech-edit",{"title":3659,"path":3660,"stem":3661},"TODO List","\u002Fsei-cert-oracle-coding-standard-for-java\u002Fadmin\u002Ftodo-list","6.sei-cert-oracle-coding-standard-for-java\u002F6.admin\u002F5.todo-list",{"title":3659,"path":3660,"stem":3663},"6.sei-cert-oracle-coding-standard-for-java\u002F6.admin\u002F6.todo-list",1775657812942]