提交 8efe598d 编写于 作者: T Tom Huybrechts

Merge branch 'master' of github.com:hudson/hudson

...@@ -52,12 +52,18 @@ Upcoming changes</a> ...@@ -52,12 +52,18 @@ Upcoming changes</a>
Build names (e.g., "#123") can be now modified by users/plugins to arbitrary text. Build names (e.g., "#123") can be now modified by users/plugins to arbitrary text.
(<a href="http://issues.hudson-ci.org/browse/HUDSON-53">issue 53</a>, (<a href="http://issues.hudson-ci.org/browse/HUDSON-53">issue 53</a>,
<a href="http://issues.hudson-ci.org/browse/HUDSON-4884">issue 4884</a>) <a href="http://issues.hudson-ci.org/browse/HUDSON-4884">issue 4884</a>)
<li class=bug>
Fixed an issue preventing to copy data on AIX, HP-UX or Linux for S/390.
(<a href="http://issues.hudson-ci.org/browse/HUDSON-8155">issue 8155</a>)
</ul> </ul>
</div><!--=TRUNK-END=--> </div><!--=TRUNK-END=-->
<!-- these changes are controlled by the release process. DO NOT MODIFY --> <!-- these changes are controlled by the release process. DO NOT MODIFY -->
<div id="rc" style="display:none;"><!--=BEGIN=--> <div id="rc" style="display:none;"><!--=BEGIN=-->
<h3><a name=v1.389>What's new in 1.389</a> <!--=DATE=--></h3> <h3><a name=v1.390>What's new in 1.390</a> <!--=DATE=--></h3>
<!--=RC-CHANGES=-->
</div><!--=END=-->
<h3><a name=v1.389>What's new in 1.389</a> (2010/12/11)</h3>
<ul class=image> <ul class=image>
<li class=rfe> <li class=rfe>
Hide executors for offline nodes to conserve space in Build Executors Status list. Hide executors for offline nodes to conserve space in Build Executors Status list.
...@@ -66,7 +72,6 @@ Upcoming changes</a> ...@@ -66,7 +72,6 @@ Upcoming changes</a>
throw AccessDeniedException if "Authentication Token" is invalid. throw AccessDeniedException if "Authentication Token" is invalid.
(<a href="http://hudson.361315.n4.nabble.com/-td3069369.html">hudson-ja</a>) (<a href="http://hudson.361315.n4.nabble.com/-td3069369.html">hudson-ja</a>)
</ul> </ul>
</div><!--=END=-->
<h3><a name=v1.388>What's new in 1.388</a> (2010/12/04)</h3> <h3><a name=v1.388>What's new in 1.388</a> (2010/12/04)</h3>
<ul class=image> <ul class=image>
<li class=bug> <li class=bug>
......
...@@ -2,7 +2,8 @@ ...@@ -2,7 +2,8 @@
* The MIT License * The MIT License
* *
* Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi,
* Eric Lefevre-Ardant, Erik Ramfelt, Michael B. Donohue, Alan Harder * Eric Lefevre-Ardant, Erik Ramfelt, Michael B. Donohue, Alan Harder,
* Manufacture Francaise des Pneumatiques Michelin, Romain Seguy
* *
* Permission is hereby granted, free of charge, to any person obtaining a copy * Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal * of this software and associated documentation files (the "Software"), to deal
...@@ -94,6 +95,8 @@ import java.util.zip.GZIPInputStream; ...@@ -94,6 +95,8 @@ import java.util.zip.GZIPInputStream;
import java.util.zip.ZipInputStream; import java.util.zip.ZipInputStream;
import com.sun.jna.Native; import com.sun.jna.Native;
import java.util.logging.Logger;
import org.apache.tools.ant.taskdefs.Chmod;
/** /**
* {@link File} like object with remoting support. * {@link File} like object with remoting support.
...@@ -1078,13 +1081,38 @@ public final class FilePath implements Serializable { ...@@ -1078,13 +1081,38 @@ public final class FilePath implements Serializable {
if(!isUnix() || mask==-1) return; if(!isUnix() || mask==-1) return;
act(new FileCallable<Void>() { act(new FileCallable<Void>() {
public Void invoke(File f, VirtualChannel channel) throws IOException { public Void invoke(File f, VirtualChannel channel) throws IOException {
if(File.separatorChar=='/' && LIBC.chmod(f.getAbsolutePath(),mask)!=0) _chmod(f, mask);
throw new IOException("Failed to chmod "+f+" : "+LIBC.strerror(Native.getLastError()));
return null; return null;
} }
}); });
} }
/**
* Run chmod via libc if we can, otherwise fall back to Ant.
*/
private static void _chmod(File f, int mask) throws IOException {
if (Functions.isWindows()) return; // noop
try {
if(LIBC.chmod(f.getAbsolutePath(),mask)!=0) {
throw new IOException("Failed to chmod "+f+" : "+LIBC.strerror(Native.getLastError()));
}
} catch(UnsatisfiedLinkError e) { // HUDSON-8155: use Ant's chmod task on non-GNU C systems
if (!CHMOD_WARNED) {// only warn this once to avoid flooding the log
CHMOD_WARNED = true;
LOGGER.warning("GNU C Library not available: Using Ant's chmod task instead.");
}
Chmod chmodTask = new Chmod();
chmodTask.setProject(new Project());
chmodTask.setFile(f);
chmodTask.setPerm(Integer.toOctalString(mask));
chmodTask.execute();
}
}
private static boolean CHMOD_WARNED = false;
/** /**
* Gets the file permission bit mask. * Gets the file permission bit mask.
* *
...@@ -1566,11 +1594,7 @@ public final class FilePath implements Serializable { ...@@ -1566,11 +1594,7 @@ public final class FilePath implements Serializable {
f.setLastModified(te.getModTime().getTime()); f.setLastModified(te.getModTime().getTime());
int mode = te.getMode()&0777; int mode = te.getMode()&0777;
if(mode!=0 && !Functions.isWindows()) // be defensive if(mode!=0 && !Functions.isWindows()) // be defensive
try { _chmod(f,mode);
LIBC.chmod(f.getPath(),mode);
} catch (NoClassDefFoundError e) {
// be defensive. see http://www.nabble.com/-3.0.6--Site-copy-problem%3A-hudson.util.IOException2%3A--java.lang.NoClassDefFoundError%3A-Could-not-initialize-class--hudson.util.jna.GNUCLibrary-td23588879.html
}
} }
} }
} catch(IOException e) { } catch(IOException e) {
...@@ -1877,6 +1901,8 @@ public final class FilePath implements Serializable { ...@@ -1877,6 +1901,8 @@ public final class FilePath implements Serializable {
public static int SIDE_BUFFER_SIZE = 1024; public static int SIDE_BUFFER_SIZE = 1024;
private static final Logger LOGGER = Logger.getLogger(FilePath.class.getName());
/** /**
* Adapts {@link FileCallable} to {@link Callable}. * Adapts {@link FileCallable} to {@link Callable}.
*/ */
......
...@@ -1835,6 +1835,7 @@ public abstract class Run <JobT extends Job<JobT,RunT>,RunT extends Run<JobT,Run ...@@ -1835,6 +1835,7 @@ public abstract class Run <JobT extends Job<JobT,RunT>,RunT extends Run<JobT,Run
public HttpResponse doConfigSubmit( StaplerRequest req ) throws IOException, ServletException, FormException { public HttpResponse doConfigSubmit( StaplerRequest req ) throws IOException, ServletException, FormException {
checkPermission(UPDATE); checkPermission(UPDATE);
req.setCharacterEncoding("UTF-8");
BulkChange bc = new BulkChange(this); BulkChange bc = new BulkChange(this);
try { try {
JSONObject json = req.getSubmittedForm(); JSONObject json = req.getSubmittedForm();
......
# The MIT License
#
# Copyright (c) 2010, CloudBees, Inc., Seiji Sogabe
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
LOADING=\u30ed\u30fc\u30c9\u4e2d
DisplayName=\u8868\u793a\u540d
Description=\u8aac\u660e
Save=\u4fdd\u5b58
\ No newline at end of file
...@@ -26,7 +26,7 @@ THE SOFTWARE. ...@@ -26,7 +26,7 @@ THE SOFTWARE.
<j:if test="${request.servletPath=='/' || request.servletPath==''}"> <j:if test="${request.servletPath=='/' || request.servletPath==''}">
<st:header name="X-Hudson" value="${servletContext.getAttribute('version')}" /> <st:header name="X-Hudson" value="${servletContext.getAttribute('version')}" />
<j:if test="${app.tcpSlaveAgentListener!=null}"> <j:if test="${app.tcpSlaveAgentListener!=null}">
<!-- advertize the CLI TCP port --> <!-- advertise the CLI TCP port -->
<st:header name="X-Hudson-CLI-Port" value="${app.tcpSlaveAgentListener.port}" /> <st:header name="X-Hudson-CLI-Port" value="${app.tcpSlaveAgentListener.port}" />
</j:if> </j:if>
</j:if> </j:if>
......
hudson (1.389) unstable; urgency=low
* See http://hudson.dev.java.net/changelog.html for more details.
-- Kohsuke Kawaguchi <kk@kohsuke.org> Sat, 11 Dec 2010 22:05:31 -0800
hudson (1.388) unstable; urgency=low hudson (1.388) unstable; urgency=low
* See http://hudson.dev.java.net/changelog.html for more details. * See http://hudson.dev.java.net/changelog.html for more details.
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<groupId>org.jvnet.hudson.plugins</groupId> <groupId>org.jvnet.hudson.plugins</groupId>
<artifactId>plugin</artifactId> <artifactId>plugin</artifactId>
<name>Hudson plugin POM</name> <name>Hudson plugin POM</name>
<version>1.388</version> <version>1.389</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<properties> <properties>
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
<dependency><!-- if a plugin wants to depend on the maven plugin, choose the right version automatically --> <dependency><!-- if a plugin wants to depend on the maven plugin, choose the right version automatically -->
<groupId>org.jvnet.hudson.main</groupId> <groupId>org.jvnet.hudson.main</groupId>
<artifactId>maven-plugin</artifactId> <artifactId>maven-plugin</artifactId>
<version>1.388</version> <version>1.389</version>
</dependency> </dependency>
</dependencies> </dependencies>
</dependencyManagement> </dependencyManagement>
...@@ -49,25 +49,25 @@ ...@@ -49,25 +49,25 @@
<groupId>org.jvnet.hudson.main</groupId> <groupId>org.jvnet.hudson.main</groupId>
<artifactId>hudson-war</artifactId> <artifactId>hudson-war</artifactId>
<type>war</type> <type>war</type>
<version>1.388</version> <version>1.389</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.jvnet.hudson.main</groupId> <groupId>org.jvnet.hudson.main</groupId>
<artifactId>hudson-core</artifactId> <artifactId>hudson-core</artifactId>
<version>1.388</version> <version>1.389</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.jvnet.hudson.main</groupId> <groupId>org.jvnet.hudson.main</groupId>
<artifactId>hudson-test-harness</artifactId> <artifactId>hudson-test-harness</artifactId>
<version>1.388</version> <version>1.389</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.jvnet.hudson.main</groupId> <groupId>org.jvnet.hudson.main</groupId>
<artifactId>ui-samples-plugin</artifactId> <artifactId>ui-samples-plugin</artifactId>
<version>1.388</version> <version>1.389</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
...@@ -98,7 +98,7 @@ ...@@ -98,7 +98,7 @@
<dependency> <dependency>
<groupId>org.jvnet.hudson.main</groupId> <groupId>org.jvnet.hudson.main</groupId>
<artifactId>maven-plugin</artifactId> <artifactId>maven-plugin</artifactId>
<version>1.388</version> <version>1.389</version>
</dependency> </dependency>
</dependencies> </dependencies>
</dependencyManagement--> </dependencyManagement-->
......
<div>
このビルドが何を実行したのかわかるように、ビルドのトップ画面に表示されます。
ここには、どんなHTMLタグでも記述することができます。
</div>
\ No newline at end of file
<div>
デフォルトの"#NNN"のかわりに、このテキストがビルドを表します。設定しないとデフォルト("#NNN")を使用します。
</div>
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册