-
Werkzeuge zur Erhaltung der Softwarearchitektur – CleanUp / ArchUnit – Teil 16
CleanUp / ArchUnit Nach einer kurzen Pause hier noch zwei weitere Werkzeuge, die einiges leisten. CleanUp In Eclipse findet sich unter „Einstellungen / Java / Code Style / Clean up“ einiges an Einstellungen, die einem das Leben erleichtern. Mit der CleanUp Funktion können z.B. fehlende „this.“ ergänzt oder @Overrides automatisch erzeugt werden. Somit hilft diese…
-
Spooky Exceptions (11) – … javax.ejb.EJBException: WFLYEJB0442: Unexpected Error
Umgebung Situation Bei dem Aufruf einer JPA Query wird folgende Exception geworfen … javax.ejb.EJBException: WFLYEJB0442: Unexpected Error … Caused by: java.lang.StackOverflowError at org.eclipse.persistence.jpa.jpql.parser.AbstractExpression.getRoot(AbstractExpression.java:530) at org.eclipse.persistence.jpa.jpql.parser.AbstractExpression.getRoot(AbstractExpression.java:530) at org.eclipse.persistence.jpa.jpql.parser.AbstractExpression.getRoot(AbstractExpression.java:530) … Lösung Ursache dieser Exception ist eine lange Kette von WHERE Bedingungen (ca 2250) in einer JPQL Abfrage, die über Parameter befüllt werden. Es scheint hier Grenzen in…
-
Spooky Exceptions (10) – An exception occurred while creating a query in EntityManager
Umgebung Situation Bei dem Aufruf einer JPA Query kommt eine Exception 2018-06-22 12:45:43,615 ERROR [org.jboss.as.ejb3.invocation] (default task-1) WFLYEJB0034: EJB Invocation failed on component DataPrivacyStatementAcceptanceFacade for method public abstract de.schoeso.festival.ejb.mde.DataPrivacyStatementAcceptanceList de.schoeso.festival.ejb.mde.facade.DataPrivacyStatementAcceptanceFacadeLocal.findByVariousParameters(): javax.ejb.EJBException: java.lang.IllegalArgumentException: An exception occurred while creating a query in EntityManager: Exception Description: Problem compiling [SELECT x FROM DataPrivacyStatementAcceptance x]. [14, 44] The abstract schema…
-
Spooky (missing) Exceptions (9) – Objekt wird vom (Eclipse) JPA Provider nicht in die Datenbank geschrieben
Umgebung Situation Ein Subobjekt einer Entität (OneToOne), das über cascade = CascadeType.ALL angebunden ist, wird bei merge nicht persistiert. Analyse In diesem Fall wurde das Objekt nicht im Oberobjekt instanziiert @OneToOne(cascade = CascadeType.ALL, mappedBy = „repairWarranty“, fetch = FetchType.EAGER) private StateChange stateChange = null; Wenn ein abhägiges Objekt erst in einer Livecycle Methode @PostPersist instanziiert…
-
Spooky Exceptions (8) – Exception Description: Entity class [class … ] has no primary key specified. It should define either an @Id, @EmbeddedId or an @IdClass
Umgebung Situation Bei der Prüfung der persistence.xml beim Hochfahren des Servers wird folgende Exception geworfen: Internal Exception: Exception [EclipseLink-7161] (Eclipse Persistence Services – 2.6.4.v20160829-44060b6): org.eclipse.persistence.exceptions.ValidationException Exception Description: Entity class [class …] has no primary key specified. It should define either an @Id, @EmbeddedId or an @IdClass. If you have defined PK using any of these…
-
Java Fat Clients – Java FX und Swing – Status
In diesem Blog nur ein kurzer Hinweis zu Fat Clients in Java. Oracle wird JavaFX laut Java Client Roadmap Update 2018 ab Java SE 11 nicht mehr mit ausliefern. Somit wird aus JavaFX ein losgelöstes Community Projekt. Man darf gespannt sein, wie sich das weiter auf die Nutzung auswirkt und ob die aktuelle „Gemeinde“ groß…
-
Werkzeuge zur Erhaltung der Softwarearchitektur – weitere Tools – Teil 15
Weitere Tools In diesem Blog folgt zum Abschluss der Serie eine Auflistung von Werkzeugen / Frameworks, die ebenfalls einen Bezug zum Thema Architekturerhaltung haben. OWASP (Sicherheit) ZAProxy (Pen-Test) Lizenzkostenpflichtig
-
Werkzeuge zur Erhaltung der Softwarearchitektur – Tools und Plugins – Teil 14
Tools und Plugins In diesem Posts fasse ich die verschiedenen Werkzeuge, die in den letzten Posts angesprochen wurden, zusammen. Sie bieten eine sehr gute Basis um auf Basis von OpenSource professionelle Prüfungen für die Architekturerhaltung durchzuführen. Es ergibt sich ein bunter Strauß an Werkzeugen mit einer noch größeren Anzahl an Plugins. Eine sinnvolle Nutzung macht…
-
Werkzeuge zur Erhaltung der Softwarearchitektur – jQAssistant – Teil 13
jQAssistant In den bisherigen Posts haben ich euch Werkzeuge mit feste Prüfregeln vorgestellt. Mit den nun folgenden sehr interessanten Werkzeug wird die Codestruktur in einer Datenbank abgelegt und auf dieser über eine Abfragesprache Analysen definiert. Beispiel für solche ABfragen sind: jQAssistant Die Software jQAssistant übernimmt die Struktur des compilierten Codes in die Graphdatenbank Neo4j. In…
-
Werkzeuge zur Erhaltung der Softwarearchitektur – SonarQube – Teil 12
SonarQube Bei SonarQube handelt es sich um ein Serverprodukt, das eine sehr gute Übersicht für den manuellen Prozess bietet. Auch wird der zeitliche Verlauf von Regelverletzungen in einer Datenbank gespeichert, so dass die Historie gut zu verfolgen ist. Sonar benötigt mindestens einen eigenen Server, der über Plugins erweitert wird und die Daten in einem DBMS…