2015-09-18 4 views
5

Es könnte wie doppelte Frage aussehen, aber ich habe den Codeprobe vorgeschlagen von Sonar Regel Compliant eins vorgeschlagen. Wenn der unten hervorgehobene Code mit SonarQube ausgewertet wird, führt dies zu einem Verstoß gegen die Squid: S1948-Regel.SonarQube - Regel Felder in einer "Serializable" -Klasse sollten entweder transient oder serialisierbar sein.

enter image description here

Ergebnis,

enter image description here

Noch ist es ein Geheimnis, warum seine Darstellung Verletzung für konformen Code, PLZ zu klären.

UPDATE

vorübergehende oder serializable Problem nicht einmal mit sonar.java.binaries

Sonar Scan behoben Erfolg ist aber warnen wirft loader Klasse:

08:26:44.984 INFO - Java bytecode scan... 08:26:44.992 WARN - Class 'dummyserial/Address' is not accessible through the C lassLoader. 08:26:44.993 WARN - Class 'dummyserial/Person' is not accessible through the Cl assLoader. 08:26:44.993 WARN - Class 'dummyserial/Address' is not accessible through the C lassLoader. 08:26:44.994 WARN - Class 'dummyserial/Person' is not accessible through the Cl assLoader. 08:26:44.994 WARN - Class 'dummyserial/Address' is not accessible through the C lassLoader. 08:26:44.997 WARN - Class 'dummyserial/Person' is not accessible through the Cl assLoader. 08:26:44.998 INFO - Java bytecode scan done: 14 ms

+0

Und wie sieht die Address-Klasse aus? – fge

+0

Wie haben Sie die Address-Klasse definiert? Und haben Sie der Analyse einen Bytecode zur Verfügung gestellt? (Wird Ihre Analyse mit maven oder sonar runner ausgeführt? und wenn letzterer, haben Sie die .class-Datei mit 'sonar.java.binaries' bereitgestellt?) – benzonico

+0

@benzonico, ich habe sowohl Person als auch Adresse als separate Java-Datei, gescannt durch Sonar Runner mit sonar.sources = src. – Jeevanantham

Antwort

5

Wie bereits reagiert, sollten Sie füllen die sonar.java.binaries Eigenschaft, um Bytecode-Analyse und Symbolauflösung zu ermöglichen. Wenn diese Eigenschaft erfüllt ist, würde die Analyse in diesem Fall kein Problem aufwerfen.

Nun ist es tatsächlich ärgerlich, dass wir ein Problem melden, wenn wir den Symboltyp eines Feldes nicht auflösen können. Ich habe das folgende Ticket erstellt, um das Problem zu behandeln: SONARJAVA-1266

+0

werde versuchen mit Ihrem Vorschlag für jetzt und aktualisieren Sie meinen Status, hoffe Sonar Team wird dies in der kommenden Version, thanks/ – Jeevanantham

+0

habe versucht mit 'sonar.java.binaries' aber noch kein glück, aktualisiere die fraglichen details unter update header – Jeevanantham

Verwandte Themen