提交 fc5aa88b 编写于 作者: K Kohsuke Kawaguchi

handle legacy slave.jar gracefully

上级 9e69d9a9
......@@ -55,6 +55,9 @@ Upcoming changes</a>
<!-- Record your changes in the trunk here. -->
<div id="trunk" style="display:none"><!--=TRUNK-BEGIN=-->
<ul class=image>
<li class=rfe>
Gracefully handle old slave.jar to avoid <tt>AbstractMethodError</tt>
(<a href="https://groups.google.com/d/topic/jenkinsci-dev/KqFw4nfiQdE/discussion">thread</a>)
<li class=rfe>
Debian packages now do log rotation
(<a href="http://issues.jenkins-ci.org/browse/JENKINS-8641">issue 8641</a>)
......
......@@ -39,6 +39,7 @@ import hudson.remoting.Pipe;
import hudson.remoting.RemoteOutputStream;
import hudson.remoting.VirtualChannel;
import hudson.remoting.RemoteInputStream;
import hudson.remoting.Which;
import hudson.security.AccessControlled;
import hudson.util.DirScanner;
import hudson.util.IOException2;
......@@ -85,6 +86,7 @@ import java.util.List;
import java.util.StringTokenizer;
import java.util.Arrays;
import java.util.Comparator;
import java.util.logging.Level;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.concurrent.ExecutionException;
......@@ -1419,8 +1421,29 @@ public final class FilePath implements Serializable {
});
// make sure the write fully happens before we return.
if (channel!=null)
channel.syncLocalIO();
syncIO();
}
private void syncIO() throws InterruptedException {
try {
if (channel!=null)
_syncIO();
} catch (AbstractMethodError e) {
// legacy slave.jar. Handle this gracefully
try {
LOGGER.log(Level.WARNING,"Looks like an old slave.jar. Please update "+ Which.jarFile(Channel.class)+" to the new version",e);
} catch (IOException _) {
// really ignore this time
}
}
}
/**
* A pointless function to work around what appears to be a HotSpot problem. See JENKINS-5756 and bug 6933067
* on BugParade for more details.
*/
private void _syncIO() throws InterruptedException {
channel.syncLocalIO();
}
/**
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册