Articles avec le tag ‘The user-supplied array … is stored directly’
GWT / Sonar / Cannot invoke clone() on the array type… / The user-supplied array … is stored directly
I have to fix all critical « Violations » owing to Sonar.
Let’s consider a basic block:
public void setSushis(float[] sushis) {
this.sushis = sushis;
}
This piece of code raises this error in Sonar:
Security - Array is stored directly : The user-supplied array 'sushis' is stored directly.
In a naive step, I modified the code as this:
public void setSushis(float[] sushis) {
this.sushis = sushis.clone();
}
This may have been OK… but, now, I get the following error within GWT compilation:
Cannot invoke clone() on the array type float[]
To fix the issue, I amended the code as follows:
public void setSushis(float[] theSushis) {
this.sushis= new float[theSushis.length];
System.arraycopy(theSushis, 0, this.sushis, 0, theSushis.length);
}
Disclaimer: even though I followed Sonar’s advice and requirements, I am a little skeptic about this kind of « violation ».