Seltsames Hibernate/Oracle-Verhalten bei @SequenceGenerator

Situation: Ich habe eine Menge von Entitäten (Oracle-Schema), die mittels der Klassen-Annotation @SequenceGenerator und dann entsprechend der Attribut-Annotation @GeneratedValue eine Sequenz zugeordnet werden.

Problem: Obwohl sich durch die Log zweifelsfrei zeigen lässt, dass Hibernate die Sequenz abfragt und auch den nächsten Wert enthält, ignoriert Hibernate dies beim eigentlichen Einfügen des neuen Tupels. Stattdessen wird wahlweise irgendeine Integerzahl wie 250, 500 oder auch gerne mal 1412 kollisionsfrei verwendet. Auch den eingebauten ID-Generator mit Zahlen jenseits von 99999 wird gerne verwendet, was dann zu netten „Hey, dass passt doch gar nicht in das Feld rein!“-Fehlern führt.

Erst folgende, zusätzliche Einstellung als Eigenschaft für @SequenceGenerator scheint Hibernate dazu zu bewegen, doch die Sequence zu verwenden: allocationSize 1. (impliziert so gesehen die Sequenz).

@SequenceGenerator(name = „LOCAL_GENERATOR“, sequenceName = „SEQ_NAME“, allocationSize = 1)

Dürfte ein Bug sein.

Pwn2own 2010

Und wieder mal ein Paradebeispiel, wie viele Leute weder richtig Lesen und Verstehen können. Der aktuell laufende Hackerwettbewerb präsentierte heute in allen IT-News, das eine Reihe von Produkten gehackt wurden: darunter auch bekannte heiße Kandidaten wie iPhone, Safari und IE8.

Aus dieser Information erschließt der Schnell-und-ohne-Kompetenz-Leser mal wieder, dass etwa das iPhone also total „löchrig“ sei. Und der Safari natürlich auch. Und der IE8. Gut, das mit dem IE8 wissen wir schon.. 🙂 – Scherz beseite. Tatsächlich steht etwa bei Golem im Nebensatz weiter, dass sie „…ihren Angaben haben sie rund zwei Wochen daran gearbeitet, das Sicherheitsloch zu finden und auszunutzen“. 2 Wochen! Wer 2 Wochen lang eine Schnittstelle bombardiert, muss zur Belohnung was finden.

Und im Endeffekt ist der Wettbewerb nur das, was er ist: Ein Wettbewerb der gefundenen Exploits, mit Preisgeld. Es sagt weder etwas über die Auswahl des Produktes (Linux, Windows, iPhone oder weiß der Geier) aus, noch die verwendete Zeit (2 Wochen? 1 Woche? 1 Tag? 1 Stunde?), oder gar den Misserfolg bei anderen Produkten. Es geht doch nicht darum, wie schnell der Exploit gefunden wurde oder wo keiner gefunden wurde – denn dafür gibt es auch kein Geld. Vielleicht wurde 2 Monate ein Outlook-Exploit gesucht – und nicht gefunden.

Okay, das ist wohl dann doch sehr unwahrscheinlich 🙂

Patente – Zwang durch die Hintertür

Gestern hat Apple den in letzter Zeit häufige Methode umgedreht und selber eine Klage eingereicht – gegen HTC, gegen den derzeitigen Hauptkonkurrenten in Sachen technischer Geräte/Smartphones. Und entgegen Heises aktuellen Stand ist sehr wohl bekannt, um welche Patente es sich genau handelt – inkl. der ersten, unbestätigten Deutungen/Beispiele.

Bleibt eigentlich zu dem Patentblödsinn nur zu sagen:

  • Dem Unternehmen Apple bleibt wie allen anderen nichts anderes übrig, als weiter Patente zu registrieren. Würden Sie es nicht machen, schnappt sich ein anderes Unternehmen das Patent und man wird selber verklagt.
  • Die Unternehmen müssen ihre Patente verteidigen und einsetzen, ansonsten wäre das Patent ja irrelevant.

Eins muss man aber schon sagen: Es ist wirklich bemerkenswert, wie die anderen Hersteller – HTC ganz vorne – seit 2007 ihre Produktlinien verändert haben. Natürlich ganz uninspiriert von der Konkurrenz!!!11 Die liebe „Apple-Konkurrenz“ sollte lieber mal ihre Hausaufgaben machen und überlegen, warum sie die doch so alten und nicht wirklich neuen Techniken nicht selber derartig revolutionär entwickelt haben. Abgesehen von der Touch-Steuerung gab es fast alles vorher, wenn auch nicht im Mobil-Computer-Bereich.

Und zum Schluss: Wer als Konkurrent versucht, das iPhone-Dilemma nur mit einer technisch überlegenen Kopie zu entgegnen, der hat immer noch nicht verstanden, wie der Erfolg zustande kam. Technik ist nicht alles. Wen interessieren heute noch Ghz im Prozessor?