This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

View | Details | Raw Unified | Return to bug 184421
Collapse All | Expand All

(-)e3d60e01a68d (+105 lines)
Added Link Here
1
/*
2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3
 *
4
 * Copyright 2010 Oracle and/or its affiliates. All rights reserved.
5
 *
6
 * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
7
 * Other names may be trademarks of their respective owners.
8
 *
9
 * The contents of this file are subject to the terms of either the GNU
10
 * General Public License Version 2 only ("GPL") or the Common
11
 * Development and Distribution License("CDDL") (collectively, the
12
 * "License"). You may not use this file except in compliance with the
13
 * License. You can obtain a copy of the License at
14
 * http://www.netbeans.org/cddl-gplv2.html
15
 * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
16
 * specific language governing permissions and limitations under the
17
 * License.  When distributing the software, include this License Header
18
 * Notice in each file and include the License file at
19
 * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
20
 * particular file as subject to the "Classpath" exception as provided
21
 * by Oracle in the GPL Version 2 section of the License file that
22
 * accompanied this code. If applicable, add the following below the
23
 * License Header, with the fields enclosed by brackets [] replaced by
24
 * your own identifying information:
25
 * "Portions Copyrighted [year] [name of copyright owner]"
26
 *
27
 * If you wish your version of this file to be governed by only the CDDL
28
 * or only the GPL Version 2, indicate your decision by adding
29
 * "[Contributor] elects to include this software in this distribution
30
 * under the [CDDL or GPL Version 2] license." If you do not indicate a
31
 * single choice of license, a recipient has the option to distribute
32
 * your version of this file under either the CDDL, the GPL Version 2 or
33
 * to extend the choice of license to its licensees as provided above.
34
 * However, if you add GPL Version 2 code and therefore, elected the GPL
35
 * Version 2 license, then the option applies only if the new code is
36
 * made subject to such option by the copyright holder.
37
 *
38
 * Contributor(s):
39
 *
40
 * Portions Copyrighted 2009 Sun Microsystems, Inc.
41
 */
42
package com.jcraft.jsch;
43
44
import java.io.IOException;
45
import java.io.OutputStream;
46
47
public final class HotFixChannelExec extends ChannelExec {
48
49
    private volatile boolean isConnected;
50
51
    public void connect(int connectTimeout) throws JSchException {
52
        try {
53
            super.connect(connectTimeout);
54
        } finally {
55
            setConnected();
56
        }
57
    }
58
59
    public void disconnect() {
60
        try {
61
            super.disconnect();
62
        } finally {
63
            setConnected();
64
        }
65
    }
66
67
    private void setConnected() {
68
        isConnected = isConnected();
69
    }
70
71
    public OutputStream getOutputStream() throws IOException {
72
        final OutputStream os = super.getOutputStream();
73
74
        return new OutputStream() {
75
76
            public void close() throws IOException {
77
                os.close();
78
            }
79
80
            public void flush() throws IOException {
81
                if (isConnected) {
82
                    os.flush();
83
                }
84
            }
85
86
            public void write(byte[] b) throws IOException {
87
                if (isConnected) {
88
                    os.write(b);
89
                }
90
            }
91
92
            public void write(byte[] b, int off, int len) throws IOException {
93
                if (isConnected) {
94
                    os.write(b, off, len);
95
                }
96
            }
97
98
            public void write(int b) throws IOException {
99
                if (isConnected) {
100
                    os.write(b);
101
                }
102
            }
103
        };
104
    }
105
}
(-)e3d60e01a68d (+67 lines)
Added Link Here
1
/*
2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3
 *
4
 * Copyright 2010 Oracle and/or its affiliates. All rights reserved.
5
 *
6
 * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
7
 * Other names may be trademarks of their respective owners.
8
 *
9
 * The contents of this file are subject to the terms of either the GNU
10
 * General Public License Version 2 only ("GPL") or the Common
11
 * Development and Distribution License("CDDL") (collectively, the
12
 * "License"). You may not use this file except in compliance with the
13
 * License. You can obtain a copy of the License at
14
 * http://www.netbeans.org/cddl-gplv2.html
15
 * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
16
 * specific language governing permissions and limitations under the
17
 * License.  When distributing the software, include this License Header
18
 * Notice in each file and include the License file at
19
 * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
20
 * particular file as subject to the "Classpath" exception as provided
21
 * by Oracle in the GPL Version 2 section of the License file that
22
 * accompanied this code. If applicable, add the following below the
23
 * License Header, with the fields enclosed by brackets [] replaced by
24
 * your own identifying information:
25
 * "Portions Copyrighted [year] [name of copyright owner]"
26
 *
27
 * If you wish your version of this file to be governed by only the CDDL
28
 * or only the GPL Version 2, indicate your decision by adding
29
 * "[Contributor] elects to include this software in this distribution
30
 * under the [CDDL or GPL Version 2] license." If you do not indicate a
31
 * single choice of license, a recipient has the option to distribute
32
 * your version of this file under either the CDDL, the GPL Version 2 or
33
 * to extend the choice of license to its licensees as provided above.
34
 * However, if you add GPL Version 2 code and therefore, elected the GPL
35
 * Version 2 license, then the option applies only if the new code is
36
 * made subject to such option by the copyright holder.
37
 *
38
 * Contributor(s):
39
 *
40
 * Portions Copyrighted 2009 Sun Microsystems, Inc.
41
 */
