Bonjour à tous,
Pour commencer, je ne suis pas informaticienne et je reprends une application développée par quelqu'un d'autre donc je vous pries de bien vouloir m'excuser si je pose des questions basiques.
Cette application est développée en Java et intègre des règles en Drools. (si vous avez besoin de plus d'info n'hésitez pas, je ne sais pas ce qui peut vous être utile)
J'ai une erreur du type :
java.lang.NullPointer.Exception
Cette erreur apparait dans une règle où aucune variable ne manque dans le "when" et qui ajoute ces variables dans une classe/liste (je ne sais pas quels sont les bons termes) :
L'erreur est suivi par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 rule "Règle pour type : A" no-loop salience 447 when mot : tab_mots (idm : idmot, idLi : idLieux, forme : form, sta : start, idg : idGroupe, iddd : idDate_debut, iddf : idDate_fin, lem : lemma, Int == false, cat : catégorie) then Truc truc = new Truc(); truc.setId_groupe(idg); truc.setTerme(forme); truc.setPosition(sta); truc.setId(idt); truc.setId_date_debut(iddd); truc.setId_date_fin(iddf); truc.setId_lieux(idLi); truc.setCatégorie(cat); insert(truc); retract(mot); Effet eff = new Effet(); eff.setId_truc(idm); eff.setType_lien(cat); eff.setType_("A"); insert(eff); end
Cette erreur n'apparait pas à chaque fois que la règle se lance mais seulement pour certain mot. Mais je n'arrive pas à trouver la différence entre ceux qui fonctionnent et ceux qui ne fonctionnent pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 java.lang.NullPointerException at org.drools.core.util.AbstractHashTable$SingleIndex.hashCodeOf(AbstractHashTable.java:484) at org.drools.core.util.index.LeftTupleIndexHashTable.getOrCreate(LeftTupleIndexHashTable.java:449) at org.drools.core.util.index.LeftTupleIndexHashTable.add(LeftTupleIndexHashTable.java:379) at org.drools.core.phreak.PhreakJoinNode.doLeftInserts(PhreakJoinNode.java:84) at org.drools.core.phreak.PhreakJoinNode.doNode(PhreakJoinNode.java:60) at org.drools.core.phreak.RuleNetworkEvaluator.switchOnDoBetaNode(RuleNetworkEvaluator.java:547) at org.drools.core.phreak.RuleNetworkEvaluator.evalBetaNode(RuleNetworkEvaluator.java:533) at org.drools.core.phreak.RuleNetworkEvaluator.innerEval(RuleNetworkEvaluator.java:334) at org.drools.core.phreak.RuleNetworkEvaluator.outerEval(RuleNetworkEvaluator.java:161) at org.drools.core.phreak.RuleNetworkEvaluator.evaluateNetwork(RuleNetworkEvaluator.java:116) at org.drools.core.phreak.RuleExecutor.evaluateNetwork(RuleExecutor.java:92) at org.drools.core.common.DefaultAgenda.evaluateEagerList(DefaultAgenda.java:1044) at org.drools.core.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:996) at org.drools.core.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1302) at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1289) at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1262) at com.sample.MaBase.main(MaBase.java:1820)
Merci d'avance pour votre aide.
Partager