Hallo FabianD,
habe das mal mit einen ganz einfachen Beispiel ausprobiert. Meine Entität hat als einziges Feld das String Feld ’nam‘ und die Regel lautet:
public void rule(RuleInterface server) throws NuclosBusinessRuleException {
final MasterDataVO ent = server.getMasterData();
String nam = ent.getField("nam", String.class);
if (nam == null) {
throw new NullPointerException();
}
nam = nam.trim();
if ("".equals(nam)) {
throw new NullPointerException();
}
if (!nam.startsWith("n")) {
throw new NuclosBusinessRuleException("nam must start with 'n': " + nam);
}
}
Sowohl wenn die NullPointerException als auch wenn die NuclosBusinessRuleException geworfen wird, landen die Daten bei mir nicht in der Datenbank.
Allerdings habe ich die Sache bei uns oben im Entwicklungszweig getestet. Nicht ganz unmöglich ist es daher, dass es in der Beta (noch) nicht funktiert…
Gruß
Thomas
PS:
Die Art wie du das Datum parsed, halte ich für nicht optimal. Wenn das Feld in Nuclos vom ‚richtigen‘ Typ ist, kommt auch in der Regel eine java.util.Date an. Und die vergleichst du am besten mit Calendar before bzw. after…
PPS:
Ich denke nicht, das hier ein Transaktionsproblem vorliegt.