Je crée un programme pour SFTP
dans NetBeans
.
Une partie de mon code:
com.jcraft.jsch.Session sessionTarget = null;
com.jcraft.jsch.ChannelSftp channelTarget = null;
try {
sessionTarget = jsch.getSession(backupUser, backupHost, backupPort);
sessionTarget.setPassword(backupPassword);
sessionTarget.setConfig("StrictHostKeyChecking", "no");
sessionTarget.connect();
channelTarget = (ChannelSftp) sessionTarget.openChannel("sftp");
channelTarget.connect();
System.out.println("Target Channel Connected");
} catch (JSchException e) {
System.out.println("Error Occured ======== Connection not estabilished");
log.error("Error Occured ======== Connection not estabilished", e);
} finally {
channelTarget.exit(); // Warning : dereferencing possible null pointer
channelTarget.disconnect(); // Warning : dereferencing possible null pointer
sessionTarget.disconnect(); // Warning : dereferencing possible null pointer
}
Je reçois un avertissement dereferencing possible null pointer
, comment puis-je résoudre ces avertissements ??? Où je peux déconnecter ma Session
et Channel
???
sessionTarget = jsch.getSession(backupUser, backupHost, backupPort);
Ici, dans cette ligne, la méthode getSession()
peut générer une exception. Les variables sessionTarget
et channelTarget
sont donc nulles et dans le bloc finally, vous accédez à ces variables, ce qui peut provoquer une exception de pointeur nul.
Pour éviter cela, dans le bloc finally, recherchez la valeur null avant d'accéder à la variable.
finally {
if (channelTarget != null) {
channelTarget.exit();
channelTarget.disconnect();
}
if (sessionTarget != null ) {
sessionTarget.disconnect();
}
}
Cela signifie: que se passe-t-il si vos channelTarget
et sessionTarget
sont nuls dans votre bloc finally? Vérifiez les null pour éviter l'avertissement.
Je pense que netbeans essaye simplement de vous avertir que ceux-ci peuvent être nuls, ce qui n'est peut-être pas tout à fait vrai. Vous pouvez cependant choisir de désactiver les avertissements. Il suffit de placer votre curseur sur l'avertissement, appuyez sur ALT+ENTER
et choisissez parmi les choix proposés même pour désactiver les avertissements.