Search
Calendar
April 2024
S M T W T F S
« Sep    
 123456
78910111213
14151617181920
21222324252627
282930  
Your widget title
Archives

Posts Tagged ‘Cannot invoke clone() on the array type’

PostHeaderIcon 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”. 😐