com.soleil.jdi.InvocationException eu lieu en invoquant la méthode dans le JDK8
Je suis la migration de ma demande de JDK 7-JDK 8. Alors que faire, je suis confronté à une exception com.sun.jdi.InvocationException occurred invoking method
lorsqu'une instance de TestField
comme indiqué ci-dessous est créé. Je suis l'exception, tandis que le débogage et ne pouvait pas trouver la raison. Je soupçonne NullPointerException se produit et InvocationException masques. J'ai le dessous de méthodes de l'Objet remplacé dans TestField
.
Ci-dessous les classes utilitaires sont une partie de commons-lang
jar.
HashCodeBuilder
EqualsBuilder
ToStringBuilder
public class TestField {
private String name;
private Rules rules;
public TestField(String name, Rules rules)
{ this.name = name;
this.rules = rules;
}
public String toString() {
return new ToStringBuilder(this)
.append("\n name", this.getName())
.append("\n Rules", this.getRules())
.append("\n ")
.toString();
}
public boolean equals(Object other) {
if ( !(other instanceof TestField) ) return false;
TestField castOther = (TestField) other;
return new EqualsBuilder()
.append(this.getName(), castOther.getName())
.append(this.getRules(), castOther.getRules())
.isEquals();
}
public int hashCode() {
return new HashCodeBuilder()
.append(this.getName())
.append(this.getRules())
.toHashCode();
}
}
Une personne face à un tel problème. Quelqu'un pourrait-il svp m'aider à résoudre le même. Merci.
OriginalL'auteur sridhar | 2015-07-21
Vous devez vous connecter pour publier un commentaire.
Bien que je n'ai pas rencontrer ce genre de problème particulier, j'ai eu ma juste part de la migration des problèmes qui ont été causés par peu de modifications qui ont été masqués par ultérieur du processus.
J'allais suggérer de revenir en arrière et regarder votre méthode toString mais il semble que plusieurs personnes ont eu ce même problème déjà; toString ou votre toHashCode est le plus souvent coupables. Dans une coquille de noix une exception de pointeur null est le plus susceptible d'être levée, mais masquée par la com.soleil.jdi.InvocationException erreur. Donc, si vous obtenez une Exception de Pointeur Null chances sont, il n'y avait toujours quelque chose qui s'est passé avant, mais avait été masqué. Il suffit de prendre les pièces de votre code et de travailler dans de retour, étape par étape.
Ici est l'autre question et les réponses qui je pense va résoudre cela (je n'ai pas la réputation de la marque comme un doublon):
com-soleil-jdi-invocationexception eu lieu en invoquant la méthode
Aussi jeter un oeil à cette question, en particulier le commentaire de Robin Green, avez-vous essayé de débogage ce code?
Exemple
OriginalL'auteur Blizzardengle
Vous pourriez vouloir vérifier le hashcode() de votre classe. Si par n'importe quel moyen, il peut se coincer dans un nullPointer Exception, Mockito ne sera pas en mesure d'invoquer la méthode.
Par exemple, si le hashCode() a été mis en oeuvre en utilisant des arguments passés, il int constructeur de votre classe, et l'un d'eux est nul.
OriginalL'auteur PipoTells