Mercurial > hg > icedtea6
view generated/java/lang/UNIXProcess.java @ 3284:aa9488b471f9
PR3275: Update generated files after OpenJDK 6 b41 update
2017-01-03 Andrew John Hughes <gnu.andrew@redhat.com>
PR3275: Update generated files after OpenJDK 6
b41 update
* NEWS: Updated.
* generated/com/sun/accessibility/internal/resources/accessibility.java,
* generated/com/sun/accessibility/internal/resources/accessibility_de.java,
* generated/com/sun/accessibility/internal/resources/accessibility_es.java,
* generated/com/sun/accessibility/internal/resources/accessibility_fr.java,
* generated/com/sun/accessibility/internal/resources/accessibility_it.java,
* generated/com/sun/accessibility/internal/resources/accessibility_ja.java,
* generated/com/sun/accessibility/internal/resources/accessibility_ko.java,
* generated/com/sun/accessibility/internal/resources/accessibility_pt_BR.java,
* generated/com/sun/accessibility/internal/resources/accessibility_sv.java,
* generated/com/sun/accessibility/internal/resources/accessibility_zh_CN.java,
* generated/com/sun/accessibility/internal/resources/accessibility_zh_HK.java,
* generated/com/sun/accessibility/internal/resources/accessibility_zh_TW.java,
* generated/com/sun/corba/se/impl/logging/ActivationSystemException.java,
* generated/com/sun/corba/se/impl/logging/IORSystemException.java,
* generated/com/sun/corba/se/impl/logging/InterceptorsSystemException.java,
* generated/com/sun/corba/se/impl/logging/NamingSystemException.java,
* generated/com/sun/corba/se/impl/logging/OMGSystemException.java,
* generated/com/sun/corba/se/impl/logging/ORBUtilSystemException.java,
* generated/com/sun/corba/se/impl/logging/POASystemException.java,
* generated/com/sun/corba/se/impl/logging/UtilSystemException.java,
* generated/com/sun/java/swing/plaf/gtk/resources/gtk.java,
* generated/com/sun/java/swing/plaf/gtk/resources/gtk_de.java,
* generated/com/sun/java/swing/plaf/gtk/resources/gtk_es.java,
* generated/com/sun/java/swing/plaf/gtk/resources/gtk_fr.java,
* generated/com/sun/java/swing/plaf/gtk/resources/gtk_it.java,
* generated/com/sun/java/swing/plaf/gtk/resources/gtk_ja.java,
* generated/com/sun/java/swing/plaf/gtk/resources/gtk_ko.java,
* generated/com/sun/java/swing/plaf/gtk/resources/gtk_pt_BR.java,
* generated/com/sun/java/swing/plaf/gtk/resources/gtk_sv.java,
* generated/com/sun/java/swing/plaf/gtk/resources/gtk_zh_CN.java,
* generated/com/sun/java/swing/plaf/gtk/resources/gtk_zh_HK.java,
* generated/com/sun/java/swing/plaf/gtk/resources/gtk_zh_TW.java,
* generated/com/sun/java/swing/plaf/motif/resources/motif.java,
* generated/com/sun/java/swing/plaf/motif/resources/motif_de.java,
* generated/com/sun/java/swing/plaf/motif/resources/motif_es.java,
* generated/com/sun/java/swing/plaf/motif/resources/motif_fr.java,
* generated/com/sun/java/swing/plaf/motif/resources/motif_it.java,
* generated/com/sun/java/swing/plaf/motif/resources/motif_ja.java,
* generated/com/sun/java/swing/plaf/motif/resources/motif_ko.java,
* generated/com/sun/java/swing/plaf/motif/resources/motif_pt_BR.java,
* generated/com/sun/java/swing/plaf/motif/resources/motif_sv.java,
* generated/com/sun/java/swing/plaf/motif/resources/motif_zh_CN.java,
* generated/com/sun/java/swing/plaf/motif/resources/motif_zh_HK.java,
* generated/com/sun/java/swing/plaf/motif/resources/motif_zh_TW.java,
* generated/com/sun/java/swing/plaf/windows/resources/windows.java,
* generated/com/sun/java/swing/plaf/windows/resources/windows_de.java,
* generated/com/sun/java/swing/plaf/windows/resources/windows_es.java,
* generated/com/sun/java/swing/plaf/windows/resources/windows_fr.java,
* generated/com/sun/java/swing/plaf/windows/resources/windows_it.java,
* generated/com/sun/java/swing/plaf/windows/resources/windows_ja.java,
* generated/com/sun/java/swing/plaf/windows/resources/windows_ko.java,
* generated/com/sun/java/swing/plaf/windows/resources/windows_pt_BR.java,
* generated/com/sun/java/swing/plaf/windows/resources/windows_sv.java,
* generated/com/sun/java/swing/plaf/windows/resources/windows_zh_CN.java,
* generated/com/sun/java/swing/plaf/windows/resources/windows_zh_HK.java,
* generated/com/sun/java/swing/plaf/windows/resources/windows_zh_TW.java,
* generated/com/sun/swing/internal/plaf/basic/resources/basic.java,
* generated/com/sun/swing/internal/plaf/basic/resources/basic_de.java,
* generated/com/sun/swing/internal/plaf/basic/resources/basic_es.java,
* generated/com/sun/swing/internal/plaf/basic/resources/basic_fr.java,
* generated/com/sun/swing/internal/plaf/basic/resources/basic_it.java,
* generated/com/sun/swing/internal/plaf/basic/resources/basic_ja.java,
* generated/com/sun/swing/internal/plaf/basic/resources/basic_ko.java,
* generated/com/sun/swing/internal/plaf/basic/resources/basic_pt_BR.java,
* generated/com/sun/swing/internal/plaf/basic/resources/basic_sv.java,
* generated/com/sun/swing/internal/plaf/basic/resources/basic_zh_CN.java,
* generated/com/sun/swing/internal/plaf/basic/resources/basic_zh_HK.java,
* generated/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.java,
* generated/com/sun/swing/internal/plaf/metal/resources/metal.java,
* generated/com/sun/swing/internal/plaf/metal/resources/metal_de.java,
* generated/com/sun/swing/internal/plaf/metal/resources/metal_es.java,
* generated/com/sun/swing/internal/plaf/metal/resources/metal_fr.java,
* generated/com/sun/swing/internal/plaf/metal/resources/metal_it.java,
* generated/com/sun/swing/internal/plaf/metal/resources/metal_ja.java,
* generated/com/sun/swing/internal/plaf/metal/resources/metal_ko.java,
* generated/com/sun/swing/internal/plaf/metal/resources/metal_pt_BR.java,
* generated/com/sun/swing/internal/plaf/metal/resources/metal_sv.java,
* generated/com/sun/swing/internal/plaf/metal/resources/metal_zh_CN.java,
* generated/com/sun/swing/internal/plaf/metal/resources/metal_zh_HK.java,
* generated/com/sun/swing/internal/plaf/metal/resources/metal_zh_TW.java,
* generated/com/sun/swing/internal/plaf/synth/resources/synth.java,
* generated/com/sun/swing/internal/plaf/synth/resources/synth_de.java,
* generated/com/sun/swing/internal/plaf/synth/resources/synth_es.java,
* generated/com/sun/swing/internal/plaf/synth/resources/synth_fr.java,
* generated/com/sun/swing/internal/plaf/synth/resources/synth_it.java,
* generated/com/sun/swing/internal/plaf/synth/resources/synth_ja.java,
* generated/com/sun/swing/internal/plaf/synth/resources/synth_ko.java,
* generated/com/sun/swing/internal/plaf/synth/resources/synth_pt_BR.java,
* generated/com/sun/swing/internal/plaf/synth/resources/synth_sv.java,
* generated/com/sun/swing/internal/plaf/synth/resources/synth_zh_CN.java,
* generated/com/sun/swing/internal/plaf/synth/resources/synth_zh_HK.java,
* generated/com/sun/swing/internal/plaf/synth/resources/synth_zh_TW.java,
* generated/com/sun/tools/jdi/resources/jdi_ja.java,
* generated/com/sun/tools/jdi/resources/jdi_zh_CN.java,
* generated/java/lang/CharacterDataPrivateUse.java,
* generated/java/lang/CharacterDataUndefined.java,
* generated/java/lang/UNIXProcess.java,
* generated/java/nio/charset/CharsetEncoder.java,
* generated/sun/awt/X11/XAWTIcon32_security_icon_bw16_png.java,
* generated/sun/awt/X11/XAWTIcon32_security_icon_bw24_png.java,
* generated/sun/awt/X11/XAWTIcon32_security_icon_bw32_png.java,
* generated/sun/awt/X11/XAWTIcon32_security_icon_bw48_png.java,
* generated/sun/awt/X11/XAWTIcon32_security_icon_interim16_png.java,
* generated/sun/awt/X11/XAWTIcon32_security_icon_interim24_png.java,
* generated/sun/awt/X11/XAWTIcon32_security_icon_interim32_png.java,
* generated/sun/awt/X11/XAWTIcon32_security_icon_interim48_png.java,
* generated/sun/awt/X11/XAWTIcon32_security_icon_yellow16_png.java,
* generated/sun/awt/X11/XAWTIcon32_security_icon_yellow24_png.java,
* generated/sun/awt/X11/XAWTIcon32_security_icon_yellow32_png.java,
* generated/sun/awt/X11/XAWTIcon32_security_icon_yellow48_png.java,
* generated/sun/awt/X11/XAWTIcon64_security_icon_bw16_png.java,
* generated/sun/awt/X11/XAWTIcon64_security_icon_bw24_png.java,
* generated/sun/awt/X11/XAWTIcon64_security_icon_bw32_png.java,
* generated/sun/awt/X11/XAWTIcon64_security_icon_bw48_png.java,
* generated/sun/awt/X11/XAWTIcon64_security_icon_interim16_png.java,
* generated/sun/awt/X11/XAWTIcon64_security_icon_interim24_png.java,
* generated/sun/awt/X11/XAWTIcon64_security_icon_interim32_png.java,
* generated/sun/awt/X11/XAWTIcon64_security_icon_interim48_png.java,
* generated/sun/awt/X11/XAWTIcon64_security_icon_yellow16_png.java,
* generated/sun/awt/X11/XAWTIcon64_security_icon_yellow24_png.java,
* generated/sun/awt/X11/XAWTIcon64_security_icon_yellow32_png.java,
* generated/sun/awt/X11/XAWTIcon64_security_icon_yellow48_png.java,
* generated/sun/awt/X11/XkbAccessXNotifyEvent.java,
* generated/sun/awt/X11/XkbActionMessageEvent.java,
* generated/sun/awt/X11/XkbAnyEvent.java,
* generated/sun/awt/X11/XkbBellNotifyEvent.java,
* generated/sun/awt/X11/XkbCompatMapNotifyEvent.java,
* generated/sun/awt/X11/XkbControlsNotifyEvent.java,
* generated/sun/awt/X11/XkbEvent.java,
* generated/sun/awt/X11/XkbExtensionDeviceNotifyEvent.java,
* generated/sun/awt/X11/XkbIndicatorNotifyEvent.java,
* generated/sun/awt/X11/XkbMapNotifyEvent.java,
* generated/sun/awt/X11/XkbNamesNotifyEvent.java,
* generated/sun/awt/X11/XkbNewKeyboardNotifyEvent.java,
* generated/sun/awt/X11/XkbStateNotifyEvent.java,
* generated/sun/awt/X11/generator/sizer.64,
* generated/sun/awt/X11/generator/sizes.64,
* generated/sun/awt/resources/awt_de.java,
* generated/sun/awt/resources/awt_es.java,
* generated/sun/awt/resources/awt_fr.java,
* generated/sun/awt/resources/awt_it.java,
* generated/sun/awt/resources/awt_ja.java,
* generated/sun/awt/resources/awt_ko.java,
* generated/sun/awt/resources/awt_pt_BR.java,
* generated/sun/awt/resources/awt_sv.java,
* generated/sun/awt/resources/awt_zh_CN.java,
* generated/sun/awt/resources/awt_zh_HK.java,
* generated/sun/awt/resources/awt_zh_TW.java,
* generated/sun/management/resources/agent_de.java,
* generated/sun/management/resources/agent_es.java,
* generated/sun/management/resources/agent_fr.java,
* generated/sun/management/resources/agent_it.java,
* generated/sun/management/resources/agent_ja.java,
* generated/sun/management/resources/agent_ko.java,
* generated/sun/management/resources/agent_pt_BR.java,
* generated/sun/management/resources/agent_sv.java,
* generated/sun/management/resources/agent_zh_CN.java,
* generated/sun/management/resources/agent_zh_HK.java,
* generated/sun/management/resources/agent_zh_TW.java,
* generated/sun/misc/Version.java,
* generated/sun/nio/ch/AlreadyBoundException.java,
* generated/sun/print/resources/serviceui.java,
* generated/sun/print/resources/serviceui_de.java,
* generated/sun/print/resources/serviceui_es.java,
* generated/sun/print/resources/serviceui_fr.java,
* generated/sun/print/resources/serviceui_it.java,
* generated/sun/print/resources/serviceui_ja.java,
* generated/sun/print/resources/serviceui_ko.java,
* generated/sun/print/resources/serviceui_pt_BR.java,
* generated/sun/print/resources/serviceui_sv.java,
* generated/sun/print/resources/serviceui_zh_CN.java,
* generated/sun/print/resources/serviceui_zh_HK.java,
* generated/sun/print/resources/serviceui_zh_TW.java,
* generated/sun/tools/jar/resources/jar.java,
* generated/sun/tools/jar/resources/jar_de.java,
* generated/sun/tools/jar/resources/jar_es.java,
* generated/sun/tools/jar/resources/jar_fr.java,
* generated/sun/tools/jar/resources/jar_it.java,
* generated/sun/tools/jar/resources/jar_ja.java,
* generated/sun/tools/jar/resources/jar_ko.java,
* generated/sun/tools/jar/resources/jar_pt_BR.java,
* generated/sun/tools/jar/resources/jar_sv.java,
* generated/sun/tools/jar/resources/jar_zh_CN.java,
* generated/sun/tools/jar/resources/jar_zh_HK.java,
* generated/sun/tools/jar/resources/jar_zh_TW.java,
* generated/sun/tools/jconsole/Version.java,
* generated/sun/util/CoreResourceBundleControl.java,
* generated/sun/util/LocaleDataMetaInfo.java,
* generated/sun/util/logging/resources/logging_de.java,
* generated/sun/util/logging/resources/logging_es.java,
* generated/sun/util/logging/resources/logging_fr.java,
* generated/sun/util/logging/resources/logging_it.java,
* generated/sun/util/logging/resources/logging_ja.java,
* generated/sun/util/logging/resources/logging_ko.java,
* generated/sun/util/logging/resources/logging_pt_BR.java,
* generated/sun/util/logging/resources/logging_sv.java,
* generated/sun/util/logging/resources/logging_zh_CN.java,
* generated/sun/util/logging/resources/logging_zh_HK.java,
* generated/sun/util/logging/resources/logging_zh_TW.java,
* generated/sun/util/resources/CalendarData_hu.java,
* generated/sun/util/resources/CalendarData_pt_BR.java,
* generated/sun/util/resources/CalendarData_sl.java,
* generated/sun/util/resources/CurrencyNames.java,
* generated/sun/util/resources/CurrencyNames_de.java,
* generated/sun/util/resources/CurrencyNames_es.java,
* generated/sun/util/resources/CurrencyNames_es_CU.java,
* generated/sun/util/resources/CurrencyNames_es_PE.java,
* generated/sun/util/resources/CurrencyNames_es_VE.java,
* generated/sun/util/resources/CurrencyNames_et_EE.java,
* generated/sun/util/resources/CurrencyNames_fr.java,
* generated/sun/util/resources/CurrencyNames_it.java,
* generated/sun/util/resources/CurrencyNames_ja.java,
* generated/sun/util/resources/CurrencyNames_ko.java,
* generated/sun/util/resources/CurrencyNames_lt_LT.java,
* generated/sun/util/resources/CurrencyNames_lv_LV.java,
* generated/sun/util/resources/CurrencyNames_pt.java,
* generated/sun/util/resources/CurrencyNames_sk_SK.java,
* generated/sun/util/resources/CurrencyNames_sr_RS.java,
* generated/sun/util/resources/CurrencyNames_sv.java,
* generated/sun/util/resources/CurrencyNames_tr_TR.java,
* generated/sun/util/resources/CurrencyNames_uk_UA.java,
* generated/sun/util/resources/CurrencyNames_zh_CN.java,
* generated/sun/util/resources/CurrencyNames_zh_TW.java,
* generated/sun/util/resources/LocaleNames.java,
* generated/sun/util/resources/LocaleNames_de.java,
* generated/sun/util/resources/LocaleNames_es.java,
* generated/sun/util/resources/LocaleNames_fr.java,
* generated/sun/util/resources/LocaleNames_it.java,
* generated/sun/util/resources/LocaleNames_ja.java,
* generated/sun/util/resources/LocaleNames_ko.java,
* generated/sun/util/resources/LocaleNames_nl.java,
* generated/sun/util/resources/LocaleNames_sv.java,
* generated/sun/util/resources/LocaleNames_zh.java,
* generated/sun/util/resources/LocaleNames_zh_TW.java:
Update existing files and add new ones (notably
the pt_BR localisation).
* scripts/update_generated.sh:
Script to automate updating the generated files.
author | Andrew John Hughes <gnu.andrew@redhat.com> |
---|---|
date | Tue, 03 Jan 2017 21:46:23 +0000 |
parents | 2854b9795934 |
children |
line wrap: on
line source
/* * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this * particular file as subject to the "Classpath" exception as provided * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ package java.lang; import java.io.*; /* java.lang.Process subclass in the UNIX environment. * * @author Mario Wolczko and Ross Knippel. * @author Konstantin Kladko (ported to Linux) */ final class UNIXProcess extends Process { private FileDescriptor stdin_fd; private FileDescriptor stdout_fd; private FileDescriptor stderr_fd; private int pid; private int exitcode; private boolean hasExited; private OutputStream stdin_stream; private InputStream stdout_stream; private InputStream stderr_stream; /* this is for the reaping thread */ private native int waitForProcessExit(int pid); private native int forkAndExec(byte[] prog, byte[] argBlock, int argc, byte[] envBlock, int envc, byte[] dir, boolean redirectErrorStream, FileDescriptor stdin_fd, FileDescriptor stdout_fd, FileDescriptor stderr_fd) throws IOException; /* In the process constructor we wait on this gate until the process */ /* has been created. Then we return from the constructor. */ /* fork() is called by the same thread which later waits for the process */ /* to terminate */ private static class Gate { private boolean exited = false; private IOException savedException; synchronized void exit() { /* Opens the gate */ exited = true; this.notify(); } synchronized void waitForExit() { /* wait until the gate is open */ boolean interrupted = false; while (!exited) { try { this.wait(); } catch (InterruptedException e) { interrupted = true; } } if (interrupted) { Thread.currentThread().interrupt(); } } void setException (IOException e) { savedException = e; } IOException getException() { return savedException; } } UNIXProcess(final byte[] prog, final byte[] argBlock, final int argc, final byte[] envBlock, final int envc, final byte[] dir, final boolean redirectErrorStream) throws IOException { stdin_fd = new FileDescriptor(); stdout_fd = new FileDescriptor(); stderr_fd = new FileDescriptor(); final Gate gate = new Gate(); /* * For each subprocess forked a corresponding reaper thread * is started. That thread is the only thread which waits * for the subprocess to terminate and it doesn't hold any * locks while doing so. This design allows waitFor() and * exitStatus() to be safely executed in parallel (and they * need no native code). */ java.security.AccessController.doPrivileged( new java.security.PrivilegedAction() { public Object run() { Thread t = new Thread("process reaper") { public void run() { try { pid = forkAndExec(prog, argBlock, argc, envBlock, envc, dir, redirectErrorStream, stdin_fd, stdout_fd, stderr_fd); } catch (IOException e) { gate.setException(e); /*remember to rethrow later*/ gate.exit(); return; } java.security.AccessController.doPrivileged( new java.security.PrivilegedAction() { public Object run() { stdin_stream = new BufferedOutputStream(new FileOutputStream(stdin_fd)); stdout_stream = new BufferedInputStream(new FileInputStream(stdout_fd)); stderr_stream = new FileInputStream(stderr_fd); return null; } }); gate.exit(); /* exit from constructor */ int res = waitForProcessExit(pid); synchronized (UNIXProcess.this) { hasExited = true; exitcode = res; UNIXProcess.this.notifyAll(); } } }; t.setDaemon(true); t.start(); return null; } }); gate.waitForExit(); IOException e = gate.getException(); if (e != null) throw new IOException(e.toString()); } public OutputStream getOutputStream() { return stdin_stream; } public InputStream getInputStream() { return stdout_stream; } public InputStream getErrorStream() { return stderr_stream; } public synchronized int waitFor() throws InterruptedException { while (!hasExited) { wait(); } return exitcode; } public synchronized int exitValue() { if (!hasExited) { throw new IllegalThreadStateException("process hasn't exited"); } return exitcode; } private static native void destroyProcess(int pid); public void destroy() { // There is a risk that pid will be recycled, causing us to // kill the wrong process! So we only terminate processes // that appear to still be running. Even with this check, // there is an unavoidable race condition here, but the window // is very small, and OSes try hard to not recycle pids too // soon, so this is quite safe. synchronized (this) { if (!hasExited) destroyProcess(pid); } try { stdin_stream.close(); stdout_stream.close(); stderr_stream.close(); } catch (IOException e) { // ignore } } /* This routine initializes JNI field offsets for the class */ private static native void initIDs(); static { initIDs(); } }