Look on the server logs to see if there are any clues there.
Maybe you don't have permissions to access that subdir?
if(type!=SSH_FXP_ATTRS){
if(type==SSH_FXP_STATUS){
int i=buf.getInt();
throwStatusError(buf, i);
}
According to the stack trace, the server returned 101 (the client is expecting 105).
The value (i) does not appear in the SftpException.getMessage()
shown in the stack trace.
You can see it by traversing the cause()
chain and using toString()
.
public class SftpException extends Exception{
//private static final long serialVersionUID=-5616888495583253811L;
public int id;
private Throwable cause=null;
public SftpException (int id, String message) {
super(message);
this.id=id;
}
public SftpException (int id, String message, Throwable e) {
super(message);
this.id=id;
this.cause=e;
}
public String toString(){
return id+": "+getMessage();
}
public Throwable getCause(){
return this.cause;
}
}
It might provide more clues.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…