EJB-TX-Annotationen an privaten Methoden

Mit erstaunlicher Hartnäckigkeit hält sich ein Phänomen in JavaEE Anwendungen: @TransactionAttribute an privaten Methoden. So nutzlos wie irreführend, dokumentiert es die Unkenntnis des Entwicklers über die Mechanismen eines EJB-Containers:

@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
private void doSomething() {
  // start a new transaction
  ...
}

Diese Code ist überaus suggestiv und wird gerne in Code-Reviews übersehen. Eine neue Container-Transaktion wird dennoch nicht gestartet. Hierfür müsste der Container einen Interzeptor um den Aufruf von “doSomething()” wickeln. Das wäre einerseits eine große technische Herausforderung und ist andererseits in keiner Weise durch die EJB-Spezifikation gedeckt. weiterlesen

FindBugs: May expose internal representation by returning reference to mutable object

Wer seine Code-Qualität mit FindBugs überwacht, stößt früher oder später auf folgende Verletzung: “Method-X may expose internal representation by storing/returning an externally mutable object into Field-Y”. In den meisten Fällen handelt es sich dabei um das Abfragen und Speichern von java.util.Date Werten.

Erfahrene Java-Entwickler wissen, dass Date-Objekte nachträglich veränderbar (mutable) sind:

Date now = new Date();
now.setTime(1414141414141L);
System.out.println(now);

Dies könnte für Manipulationen ausgenutzt werden:
weiterlesen

Graph-basierte Software-Analyse mit jQAssistant

Artikel als PDF herunterladen:
Download Graph-basierte Software-Analyse mit jQAssistant

Qualitätssicherung in der Software-Entwicklung ist seit Jahren ein Thema, mit dem es problemlos möglich ist, Zeitschriften, Bücher und Konferenzen inhaltlich zu füllen. Die Ansatzpunkte sind äußerst vielfältig – sie reichen von der Prozessorganisation über Teststrategien, technische Infrastrukturen bis hin zu vermeintlich trivialen Dingen wie der Formatierung des Quellcodes. In diesem Artikel möchte ich einen Aspekt beleuchten, der sich auf der Ebene statischer Code-Analysen abspielt: die Festlegung und Überwachung projektspezifischer Architektur- und Design-Regeln.

 

Verfallene Strukturen

Verfallene Strukturen

weiterlesen

Nachtrag zur Buchrezension:
Managing Software Debt

Cover: Managing Software Debt

Chris Sterling
Managing Software Debt
Building for Inevitable Change

Addison-Wesley
288 Seiten
€ 35,05
ISBN 978-0-3215-5413-0

Die Buchbesprechung wurde in der aktuellen Ausgabe des OBJEKTspektrum 05/2011 veröffentlicht und kann unter folgendem Link als PDF heruntergeladen werden:
Download Erschienen im OBJEKTspektrum, Ausgabe 05/2011

Buchrezension: Managing Software Debt

Cover: Managing Software Debt

Chris Sterling
Managing Software Debt
Building for Inevitable Change

Addison-Wesley
288 Seiten
€ 35,05
ISBN 978-0-3215-5413-0

Wer kennt das nicht: Man arbeitet in einem Software-Projekt und selbst die Implementierung einfachster Anforderungen ist unendlich mühsam. Unentwegt beschleicht einen das Gefühl, dass die Zeit gekommen ist, für all die “Hacks” und “Quick Fixes” seiner Kollegen zu bezahlen.

weiterlesen

 1 2 Vor