42
43
package com.jcraft.jsch;
44
45
/**
46
 * An attempt to overcome 'Received data for nonexistent channel' jsch problem
47
 * @see https://sourceforge.net/tracker/?func=detail&aid=3047673&group_id=64920&atid=509122
48
 */
49
public final class HotFixJSch extends JSch {
50
51
    public Session getSession(String username, String host, int port) throws JSchException {
52
        if (username == null) {
53
            throw new JSchException("username must not be null."); // NOI18N
54
        }
55
56
        if (host == null) {
57
            throw new JSchException("host must not be null."); // NOI18N
58
        }
59
60
        Session s = new HotFixSession(this);
61
        s.setUserName(username);
62
        s.setHost(host);
63
        s.setPort(port);
64
65
        return s;
66
    }
67
}
(-)e3d60e01a68d (+73 lines)
Added Link Here
1
/*
2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3
 *
4
 * Copyright 2010 Oracle and/or its affiliates. All rights reserved.
5
 *
6
 * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
7
 * Other names may be trademarks of their respective owners.
8
 *
9
 * The contents of this file are subject to the terms of either the GNU
10
 * General Public License Version 2 only ("GPL") or the Common
11
 * Development and Distribution License("CDDL") (collectively, the
12
 * "License"). You may not use this file except in compliance with the
13
 * License. You can obtain a copy of the License at
14
 * http://www.netbeans.org/cddl-gplv2.html
15
 * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
16
 * specific language governing permissions and limitations under the
17
 * License.  When distributing the software, include this License Header
18
 * Notice in each file and include the License file at
19
 * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
20
 * particular file as subject to the "Classpath" exception as provided
21
 * by Oracle in the GPL Version 2 section of the License file that
22
 * accompanied this code. If applicable, add the following below the
23
 * License Header, with the fields enclosed by brackets [] replaced by
24
 * your own identifying information:
25
 * "Portions Copyrighted [year] [name of copyright owner]"
26
 *
27
 * If you wish your version of this file to be governed by only the CDDL
28
 * or only the GPL Version 2, indicate your decision by adding
29
 * "[Contributor] elects to include this software in this distribution
30
 * under the [CDDL or GPL Version 2] license." If you do not indicate a
31
 * single choice of license, a recipient has the option to distribute
32
 * your version of this file under either the CDDL, the GPL Version 2 or
33
 * to extend the choice of license to its licensees as provided above.
34
 * However, if you add GPL Version 2 code and therefore, elected the GPL
35
 * Version 2 license, then the option applies only if the new code is
36
 * made subject to such option by the copyright holder.
37
 *
38
 * Contributor(s):
39
 *
40
 * Portions Copyrighted 2009 Sun Microsystems, Inc.
41
 */
42
package com.jcraft.jsch;
43
44
public final class HotFixSession extends Session {
45
46
    HotFixSession(JSch jsch) throws JSchException {
47
        super(jsch);
48
    }
49
50
    public Channel openChannel(String type) throws JSchException {
51
        if (!isConnected()) {
52
            throw new JSchException("session is down"); // NOI18N
53
        }
54
55
        try {
56
            Channel channel = getChannel(type);
57
            addChannel(channel);
58
            channel.init();
59
            return channel;
60
        } catch (Exception e) {
61
            //e.printStackTrace();
62
        }
63
        return null;
64
    }
65
66
    private Channel getChannel(String type) {
67
        if (type.equals("exec")) {
68
            return new HotFixChannelExec();
69
        }
70
71
        return Channel.getChannel(type);
72
    }
73
}

Return to bug 184421