JavaWebStack / JavaWebStack/orm

Show better error message when Model class isn't abstract

Offen
#56 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug
Vorherrschende Sprache
Java
Sterne
7
Forks
1
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

Describe the Bug
When you extend the ORM Model to your own Model and forget to set it to abstract, you get an Exception saying

Exception in thread "main" java.lang.NullPointerException: Cannot invoke "java.lang.reflect.Field.getType()" because the return value of "org.javawebstack.orm.TableInfo.getField(String)" is null
	at org.javawebstack.orm.TableInfo.getIdType(TableInfo.java:282)
	at org.javawebstack.orm.TableInfo.analyzeTable(TableInfo.java:95)
	at org.javawebstack.orm.TableInfo.constructInfo(TableInfo.java:61)
	at org.javawebstack.orm.TableInfo.<init>(TableInfo.java:56)
	at org.javawebstack.orm.Repo.<init>(Repo.java:35)
	at org.javawebstack.orm.ORM.register(ORM.java:25)
	at org.javawebstack.orm.ORM.register(ORM.java:37)

To Reproduce
Steps to reproduce the behavior:

  1. Forget to set your model class to abstract

Expected behavior
Maybe show some better error message which indicates that your base model isn't abstract yet.

Environment Information:

  • Java Language Level 21
  • ORM Version 1.0.3-SNAPSHOT

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Reproduziere den Fehler, indem du ein nicht-abstraktes Modell registrierst, und beginne bei ORM.register, um dem Stack bis in Repo.java und TableInfo.java zu folgen, insbesondere durch constructInfo, analyzeTable und getIdType an den gemeldeten Zeilen. Prüfe die vorhandenen Modellvalidierungs- und Fehlerbehandlungspfade. Als erledigt gilt die Aufgabe, wenn dieser Missbrauch eine klare Exception erzeugt, die angibt, dass das Basismodell abstrakt sein muss, statt der gemeldeten NullPointerException.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
backend, databases
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.