Examples of errors detected by the V6052 diagnostic
V6052. Calling an overridden method in parent-class constructor may lead to use of uninitialized data.
DBeaver
V6052 Calling overridden 'isBinaryContents' method in 'TextWithOpen' parent-class constructor may lead to use of uninitialized data. Inspect field: binary. TextWithOpenFile.java(77), TextWithOpen.java(59)
public class TextWithOpen extends Composite {
public TextWithOpen(
Composite parent,
boolean multiFS,
boolean secured
) {
super(parent, SWT.NONE);
....
if (!useTextEditor && !isBinaryContents()) { // <=
....
editItem.setEnabled(false);
}
....
}
protected boolean isBinaryContents() {
return false;
}
}
public class TextWithOpenFile extends TextWithOpen {
private final boolean binary;
....
public TextWithOpenFile(
Composite parent,
String title,
String[] filterExt,
int style,
boolean binary,
boolean multiFS,
boolean secured
) {
super(parent, multiFS, secured); // <=
this.title = title;
this.filterExt = filterExt;
this.style = style;
this.binary = binary; // <=
}
@Override
protected boolean isBinaryContents() {
return binary;
}
....
}
isBinaryContents() called in the parent constructor before this.binary initialized in the TextWithOpenFile constructor. Therefore, isBinaryContents always returns false, because this is the default value of boolean.