Hello community,
here is the log from the commit of package java-1_7_0-openjdk for openSUSE:13.1 checked in at 2013-11-01 07:55:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1/java-1_7_0-openjdk (Old)
and /work/SRC/openSUSE:13.1/.java-1_7_0-openjdk.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "java-1_7_0-openjdk"
Changes:
--------
--- /work/SRC/openSUSE:13.1/java-1_7_0-openjdk/java-1_7_0-openjdk.changes 2013-09-23 10:54:22.000000000 +0200
+++ /work/SRC/openSUSE:13.1/.java-1_7_0-openjdk.new/java-1_7_0-openjdk.changes 2013-11-01 07:55:16.000000000 +0100
@@ -1,0 +2,253 @@
+Tue Oct 29 09:53:04 UTC 2013 - mvyskocil@suse.com
+
+- refresh zero-powerpc patches
+ * java-1.7.0-openjdk-ppc-zero-hotspot.patch
+ * java-1.7.0-openjdk-ppc-zero-jdk.patch
+- re-add _constraints
+
+-------------------------------------------------------------------
+Tue Oct 22 13:29:45 UTC 2013 - mvyskocil@suse.com
+
+- Update to icedtea 2.4.3 (bnc#846999)
+ synchronized OpenJDK 7 support with the upstream u45 b31 tag
+* Security fixes
+ - S8006900, CVE-2013-3829: Add new date/time capability
+ - S8008589: Better MBean permission validation
+ - S8011071, CVE-2013-5780: Better crypto provider handling
+ - S8011081, CVE-2013-5772: Improve jhat
+ - S8011157, CVE-2013-5814: Improve CORBA portablility
+ - S8012071, CVE-2013-5790: Better Building of Beans
+ - S8012147: Improve tool support
+ - S8012277: CVE-2013-5849: Improve AWT DataFlavor
+ - S8012425, CVE-2013-5802: Transform TransformerFactory
+ - S8013503, CVE-2013-5851: Improve stream factories
+ - S8013506: Better Pack200 data handling
+ - S8013510, CVE-2013-5809: Augment image writing code
+ - S8013514: Improve stability of cmap class
+ - S8013739, CVE-2013-5817: Better LDAP resource management
+ - S8013744, CVE-2013-5783: Better tabling for AWT
+ - S8014085: Better serialization support in JMX classes
+ - S8014093, CVE-2013-5782: Improve parsing of images
+ - S8014098: Better profile validation
+ - S8014102, CVE-2013-5778: Improve image conversion
+ - S8014341, CVE-2013-5803: Better service from Kerberos servers
+ - S8014349, CVE-2013-5840: (cl) Class.getDeclaredClass problematic in some class loader configurations
+ - S8014530, CVE-2013-5825: Better digital signature processing
+ - S8014534: Better profiling support
+ - S8014987, CVE-2013-5842: Augment serialization handling
+ - S8015614: Update build settings
+ - S8015731: Subject java.security.auth.subject to improvements
+ - S8015743, CVE-2013-5774: Address internet addresses
+ - S8016256: Make finalization final
+ - S8016653, CVE-2013-5804: javadoc should ignore ignoreable characters in names
+ - S8016675, CVE-2013-5797: Make Javadoc pages more robust
+ - S8017196, CVE-2013-5850: Ensure Proxies are handled appropriately
+ - S8017287, CVE-2013-5829: Better resource disposal
+ - S8017291, CVE-2013-5830: Cast Proxies Aside
+ - S8017298, CVE-2013-4002: Better XML support
+ - S8017300, CVE-2013-5784: Improve Interface Implementation
+ - S8017505, CVE-2013-5820: Better Client Service
+ - S8019292: Better Attribute Value Exceptions
+ - S8019617: Better view of objects
+ - S8020293: JVM crash
+ - S8021275, CVE-2013-5805: Better screening for ScreenMenu
+ - S8021282, CVE-2013-5806: Better recycling of object instances
+ - S8021286: Improve MacOS resourcing
+ - S8021290, CVE-2013-5823: Better signature validation
+ - S8022931, CVE-2013-5800: Enhance Kerberos exceptions
+ - S8022940: Enhance CORBA translations
+ - S8023683: Enhance class file parsing
+* Backports
+ - S6614237: missing codepage Cp290 at java runtime
+ - S8005932: Java 7 on mac os x only provides text clipboard formats
+ - S8014046: (process) Runtime.exec(String) fails if command contains spaces [win]
+ - S8015144: Performance regression in ICU OpenType Layout library
+ - S8015965: (process) Typo in name of property to allow ambiguous commands
+ - S8015978: Incorrect transformation of XPath expression "string(-0)"
+ - S8016357: Update hotspot diagnostic class
+ - S8019584: javax/management/remote/mandatory/loading/MissingClassTest.java failed in nightly against jdk7u45: java.io.InvalidObjectException: Invalid notification: null
+ - S8019969: nioNetworkChannelInet6/SetOptionGetOptionTestInet6 test case crashes
+ - S8020032: 7u fastdebug doesn't generate fastdebuginfo file
+ - S8020085: Linux ARM build failure for 7u45
+ - S8020088: Increment minor version of HSx for 7u45 and initialize the build number
+ - S8020551: increment hsx build to b03 for 7u45-b03
+ - S8020943: Memory leak when GCNotifier uses create_from_platform_dependent_str()
+ - S8021287: Improve MacOS resourcing
+ - S8021355: REGRESSION: Five closed/java/awt/SplashScreen tests fail since 7u45 b01 on Linux, Solaris
+ - S8021360: object not exported" on start of JMXConnectorServer for RMI-IIOP protocol with security manager
+ - S8021366: java_util/Properties/PropertiesWithOtherEncodings fails during 7u45 nightly testing
+ - S8021577: JCK test api/javax_management/jmx_serial/modelmbean/ModelMBeanNotificationInfo/serial/index.html#Input has failed since jdk 7u45 b01
+ - S8021899: Re-adjust fix of # 8020498 in 7u45 after mergeing 7u40
+ - S8021901: Increment hsx build to b05 for 7u45-b05
+ - S8021933: Add extra check for fix # JDK-8014530
+ - S8021969: The index_AccessAllowed jnlp can not load successfully with exception thrown in the log.
+ - S8022066: Evaluation of method reference to signature polymorphic method crashes VM
+ - S8022086: Fixing licence of newly added files
+ - S8022254: Remove incorrect jdk7u45-b05 tag from jdk7u-cpu forest
+ - S8022661: InetAddress.writeObject() performs flush() on object output stream
+ - S8022682: Supporting XOM
+ - S8022808: Kitchensink hangs on macos
+ - S8022856: 7u45 l10n resource file translation update
+ - S8023323: Increment hsx build to b06 for 7u45-b08
+ - S8023457: Event based tracing framework needs a mutex for thread groups
+ - S8023478: Test fails with HS crash in GCNotifier.
+ - S8023741: Increment hsx 24.45 build to b07 for 7u45-b09
+ - S8023771: when USER_RELEASE_SUFFIX is set in order to add a string to java -version, build number in the bundles names should not be changed to b00
+ - S8023888: Increment hsx 24.45 build to b08 for 7u45-b10
+ - S8023964: java/io/IOException/LastErrorString.java should be @ignore-d
+ - S8024369: Increment build # of hs24.0 to b57 for 7u40-b61 psu
+ - S8024668: api/java_nio/charset/Charset/index.html#Methods JCK-runtime test fails with 7u45 b11
+ - S8024697: Fix for 8020983 causes Xcheck:jni warnings
+ - S8024863: X11: Support GNOME Shell as mutter
+ - S8024883: (se) SelectableChannel.register throws NPE if fd >= 64k (lnx)
+ - S8025128: File.createTempFile fails if prefix is absolute path
+ - S8025170: jdk7u51 7u-1-prebuild is failing since 9/19
+* Bug fixes
+ - PR1400: Menu of maximized AWT window not working in Mate
+
+-------------------------------------------------------------------
+Wed Sep 25 07:44:27 UTC 2013 - mvyskocil@suse.com
+
+- Update to icedtea 2.4.2
+* System LCMS 2 support again enabled by default, requiring 2.5 or above.
+* OpenJDK
+ - S7122222: GC log is limited to 2G for 32-bit
+ - S7162400: Intermittent java.io.IOException: Bad file number during HotSpotVirtualMachine.executeCommand
+ - S7165807: Non optimized initialization of NSS crypto library leads to scalability issues
+ - S7199324: IPv6: JMXConnectorServer.getConnectionIDs() return IDs contradicting to address grammar
+ - S8001345: VM crashes with assert(n->outcnt() != 0 || C->top() == n || n->is_Proj()) failed: No dead instructions after post-alloc
+ - S8001424: G1: Rename certain G1-specific flags
+ - S8001425: G1: Change the default values for certain G1 specific flags
+ - S8004859: Graphics.getClipBounds/getClip return difference nonequivalent bounds, depending from transform
+ - S8005019: JTable passes row index instead of length when inserts selection interval
+ - S8005194: [parfait] #353 sun/awt/image/jpeg/imageioJPEG.c Memory leak of pointer 'scale' allocated with calloc()
+ - S8006941: [macosx] Deadlock in drag and drop
+ - S8007898: Incorrect optimization of Memory Barriers in Matcher::post_store_load_barrier()
+ - S8009168: accessibility.properties syntax issue
+ - S8009985: [parfait] Uninitialised variable at jdk/src/solaris/native/com/sun/management/UnixOperatingSystem_md.c
+ - S8011064: Some tests have failed with SIGSEGV on arm-hflt on build b82
+ - S8011569: ARM -- avoid native stack walking
+ - S8011760: assert(delta != 0) failed: dup pointer in MemBaseline::malloc_sort_by_addr
+ - S8012144: multiple SIGSEGVs fails on staxf
+ - S8012156: tools/javac/file/zip/T6865530.java fails for win32/64
+ - S8012241: NMT huge memory footprint, it usually leads to OOME
+ - S8012366: Fix for 8007815 breaks down when only building OpenJDK (without deploy and install forests)
+ - S8013546: compiler/8011901/Test8011901.java fails with CompilationError: Compilation failed
+ - S8013719: Increment build # of hs23.21 to b02
+ - S8013791: G1: G1CollectorPolicy::initialize_flags() may set min_alignment > max_alignment
+ - S8014264: The applet pathguy_TimeDead throws java.lang.NullPointerException in java console once click drop-down check box.
+ - S8014312: Fork hs23.25 hsx from hs23.21 for jdk7u25 and reinitialize build number
+ - S8014805: NPE is thrown during certpath validation if certificate does not have AuthorityKeyIdentifier extension
+ - S8014850: Third Party License Readme updates for 7u40
+ - S8014925: Disable sun.reflect.Reflection.getCallerClass(int) with a temporary switch to re-enable it
+ - S8015237: Parallelize string table scanning during strong root processing
+ - S8015411: Bump the hsx build number for 7u21-b50 for customer
+ - S8015441: runThese crashed with assert(opcode == Op_ConP || opcode == Op_ThreadLocal || opcode == Op_CastX2P ..) failed: sanity
+ - S8015576: CMS: svc agent throws java.lang.RuntimeException: No type named "FreeList" in database
+ - S8015668: overload resolution: performance regression in JDK 7
+ - S8015884: runThese crashed with SIGSEGV, hs_err has an error instead of stacktrace
+ - S8016074: NMT: assertion failed: assert(thread->thread_state() == from) failed: coming from wrong thread state
+ - S8016102: Increment build # of hs23.25 to b02 for 7u25-b31 psu
+ - S8016131: nsk/sysdict/vm/stress/chain tests crash the VM in 'entry_frame_is_first()'
+ - S8016133: Regression: diff. behavior with user-defined SAXParser
+ - S8016157: During CTW: C2: assert(!def_outside->member(r)) failed: Use of external LRG overlaps the same LRG defined in this block
+ - S8016331: Minor issues in event tracing metadata
+ - S8016648: FEATURE_SECURE_PROCESSING set to true or false causes SAXParseException to be thrown
+ - S8016734: Remove extra code due to duplicated push
+ - S8016737: After clicking on "Print UNCOLLATED" button, the print out come in order 'Page 1', 'Page 2', 'Page 1'
+ - S8016740: assert in GC_locker from PSOldGen::expand with -XX:+PrintGCDetails and Verbose
+ - S8016767: Provide man pages generated from DARB for OpenJDK
+ - S8017070: G1: assert(_card_counts[card_num] <= G1ConcRSHotCardLimit) failed
+ - S8017159: Unexclude sun/tools/JMAP/Basic.sh test
+ - S8017173: XMLCipher with RSA_OAEP Key Transport algorithm can't be instantiated
+ - S8017174: NPE when using Logger.getAnonymousLogger or LogManager.getLogManager().getLogger
+ - S8017189: [macosx] AWT program menu disabled on Mac
+ - S8017252: new hotspot build - hs24-b51
+ - S8017478: Kitchensink crashed with SIGSEGV in BaselineReporter::diff_callsites
+ - S8017483: G1 tests fail with native OOME on Solaris x86 after HeapBaseMinAddress has been increased
+ - S8017510: Add a regression test for 8005956
+ - S8017566: Backout 8000450 - Cannot access to com.sun.corba.se.impl.orb.ORBImpl
+ - S8017588: SA: jstack -l throws UnalignedAddressException while attaching to core file for java that was started with CMS GC
+ - S8019155: Update makefiles with correct jfr packages
+ - S8019201: Regression: java.awt.image.ConvolveOp throws java.awt.image.ImagingOpException
+ - S8019236: [macosx] Add javadoc to the handleWindowFocusEvent in CEmbeddedFrame
+ - S8019265: [macosx] apple.laf.useScreenMenuBar regression comparing with jdk6
+ - S8019298: new hotspot build - hs24-b52
+ - S8019381: HashMap.isEmpty is non-final, potential issues for get/remove
+ - S8019541: 7u40 l10n resource file translation update
+ - S8019587: [macosx] Possibility to set the same frame for the different screens
+ - S8019625: Test compiler/8005956/PolynomialRoot.java timeouts on Solaris SPARCs
+ - S8019628: [macosx] closed/java/awt/Modal/BlockedMouseInputTest/BlockedMouseInputTest.html failed since 7u40b30 on MacOS
+ - S8019826: Test com/sun/management/HotSpotDiagnosticMXBean/SetVMOption.java fails with NPE
+ - S8019933: new hotspot build - hs24-b53
+ - S8019979: Replace CheckPackageAccess test with better one from closed repo
+ - S8020038: [macosx] Incorrect usage of invokeLater() and likes in callbacks called via JNI from AppKit thread
+ - S8020054: (tz) Support tzdata2013d
+ - S8020155: PSR:PERF G1 not collecting old regions when humongous allocations interfer
+ - S8020215: Different execution plan when using JIT vs interpreter
+ - S8020228: Restore the translated version of logging_xx.properties
+ - S8020298: [macosx] Incorrect merge in the lwawt code
+ - S8020319: Update Japanese man pages for 7u40
+ - S8020371: [macosx] applets with Drag and Drop fail with IllegalArgumentException
+ - S8020381: new hotspot build - hs24-b54
+ - S8020425: Product options incorrectly removed in minor version
+ - S8020430: NullPointerException in xml sqe nightly result on 2013-07-12
+ - S8020433: Crash when using -XX:+RestoreMXCSROnJNICalls
+ - S8020498: Crash when both libnet.so and libmawt.so are loaded
+ - S8020525: Increment build # of hs23.25 to b03 for 7u25-b34 psu
++++ 56 more lines (skipped)
++++ between /work/SRC/openSUSE:13.1/java-1_7_0-openjdk/java-1_7_0-openjdk.changes
++++ and /work/SRC/openSUSE:13.1/.java-1_7_0-openjdk.new/java-1_7_0-openjdk.changes
Old:
----
23ae4e0e0cce.tar.gz
5be6b670d08b.tar.gz
5f53e7717116.tar.gz
65d95818d79e.tar.gz
91c95fd8eea8.tar.gz
ae86c6974e8e.tar.gz
c0e48fdfb695.tar.gz
icedtea-2.4.1.tar.gz
icedtea-2.4.1.tar.gz.sig
jamvm-7c8dceb90880616b7dd670f257961a1f5f371ec3.tar.gz
java-1.7.0-openjdk-arm-fixes.patch
java-1.7.0-openjdk-bitmap.patch
java-1.7.0-openjdk-fork.patch
java-1.7.0-openjdk-size_t.patch
openjdk-7-src-b147-awt-crasher.patch
New:
----
3c8eb52a32ea.tar.gz
652eb396f959.tar.gz
7958751eb9ef.tar.gz
8ed5df839fbc.tar.gz
8f220f7b51c7.tar.gz
PStack-808293.patch
RH661505-toBeReverted.patch
abrt_friendly_hs_log_jdk7.patch
b59e02d9e72b.tar.gz
e2f5917da3c1.tar.gz
gstackbounds.patch
icedtea-2.4.3.tar.xz
icedtea-2.4.3.tar.xz.sig
jamvm-ac22c9948434e528ece451642b4ebde40953ee7e.tar.gz
java-1.7.0-openjdk-freetype-check-fix.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ java-1_7_0-openjdk.spec ++++++
--- /var/tmp/diff_new_pack.RDWi8j/_old 2013-11-01 07:55:18.000000000 +0100
+++ /var/tmp/diff_new_pack.RDWi8j/_new 2013-11-01 07:55:18.000000000 +0100
@@ -43,7 +43,7 @@
# If runtests is 0 test suites will not be run.
%define runtests 0
-%define icedtea_version 2.4.1
+%define icedtea_version 2.4.3
%define hg_tag icedtea-{icedtea_version}-branchpoint
%define openjdkdate 27_jun_2011
@@ -132,7 +132,7 @@
Group: Development/Languages/Java
Url: http://icedtea.classpath.org
-Source0: http://icedtea.wildebeest.org/download/source/icedtea-%{icedtea_version}.tar.gz
+Source0: http://icedtea.wildebeest.org/download/source/icedtea-%{icedtea_version}.tar.xz
# Gnome access bridge
#Source9: %{accessurl}%{accessmajorver}/java-access-bridge-%{accessver}.tar.bz2
@@ -143,22 +143,22 @@
Source3: mauve-%{mauvedate}.tar.gz
Source4: mauve_tests
-Source5: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/archive/ae86c697...
-Source6: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/corba/archive/23...
-Source7: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jaxp/archive/5be...
-Source8: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jaxws/archive/c0...
-Source9: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk/archive/65d9...
-Source10: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/langtools/archiv...
-Source11: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/hotspot/archive/...
+Source5: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/archive/e2f5917d...
+Source6: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/corba/archive/8e...
+Source7: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jaxp/archive/8f2...
+Source8: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jaxws/archive/65...
+Source9: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk/archive/7958...
+Source10: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/langtools/archiv...
+Source11: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/hotspot/archive/...
# zero compatible hotspot
#TODO: not needed Source12: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.1/hotspot/archive/...
-Source13: http://icedtea.classpath.org/download/drops/jamvm/jamvm-7c8dceb90880616b7dd6...
+Source13: http://icedtea.classpath.org/download/drops/jamvm/jamvm-ac22c9948434e528ece4...
#Source1000: java-1_7_0-openjdk-rpmlintrc
# those properties are for opeSUSE only
Source1001: fontconfig.SuSE.properties
-Source2000: icedtea-%{icedtea_version}.tar.gz.sig
+Source2000: icedtea-%{icedtea_version}.tar.xz.sig
Source2001: java-1_7_0-openjdk.keyring
# RPM/distribution specific patches
@@ -185,27 +185,30 @@
# OpenJDK specific patches
#
-# Type fixing for s390
-Patch101: java-1.7.0-openjdk-bitmap.patch
-Patch102: java-1.7.0-openjdk-size_t.patch
-
-# Patches for Arm
-Patch103: java-1.7.0-openjdk-arm-fixes.patch
-
# Patch for PPC/PPC64
-Patch105: java-1.7.0-openjdk-ppc-zero-jdk.patch
-Patch106: java-1.7.0-openjdk-ppc-zero-hotspot.patch
+Patch104: java-1.7.0-openjdk-ppc-zero-jdk.patch
+Patch105: java-1.7.0-openjdk-ppc-zero-hotspot.patch
+
+Patch106: java-1.7.0-openjdk-freetype-check-fix.patch
# Patches for AArch64
-Patch107: java-1.7.0-openjdk-fork.patch
Patch108: java-1.7.0-openjdk-zero-arch.patch
Patch109: java-1.7.0-openjdk-makefiles-zero.patch
+# allow to create hs_pid.log in tmp (in 700 permissions) if working directory is unwritable
+Patch200: abrt_friendly_hs_log_jdk7.patch
+
#
# Optional component packages
#
+#Workaround RH902004
+Patch402: gstackbounds.patch
+Patch403: PStack-808293.patch
+Patch404: RH661505-toBeReverted.patch
+# End of tmp patches
+
# SUSE patches - from java-1_6_0-openjdk package
Patch1000: java-1_7_0-openjdk-suse-desktop-files.patch
@@ -230,6 +233,7 @@
BuildRequires: desktop-file-utils
BuildRequires: giflib-devel
BuildRequires: jpackage-utils >= 1.7.5
+BuildRequires: krb5-devel
BuildRequires: libjpeg-devel
# since 2.4.1 release, newest lcms2 is needed
BuildRequires: liblcms2-devel >= 2.5
@@ -507,7 +511,6 @@
--with-parallel-jobs="${NUM_PROC}" \
%endif
--with-pkgversion="suse-%{release}-%{_arch}" \
- --disable-bootstrap \
--with-jdk-home="/etc/alternatives/java_sdk/" \
%if %{with_pulseaudio}
--enable-pulse-java \
@@ -538,7 +541,7 @@
# export an another patches dir, as this will not be in chroot, which is the
# reason I use quilt - to be able edit patches directly in chroot
function qpatch() {
- quilt import ${1} ${2}
+ quilt import "${@}"
quilt push
}
@@ -551,25 +554,26 @@
# qpatch -p0 %{PATCH6}
# % endif
-# Typo fixes
-qpatch -p0 %{PATCH101}
-qpatch -p0 %{PATCH102}
-
-# Arm fixes
-qpatch -p0 %{PATCH103}
+qpatch -p0 %{PATCH106}
+qpatch -p0 %{PATCH200}
%ifarch ppc ppc64
# PPC fixes
+qpatch -p0 %{PATCH104}
qpatch -p0 %{PATCH105}
-qpatch -p0 %{PATCH106}
%endif
# AArch64 fixes
-qpatch -p1 %{PATCH107}
qpatch -p0 %{PATCH108}
qpatch -p0 %{PATCH109}
+%ifarch %{jit_arches}
+qpatch -p0 %{PATCH402}
+qpatch -p0 %{PATCH403}
+%endif
+qpatch -p0 -R %{PATCH404}
+
#SUSE specific fixes
qpatch -p1 %{PATCH1002}
++++++ 23ae4e0e0cce.tar.gz -> 3c8eb52a32ea.tar.gz ++++++
++++ 660491 lines of diff (skipped)
++++++ jamvm-7c8dceb90880616b7dd670f257961a1f5f371ec3.tar.gz -> 652eb396f959.tar.gz ++++++
++++ 541782 lines of diff (skipped)
++++++ 23ae4e0e0cce.tar.gz -> 7958751eb9ef.tar.gz ++++++
/work/SRC/openSUSE:13.1/java-1_7_0-openjdk/23ae4e0e0cce.tar.gz /work/SRC/openSUSE:13.1/.java-1_7_0-openjdk.new/7958751eb9ef.tar.gz differ: char 5, line 1
++++++ 23ae4e0e0cce.tar.gz -> 8ed5df839fbc.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/corba-23ae4e0e0cce/.hgtags new/corba-8ed5df839fbc/.hgtags
--- old/corba-23ae4e0e0cce/.hgtags 2013-07-01 16:21:59.000000000 +0200
+++ new/corba-8ed5df839fbc/.hgtags 2013-10-16 16:17:36.000000000 +0200
@@ -296,7 +296,9 @@
b2adfd931a2504948d4fee780e4175122be10484 jdk7u21-b10
61e2e2d9cfcea20132b50d8fb7ead66a8a373db7 jdk7u21-b11
3c774492beaaff241c654add2c4e683b9ff002f2 jdk7u21-b30
+fa2a377ce52dfa88fca858d735d78b53f2b5b754 jdk7u21-b50
fa2a377ce52dfa88fca858d735d78b53f2b5b754 jdk7u21-b12
+c0231d18f496dd0bc133e128f6b667a4d8f569a5 jdk7u21-b31
3d0f2d5b1866860f7089b51cca8ca0ca41c04d9c jdk7u25-b01
cdbafc5080eeb8ea3fec9fe7d071e0bf96635581 jdk7u25-b02
2057de7ee6b17ab3335ec6cd5730f88f4cfe9502 jdk7u25-b03
@@ -308,10 +310,29 @@
161ec4dd450d59e1b8ad136db231925c97ff6205 jdk7u25-b09
c9da98e82bb006dccd94a50871d6cdb66fa2d7e7 jdk7u25-b10
109386df5b8e259d0af802217769a3c448404e49 jdk7u25-b11
+38282b734daefcbb8155b7d7ef9664130330ed14 jdk7u14-b16
+8b1d77697ca4d2a9c29d67fd2ff03aded9b06012 jdk7u14-b17
+862b43d26e03bbceb3465f93354860e0d17eb324 jdk7u14-b18
+bfbaab73969d4d978d0280d6ad51bac8c47dbaf8 jdk7u14-b19
+bfbaab73969d4d978d0280d6ad51bac8c47dbaf8 jdk7u14-b19
+a921b45a1f9086a7d598a76f920639050386f996 jdk7u14-b19
+54320e5d9da60df24f0e2c57c011809911dc06e1 jdk7u14-b20
+fb590ca4de9aaf1f6bca945be040dffc55b5e8d2 jdk7u14-b21
+e5d89aa2c1a11dba841a646858dda9ea18dc8f57 jdk7u14-b22
+d85df1552f877a1cc51f43bc07a42a0c48f18e0b jdk7u40-b23
+d3ab3b19caa02ee85359cfe07b6e0b74eb7b3d74 jdk7u40-b24
+abfc54516d0b7f9aed34ef175f6bbb93fda4cbb3 jdk7u40-b25
+be9099c54a35c00d0dfe6beeed8ea5d4ab3cd3fe jdk7u40-b26
+f745eeabb0eaabe8c0835c175b31f1e1c0f00bd4 jdk7u40-b27
+c8b9201f88f4ce417df7a40efcb7fef656d94512 jdk7u40-b28
+1ad0a5a3f7b1e9d95670d733d7e70714050ba6bf jdk7u40-b29
ef8e6f8305d524f3b448a85f901aadf1adc81fc0 jdk7u25-b12
eca480919c71072a31f62a61cb3aad30677007e3 jdk7u25-b13
577c4dd1a6e9bc1bb2c2e5d5ecbab8eacb4121af jdk7u25-b14
4fde7ac2ecf4b170022ebbf8a961e6dbb229ccab jdk7u25-b15
+ddff7b2f69faaa8883e3986447daeab289f25e03 jdk7u25-b31
+9e2247c5d4b82798d393daf4e50cbadcaf0dc844 jdk7u25-b33
+1e888b6e1fb63cff9ea120bc7b0667578d82823b jdk7u25-b34
f4bec833a24b20f5ae770d0650350fc8950c9dc0 jdk7u25-b30
65d0e39500d56c6ea1fd52abbd1bef7966c3e87f jdk7u25-b16
d77153cbe030f91f432fae7c356cf6b5aab12a12 jdk7u25-b32
@@ -333,3 +354,40 @@
c8b9201f88f4ce417df7a40efcb7fef656d94512 jdk7u40-b28
1ad0a5a3f7b1e9d95670d733d7e70714050ba6bf jdk7u40-b29
651dcadbd9774165e017f8b7d1bde7d7d280ae1d jdk7u40-b30
+23ae4e0e0cce13779c531a704bf95fda1764882b icedtea-2.4.1
+3d2b811b8a798ff3b619f8330b08f551f7fdfd80 jdk7u40-b31
+c5f85903c49aa716ee3cb93361dd60a3e88d866d jdk7u40-b32
+1b7fbfdc31b859097d6a365ad0ba0e8ef92b4063 jdk7u40-b33
+ddd543ddf33017a15623cdf6908ae4ef2958e24e jdk7u40-b34
+fab3339a833da9631ead479621edcf6df2df457d jdk7u40-b35
+cd3871b1516988ea4a3099d6e1886abe2e74e771 jdk7u40-b36
+dc9a63376b39223bfb612d9e8efd275023de6399 jdk7u40-b37
+8391dff270bbf75dc434e53ed68993ab833475e8 jdk7u40-b38
+d7c73fd53c84cbb4333559cf788e554a2ef9326c jdk7u40-b39
+a91b57bf60bd982814bc1616ea46a1069416f5e4 jdk7u40-b40
+acb0571052b8dbef036fc50235ef95c0a46cff6b jdk7u40-b41
+b4a480a039bc19b27bfb5fcbbbf75e651d2718b7 jdk7u40-b42
+e29ea0b297e519010e661603a07bb8d48fa904a2 jdk7u40-b43
+08737d863a7aa5eb39374b26c9585e1770affe92 jdk7u40-b60
+5ea58899ae9f26e8ad21d1be15f73d426e2b5fb1 icedtea-2.4.2
+504acad3372298a79c231696d805f00f3beb2362 jdk7u40-b61
+c9c225fb19c3aa6e1242c051833ecc69d00b7aa1 jdk7u40-b62
+4f54264ca4df2fc50fbb9bb2654dad97776d10ac jdk7u45-b01
+1a1a1dedf437c50797a49c21a12161a79c761757 jdk7u45-b02
+3a2cca8c2f209b533af6c1201cc8aee43628e578 jdk7u45-b03
+4f4f7869bd6585042ad9596426dd1aa0829b8e98 jdk7u45-b04
+faee62d13040eae3d081f0383843a391ceef1edd jdk7u45-b05
+435dd0e1ab9ec9cbc83dc5ed260886f6becbef25 jdk7u45-b06
+2e19615f6045c3f39e39c56c485f7bc1df97e2ce jdk7u45-b07
+771c5c869d16d2da5668e412f505ad75f8f610c1 jdk7u45-b08
+a89d69bef3614f618843f5e9a495b12d13597851 jdk7u45-b09
+fd8a2041b75c4f712f2b08d627388d44a0cf2ee7 jdk7u45-b10
+55e0d3d9514343f380336b68aa8691a89b2e710b jdk7u45-b11
+336566c2905a49fc9a6f90f5ecd30517cfcaefff jdk7u45-b12
+6cadc3dd82a423f6c24460bb1997c0f39159dd93 jdk7u45-b13
+43e22471d0c29451f282b162864c2d3e494d5871 jdk7u45-b14
+3d7a52de59f03589d7a9334a6895063ff3331bfc jdk7u45-b15
+b1f069eb48edfa6fb7428dc045a53e287215ef4a jdk7u45-b16
+8b8793f06c56e343962b473bc0fb79f23b8be734 jdk7u45-b17
+80f65a8f58500ef5d93ddf4426d9c1909b79fadf jdk7u45-b18
+a15e4a54504471f1e34a494ed66235870722a0f5 jdk7u45-b30
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/corba-23ae4e0e0cce/THIRD_PARTY_README new/corba-8ed5df839fbc/THIRD_PARTY_README
--- old/corba-23ae4e0e0cce/THIRD_PARTY_README 2013-07-01 16:21:59.000000000 +0200
+++ new/corba-8ed5df839fbc/THIRD_PARTY_README 2013-10-16 16:17:36.000000000 +0200
@@ -1912,6 +1912,35 @@
-------------------------------------------------------------------------------
+%% This notice is provided with respect to Sparkle v.1.5,
+which is included with JRE 7 on Mac OS X.
+
+--- begin of LICENSE ---
+
+Copyright (c) 2012 Sparkle.org and Andy Matuschak
+
+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.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
%% Portions licensed from Taligent, Inc.
-------------------------------------------------------------------------------
@@ -3169,12 +3198,12 @@
%% This notice is provided with respect to the following which is
included with JRE 7, JDK 7, and OpenJDK 7, except where noted:
- Apache Derby 10.8.1.2 [included with JDK 7 only]
+ Apache Derby 10.8.3.0 [included with JDK 7 only]
Apache Jakarta BCEL 5.2
Apache Jakarta Regexp 1.4
Apache Santuario XMLSec-Java 1.4.2
Apache Xalan-Java 2.7.1
- Apache Xerces2 Java 2.10.0
+ Apache Xerces2 Java 2.11.0
Apache XML Resolver 1.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/corba-23ae4e0e0cce/make/common/shared/Defs-java.gmk new/corba-8ed5df839fbc/make/common/shared/Defs-java.gmk
--- old/corba-23ae4e0e0cce/make/common/shared/Defs-java.gmk 2013-07-01 16:21:59.000000000 +0200
+++ new/corba-8ed5df839fbc/make/common/shared/Defs-java.gmk 2013-10-16 16:17:36.000000000 +0200
@@ -81,7 +81,7 @@
ifeq ($(ARCH_DATA_MODEL), 32)
JAVAC_JVM_FLAGS += -J-XX:ThreadStackSize=768
else
- JAVAC_JVM_FLAGS += -J-XX:ThreadStackSize=1536
+ JAVAC_JVM_FLAGS += -J-XX:ThreadStackSize=1664
endif
JAVAC_JVM_FLAGS += $(JAVA_TOOLS_FLAGS:%=-J%)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/corba-23ae4e0e0cce/make/common/shared/Platform.gmk new/corba-8ed5df839fbc/make/common/shared/Platform.gmk
--- old/corba-23ae4e0e0cce/make/common/shared/Platform.gmk 2013-07-01 16:21:59.000000000 +0200
+++ new/corba-8ed5df839fbc/make/common/shared/Platform.gmk 2013-10-16 16:17:36.000000000 +0200
@@ -154,7 +154,7 @@
# Arch and OS name/version
mach := $(shell uname -m)
ifneq (,$(wildcard /usr/bin/dpkg-architecture))
- mach := $(shell (dpkg-architecture -qDEB_BUILD_ARCH_CPU 2>/dev/null || echo $(mach)) | sed 's/powerpc$$/ppc/;s/hppa/parisc/')
+ mach := $(shell (dpkg-architecture -qDEB_HOST_ARCH_CPU 2>/dev/null || echo $(mach)) | sed 's/arm64/aarch64/;s/powerpc$$/ppc/;s/hppa/parisc/')
endif
archExpr = case "$(mach)" in \
i[3-9]86) \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/corba-23ae4e0e0cce/src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_ja.properties new/corba-8ed5df839fbc/src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_ja.properties
--- old/corba-23ae4e0e0cce/src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_ja.properties 2013-07-01 16:21:59.000000000 +0200
+++ new/corba-8ed5df839fbc/src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_ja.properties 2013-10-16 16:17:36.000000000 +0200
@@ -60,12 +60,12 @@
servertool.getserverid1=applicationName\u306E\u30B5\u30FC\u30D0\u30FCID\u3092\u8FD4\u3057\u307E\u3059
servertool.getserverid2=\tapplicationName {0}\u306E\u30B5\u30FC\u30D0\u30FCID\u306F{1}\u3067\u3059
-servertool.list=\n\t\u30EA\u30B9\u30C8\u3092\u8868\u793A\u3057\u307E\u3059\n
+servertool.list=\n\tlist\n
servertool.list1=\u767B\u9332\u3055\u308C\u305F\u3059\u3079\u3066\u306E\u30B5\u30FC\u30D0\u30FC\u306E\u30EA\u30B9\u30C8\u3092\u8868\u793A\u3057\u307E\u3059
servertool.list2=\n\t\u30B5\u30FC\u30D0\u30FCID\t\u30B5\u30FC\u30D0\u30FC\u306E\u30AF\u30E9\u30B9\u540D\t\t\u30B5\u30FC\u30D0\u30FC\u30FB\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\n\t---------\t----------------\t\t----------------------\n
-servertool.listactive=\n\t\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30B5\u30FC\u30D0\u30FC\u306E\u30EA\u30B9\u30C8\u3092\u8868\u793A\u3057\u307E\u3059
+servertool.listactive=\n\tlistactive
servertool.listactive1=\u73FE\u5728\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30B5\u30FC\u30D0\u30FC\u306E\u30EA\u30B9\u30C8\u3092\u8868\u793A\u3057\u307E\u3059
-servertool.listappnames=\tapplicationNames\u306E\u30EA\u30B9\u30C8\u3092\u8868\u793A\u3057\u307E\u3059\n
+servertool.listappnames=\tlistappnames\n
servertool.listappnames1=\u73FE\u5728\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u308BapplicationNames\u306E\u30EA\u30B9\u30C8\u3092\u8868\u793A\u3057\u307E\u3059
servertool.listappnames2=\u73FE\u5728\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u308B\u30B5\u30FC\u30D0\u30FCapplicationNames:
@@ -76,7 +76,7 @@
servertool.startserver1=\u767B\u9332\u3055\u308C\u305F\u30B5\u30FC\u30D0\u30FC\u3092\u8D77\u52D5\u3057\u307E\u3059
servertool.startserver2=\t\u30B5\u30FC\u30D0\u30FC\u306E\u8D77\u52D5\u306B\u6210\u529F\u3057\u307E\u3057\u305F\u3002
-servertool.quit=\n\t\u7D42\u4E86\u3057\u307E\u3059\n
+servertool.quit=\n\tquit\n
servertool.quit1=\u3053\u306E\u30C4\u30FC\u30EB\u3092\u7D42\u4E86\u3057\u307E\u3059
servertool.help=\thelp\n\t\u307E\u305F\u306F\n\thelp <command name>\n
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/corba-23ae4e0e0cce/src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_ko.properties new/corba-8ed5df839fbc/src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_ko.properties
--- old/corba-23ae4e0e0cce/src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_ko.properties 2013-07-01 16:21:59.000000000 +0200
+++ new/corba-8ed5df839fbc/src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_ko.properties 2013-10-16 16:17:36.000000000 +0200
@@ -26,7 +26,7 @@
orbd.usage=\uC0AC\uC6A9\uBC95: {0} <options> \n\n\uC5EC\uAE30\uC11C <options>\uB294 \uB2E4\uC74C\uACFC \uAC19\uC2B5\uB2C8\uB2E4.\n -port ORBD\uAC00 \uC2DC\uC791\uB418\uC5B4\uC57C \uD558\uB294 \uD65C\uC131 \uD3EC\uD2B8\uB85C, \uAE30\uBCF8\uAC12\uC740 1049\uC785\uB2C8\uB2E4(\uC120\uD0DD \uC0AC\uD56D).\n -defaultdb ORBD \uD30C\uC77C\uC758 \uB514\uB809\uD1A0\uB9AC\uB85C, \uAE30\uBCF8\uAC12\uC740 "./orb.db"\uC785\uB2C8\uB2E4(\uC120\uD0DD \uC0AC\uD56D).\n -serverid ORBD\uC758 \uC11C\uBC84 ID\uB85C, \uAE30\uBCF8\uAC12\uC740 1 \uC785\uB2C8\uB2E4(\uC120\uD0DD \uC0AC\uD56D).\n -ORBInitialPort \uCD08\uAE30 \uD3EC\uD2B8\uC785\uB2C8\uB2E4(\uD544\uC218).\n -ORBInitialHost \uCD08\uAE30 HostName\uC785\uB2C8\uB2E4(\uD544\uC218).\n
servertool.usage=\uC0AC\uC6A9\uBC95: {0} <options> \n\n\uC5EC\uAE30\uC11C <options>\uB294 \uB2E4\uC74C\uACFC \uAC19\uC2B5\uB2C8\uB2E4.\n -ORBInitialPort \uCD08\uAE30 \uD3EC\uD2B8\uC785\uB2C8\uB2E4(\uD544\uC218).\n -ORBInitialHost \uCD08\uAE30 HostName\uC785\uB2C8\uB2E4(\uD544\uC218).\n
-servertool.banner=\n\nJava IDL \uC11C\uBC84 \uD234 \uC2DC\uC791 \n\uD504\uB86C\uD504\uD2B8\uC5D0 \uBA85\uB839\uC744 \uC785\uB825\uD558\uC2ED\uC2DC\uC624.\n
+servertool.banner=\n\nJava IDL \uC11C\uBC84 \uD234 \uC2DC\uC791 \n\uD504\uB86C\uD504\uD2B8\uC5D0 \uBA85\uB839\uC744 \uC785\uB825\uD558\uC2ED\uC2DC\uC624. \n
servertool.shorthelp=\n\n\t\uC0AC\uC6A9 \uAC00\uB2A5\uD55C \uBA85\uB839: \n\t------------------- \n
servertool.baddef=\uC798\uBABB\uB41C \uC11C\uBC84 \uC815\uC758: {0}
servertool.nosuchserver=\t\uD574\uB2F9 \uC11C\uBC84\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/corba-23ae4e0e0cce/src/share/classes/com/sun/corba/se/impl/presentation/rmi/IDLNameTranslatorImpl.java new/corba-8ed5df839fbc/src/share/classes/com/sun/corba/se/impl/presentation/rmi/IDLNameTranslatorImpl.java
--- old/corba-23ae4e0e0cce/src/share/classes/com/sun/corba/se/impl/presentation/rmi/IDLNameTranslatorImpl.java 2013-07-01 16:21:59.000000000 +0200
+++ new/corba-8ed5df839fbc/src/share/classes/com/sun/corba/se/impl/presentation/rmi/IDLNameTranslatorImpl.java 2013-10-16 16:17:36.000000000 +0200
@@ -905,28 +905,4 @@
return contents.toString();
}
-
- public static void main(String[] args) {
-
- Class remoteInterface = java.rmi.Remote.class;
-
- if( args.length > 0 ) {
- String className = args[0];
- try {
- remoteInterface = Class.forName(className);
- } catch(Exception e) {
- e.printStackTrace();
- System.exit(-1);
- }
- }
-
- System.out.println("Building name translation for " + remoteInterface);
- try {
- IDLNameTranslator nameTranslator =
- IDLNameTranslatorImpl.get(remoteInterface);
- System.out.println(nameTranslator);
- } catch(IllegalStateException ise) {
- ise.printStackTrace();
- }
- }
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/corba-23ae4e0e0cce/src/share/classes/com/sun/corba/se/impl/presentation/rmi/InvocationHandlerFactoryImpl.java new/corba-8ed5df839fbc/src/share/classes/com/sun/corba/se/impl/presentation/rmi/InvocationHandlerFactoryImpl.java
--- old/corba-23ae4e0e0cce/src/share/classes/com/sun/corba/se/impl/presentation/rmi/InvocationHandlerFactoryImpl.java 2013-07-01 16:21:59.000000000 +0200
+++ new/corba-8ed5df839fbc/src/share/classes/com/sun/corba/se/impl/presentation/rmi/InvocationHandlerFactoryImpl.java 2013-10-16 16:17:36.000000000 +0200
@@ -43,6 +43,8 @@
import com.sun.corba.se.spi.orbutil.proxy.DelegateInvocationHandlerImpl ;
import com.sun.corba.se.spi.orbutil.proxy.CompositeInvocationHandler ;
import com.sun.corba.se.spi.orbutil.proxy.CompositeInvocationHandlerImpl ;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
public class InvocationHandlerFactoryImpl implements InvocationHandlerFactory
{
@@ -114,24 +116,32 @@
// which extends org.omg.CORBA.Object. This handler delegates all
// calls directly to a DynamicStubImpl, which extends
// org.omg.CORBA.portable.ObjectImpl.
- InvocationHandler dynamicStubHandler =
+ final InvocationHandler dynamicStubHandler =
DelegateInvocationHandlerImpl.create( stub ) ;
// Create an invocation handler that handles any remote interface
// methods.
- InvocationHandler stubMethodHandler = new StubInvocationHandlerImpl(
+ final InvocationHandler stubMethodHandler = new StubInvocationHandlerImpl(
pm, classData, stub ) ;
// Create a composite handler that handles the DynamicStub interface
// as well as the remote interfaces.
final CompositeInvocationHandler handler =
new CustomCompositeInvocationHandlerImpl( stub ) ;
+
+ AccessController.doPrivileged(new PrivilegedAction<Void>() {
+ @Override
+ public Void run() {
handler.addInvocationHandler( DynamicStub.class,
dynamicStubHandler ) ;
handler.addInvocationHandler( org.omg.CORBA.Object.class,
dynamicStubHandler ) ;
handler.addInvocationHandler( Object.class,
dynamicStubHandler ) ;
+ return null;
+ }
+ });
+
// If the method passed to invoke is not from DynamicStub or its superclasses,
// it must be from an implemented interface, so we just handle
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/corba-23ae4e0e0cce/src/share/classes/com/sun/corba/se/impl/transport/SelectorImpl.java new/corba-8ed5df839fbc/src/share/classes/com/sun/corba/se/impl/transport/SelectorImpl.java
--- old/corba-23ae4e0e0cce/src/share/classes/com/sun/corba/se/impl/transport/SelectorImpl.java 2013-07-01 16:21:59.000000000 +0200
+++ new/corba-8ed5df839fbc/src/share/classes/com/sun/corba/se/impl/transport/SelectorImpl.java 2013-10-16 16:17:36.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2013, 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
@@ -55,7 +55,7 @@
/**
* @author Harold Carr
*/
-public class SelectorImpl
+class SelectorImpl
extends
Thread
implements
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/corba-23ae4e0e0cce/src/share/classes/com/sun/corba/se/spi/orbutil/proxy/CompositeInvocationHandlerImpl.java new/corba-8ed5df839fbc/src/share/classes/com/sun/corba/se/spi/orbutil/proxy/CompositeInvocationHandlerImpl.java
--- old/corba-23ae4e0e0cce/src/share/classes/com/sun/corba/se/spi/orbutil/proxy/CompositeInvocationHandlerImpl.java 2013-07-01 16:21:59.000000000 +0200
+++ new/corba-8ed5df839fbc/src/share/classes/com/sun/corba/se/spi/orbutil/proxy/CompositeInvocationHandlerImpl.java 2013-10-16 16:17:36.000000000 +0200
@@ -36,6 +36,7 @@
import com.sun.corba.se.spi.logging.CORBALogDomains ;
import com.sun.corba.se.impl.logging.ORBUtilSystemException ;
+import com.sun.corba.se.impl.presentation.rmi.DynamicAccessPermission;
public class CompositeInvocationHandlerImpl implements
CompositeInvocationHandler
@@ -46,11 +47,13 @@
public void addInvocationHandler( Class interf,
InvocationHandler handler )
{
+ checkAccess();
classToInvocationHandler.put( interf, handler ) ;
}
public void setDefaultHandler( InvocationHandler handler )
{
+ checkAccess();
defaultHandler = handler ;
}
@@ -78,4 +81,12 @@
return handler.invoke( proxy, method, args ) ;
}
+
+ private static final DynamicAccessPermission perm = new DynamicAccessPermission("access");
+ private void checkAccess() {
+ final SecurityManager sm = System.getSecurityManager();
+ if (sm != null) {
+ sm.checkPermission(perm);
+}
+ }
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/corba-23ae4e0e0cce/src/share/classes/com/sun/tools/corba/se/idl/idl_ja.prp new/corba-8ed5df839fbc/src/share/classes/com/sun/tools/corba/se/idl/idl_ja.prp
--- old/corba-23ae4e0e0cce/src/share/classes/com/sun/tools/corba/se/idl/idl_ja.prp 2013-07-01 16:21:59.000000000 +0200
+++ new/corba-8ed5df839fbc/src/share/classes/com/sun/tools/corba/se/idl/idl_ja.prp 2013-10-16 16:17:36.000000000 +0200
@@ -114,7 +114,7 @@
ParseException.badState=%0 (\u884C%1): %2\u306F\u30B9\u30C6\u30FC\u30C8\u30D5\u30EB\u30FB\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306B\u3067\u304D\u307E\u305B\u3093\u3002\u8907\u6570\u306E\u30B9\u30C6\u30FC\u30C8\u30D5\u30EB\u89AA\u304C\u3042\u308A\u307E\u3059\u3002\n%3\n%4
ParseException.branchLabel=%0 (\u884C%1): case %2\u306F\u3059\u3067\u306B\u5BA3\u8A00\u3055\u308C\u3066\u3044\u307E\u3059\u3002\n%3\n%4
ParseException.branchName=%0 (\u884C%1): %2\u3068\u3044\u3046\u540D\u524D\u306E\u5206\u5C90\u306F\u3059\u3067\u306B\u5BA3\u8A00\u3055\u308C\u3066\u3044\u307E\u3059\u3002\n%3\n%4
-ParseException.duplicateInit=%0 (\u884C%1): \u521D\u671F\u5316\u5B50\u306B\u306F\u524D\u306E\u521D\u671F\u5316\u5B50\u3068\u540C\u3058\u7F72\u540D\u304C\u3042\u308A\u307E\u3059\u3002\n%2\n%3
+ParseException.duplicateInit=%0 (\u884C%1): \u521D\u671F\u5316\u5B50\u306B\u306F\u524D\u306E\u521D\u671F\u5316\u5B50\u3068\u540C\u3058\u30B7\u30B0\u30CD\u30C1\u30E3\u304C\u3042\u308A\u307E\u3059\u3002\n%2\n%3
ParseException.duplicateState=%0 (\u884C%1): \u30C7\u30FC\u30BF\u30FB\u30E1\u30F3\u30D0\u30FC%2\u306E\u540D\u524D\u304C\u524D\u306E\u30C7\u30FC\u30BF\u30FB\u30E1\u30F3\u30D0\u30FC\u3068\u540C\u3058\u3067\u3059\u3002\n%3\n%4
ParseException.elseNoIf=%0 (\u884C%1): \u4E00\u81F4\u3059\u308B#if\u304C\u306A\u3044#else\u304C\u691C\u51FA\u3055\u308C\u307E\u3057\u305F\u3002\n%2\n%3
ParseException.endNoIf=%0 (\u884C%1): \u4E00\u81F4\u3059\u308B#if\u304C\u306A\u3044#endif\u304C\u691C\u51FA\u3055\u308C\u307E\u3057\u305F\u3002\n%2\n%3
@@ -146,7 +146,7 @@
ParseException.stringTooLong=%0 (\u884C%1): "%2"\u306F%3\u6587\u5B57\u4EE5\u5185\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n%4\n%5
ParseException.syntax1=%0 (\u884C%1): `%2'\u304C\u5FC5\u8981\u3067\u3059\u304C\u3001`%3'\u304C\u691C\u51FA\u3055\u308C\u307E\u3057\u305F\u3002\n%4\n%5
ParseException.syntax2=%0 (\u884C%1): %2\u306E1\u3064\u304C\u5FC5\u8981\u3067\u3059\u304C\u3001`%3'\u304C\u691C\u51FA\u3055\u308C\u307E\u3057\u305F\u3002\n%4\n%5
-ParseException.unclosed=%0: \u30B3\u30E1\u30F3\u30C8\u3067\u4E88\u671F\u3057\u306A\u3044EOF\u3092\u691C\u51FA\u3057\u307E\u3057\u305F\u3002
+ParseException.unclosed=%0: \u30B3\u30E1\u30F3\u30C8\u3067\u4E88\u671F\u3057\u306A\u3044\u30D5\u30A1\u30A4\u30EB\u306E\u7D42\u308F\u308A\u3092\u691C\u51FA\u3057\u307E\u3057\u305F\u3002
ParseException.undeclaredType=%0 (\u884C%1): %2\u306F\u5BA3\u8A00\u3055\u308C\u3066\u3044\u306A\u3044\u578B\u3067\u3059\u3002\n%3\n%4
ParseException.warning=%0 (\u884C%1): %2\n%3\n%4
ParseException.constExprType=%0 (\u884C%1): \u5B9A\u6570\u5F0F\u306E\u578B\u306F%2\u3067\u3059\u304C\u3001%3\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n%4\n%5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/corba-23ae4e0e0cce/src/share/classes/com/sun/tools/corba/se/idl/idl_zh_CN.prp new/corba-8ed5df839fbc/src/share/classes/com/sun/tools/corba/se/idl/idl_zh_CN.prp
--- old/corba-23ae4e0e0cce/src/share/classes/com/sun/tools/corba/se/idl/idl_zh_CN.prp 2013-07-01 16:21:59.000000000 +0200
+++ new/corba-8ed5df839fbc/src/share/classes/com/sun/tools/corba/se/idl/idl_zh_CN.prp 2013-10-16 16:17:36.000000000 +0200
@@ -64,7 +64,7 @@
#
# Translator: Start Translating
-Compile.parsing=\u6B63\u5728\u5BF9 %0 \u8FDB\u884C\u8BED\u6CD5\u5206\u6790
+Compile.parsing=\u6B63\u5728\u89E3\u6790 %0
Compile.parseDone=\u5B8C\u6210 - %0
Compile.generating=\u6B63\u5728\u751F\u6210 %0
Compile.genDone=\u5B8C\u6210 - %0
@@ -165,7 +165,7 @@
Token.endOfFile=EOF
Token.unknown=?
Util.cantCreatePkg=\u65E0\u6CD5\u521B\u5EFA\u7A0B\u5E8F\u5305%0\u3002
-Version.product=IDL \u8BED\u6CD5\u5206\u6790\u5668\u6846\u67B6, \u7248\u672C "%0"
+Version.product=IDL \u89E3\u6790\u5668\u6846\u67B6, \u7248\u672C "%0"
Version.number=3.2
default=\u9519\u8BEF! \u8BF7\u6C42\u4E86\u4E0D\u5B58\u5728\u7684\u6D88\u606F\u3002\u6D88\u606F\u6587\u4EF6\u672A\u5305\u542B\u5173\u952E\u5B57: %0\u3002
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/corba-23ae4e0e0cce/src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/toJavaPortable_ja.prp new/corba-8ed5df839fbc/src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/toJavaPortable_ja.prp
--- old/corba-23ae4e0e0cce/src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/toJavaPortable_ja.prp 2013-07-01 16:21:59.000000000 +0200
+++ new/corba-8ed5df839fbc/src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/toJavaPortable_ja.prp 2013-10-16 16:17:36.000000000 +0200
@@ -53,7 +53,7 @@
#
toJavaProlog1=%0\u306B\u3088\u3063\u3066\u751F\u6210\u3055\u308C\u307E\u3057\u305F
toJavaProlog2=%0\u304B\u3089
-PreEmit.indeterminateTypeInfo=%0\u306E\u30BF\u30A4\u30D7\u60C5\u5831\u3092\u5224\u65AD\u3067\u304D\u307E\u305B\u3093\u3002
+PreEmit.indeterminateTypeInfo=%0\u306E\u30BF\u30A4\u30D7\u60C5\u5831\u3092\u5224\u5225\u3067\u304D\u307E\u305B\u3093\u3002
InterfaceGen.noImpl=%0\u306E\u30ED\u30FC\u30AB\u30EB\u5B9F\u88C5\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002
Version.product=IDL-to-Java\u30B3\u30F3\u30D1\u30A4\u30E9(\u30DD\u30FC\u30BF\u30D6\u30EB)\u3001\u30D0\u30FC\u30B8\u30E7\u30F3"%0"
Version.number=3.2
@@ -65,4 +65,5 @@
# -d, -emitAll, -f, -i, -keep, -m, -sep, -pkgPrefix, -td, -v, -verbose, -version, -implbase
# Do not translate the string "java com.sun.tools.corba.se.idl.toJavaPortable.Compile"
#
-usage=\u30B3\u30F3\u30D1\u30A4\u30E9\u306E\u4F7F\u7528\u65B9\u6CD5:\n\n java com.sun.tools.corba.se.idl.toJavaPortable.Compile [options] <idl file>\n\n<idl file>\u306FIDL\u5B9A\u7FA9\u3092\u542B\u3080\u30D5\u30A1\u30A4\u30EB\u306E\u540D\u524D\u3067\u3001\n[options]\u306F\u6B21\u306B\u30EA\u30B9\u30C8\u3059\u308B\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u7D44\u5408\u305B\u3067\u3059\u3002\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\n\u7701\u7565\u53EF\u80FD\u3067\u3001\u4EFB\u610F\u306E\u9806\u5E8F\u3067\u8868\u793A\u3055\u308C\u307E\u3059\u3002<idl file>\u306F\u5FC5\u9808\u3067\u3001\n\u6700\u5F8C\u306B\u8868\u793A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n \n\u30AA\u30D7\u30B7\u30E7\u30F3:\n-d <symbol> IDL\u30D5\u30A1\u30A4\u30EB\u306E\u6B21\u306E\u884C\u3068\n \u540C\u3058\u3067\u3059: #define <symbol>\n-emitAll #included\u30D5\u30A1\u30A4\u30EB\u3067\u898B\u3064\u304B\u3063\u305F\u30BF\u30A4\u30D7\u3092\u542B\u3080\u3001\u3059\u3079\u3066\u306E\u30BF\u30A4\u30D7\u3092\u767A\u884C\u3057\u307E\u3059\u3002\n-f<side> \u767A\u884C\u3059\u308B\u30D0\u30A4\u30F3\u30C7\u30A3\u30F3\u30B0\u3092\u5B9A\u7FA9\u3057\u307E\u3059\u3002<side>\u306Fclient\u3001\n server\u3001all\u3001serverTIE\u3001allTIE\u306E\u3044\u305A\u308C\u304B\u3067\u3059\u3002serverTIE\u3068allTIE\u306F\n \u59D4\u4EFB\u30E2\u30C7\u30EB\u30FB\u30B9\u30B1\u30EB\u30C8\u30F3\u3092\u767A\u884C\u3057\u307E\u3059\u3002\u3053\u306E\u30D5\u30E9\u30B0\u3092\n \u4F7F\u7528\u3057\u306A\u3044\u5834\u5408\u306F\u3001-fclient\u3068\u307F\u306A\u3055\u308C\u307E\u3059\u3002\n-i <include path> \u30C7\u30D5\u30A9\u30EB\u30C8\u3067\u306F\u3001\u73FE\u5728\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u30A4\u30F3\u30AF\u30EB\u30FC\u30C9\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u304C\n \u30B9\u30AD\u30E3\u30F3\u3055\u308C\u307E\u3059\u3002\u3053\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u5225\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u8FFD\u52A0\u3057\u307E\u3059\u3002\n-keep \u751F\u6210\u3055\u308C\u308B\u30D5\u30A1\u30A4\u30EB\u304C\u3059\u3067\u306B\u5B58\u5728\u3059\u308B\u5834\u5408\u306F\u3001\u4E0A\u66F8\u304D\n \u3057\u307E\u305B\u3093\u3002\u30C7\u30D5\u30A9\u30EB\u30C8\u3067\u306F\u4E0A\u66F8\u304D\u3055\u308C\u307E\u3059\u3002\n-noWarn \u8B66\u544A\u3092\u51FA\u3055\u306A\u3044\u3088\u3046\u306B\u3057\u307E\u3059\u3002\n-oldImplBase \u53E4\u3044(1.4\u4EE5\u524D) JDK ORB\u3068\u4E92\u63DB\u6027\u306E\u3042\u308B\u30B9\u30B1\u30EB\u30C8\u30F3\u3092\u751F\u6210\u3057\u307E\u3059\u3002\n-pkgPrefix <t> <prefix> \u30D5\u30A1\u30A4\u30EB\u30FB\u30B9\u30B3\u30FC\u30D7\u3067\u30BF\u30A4\u30D7\u307E\u305F\u306F\u30E2\u30B8\u30E5\u30FC\u30EB\u540D<t>\u304C\u691C\u51FA\u3055\u308C\u305F\u5834\u5408\u3001\n <t>\u306B\u5BFE\u3057\u3066\u751F\u6210\u3055\u308C\u305F\u3059\u3079\u3066\u306E\u30D5\u30A1\u30A4\u30EB\u306EJava\u30D1\u30C3\u30B1\u30FC\u30B8\u540D\u3092\n <prefix>\u3067\u59CB\u3081\u307E\u3059\u3002\n-pkgTranslate <t> <pkg> \u30BF\u30A4\u30D7\u307E\u305F\u306F\u30E2\u30B8\u30E5\u30FC\u30EB\u540D<t>\u304C\u691C\u51FA\u3055\u308C\u305F\u5834\u5408\u3001\n \u751F\u6210\u3055\u308C\u305FJava\u30D1\u30C3\u30B1\u30FC\u30B8\u5185\u3067<pkg>\u306B\u7F6E\u63DB\u3055\u308C\u307E\u3059\u3002pkgPrefix\u306E\n \u5909\u66F4\u304C\u5148\u306B\u884C\u308F\u308C\u308B\u3053\u3068\u306B\u6CE8\u610F\u3057\u3066\u304F\u3060\u3055\u3044\u3002<t>\u306F\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\n \u6B63\u5F0F\u540D\u3068\u5B8C\u5168\u306B\u4E00\u81F4\u3057\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\u307E\u305F\u3001<t>\u3092\n org\u3001org.omg\u307E\u305F\u306Forg.omg\u306E\u30B5\u30D6\u30D1\u30C3\u30B1\u30FC\u30B8\u306B\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002\n-skeletonName \u30D1\u30BF\u30FC\u30F3\u306B\u5F93\u3063\u3066\u30B9\u30B1\u30EB\u30C8\u30F3\u306B\u540D\u524D\u3092\u4ED8\u3051\u307E\u3059\u3002\n \u30C7\u30D5\u30A9\u30EB\u30C8\u306F\u6B21\u306E\u3068\u304A\u308A\u3067\u3059:\n POA\u30D9\u30FC\u30B9\u30FB\u30AF\u30E9\u30B9\u306E\u5834\u5408\u306F%POA (-fserver\u307E\u305F\u306F-fall) \n oldImplBase\u30D9\u30FC\u30B9\u30FB\u30AF\u30E9\u30B9\u306E\u5834\u5408\u306F_%ImplBase\n (-oldImplBase\u304A\u3088\u3073(-fserver\u307E\u305F\u306F-fall))\u3002\n-td <dir> \u51FA\u529B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306B\u306F\u3001\u73FE\u5728\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u304B\u308F\u308A\u306B<dir>\u3092\n \u4F7F\u7528\u3057\u307E\u3059\u3002\n-tieName \u30D1\u30BF\u30FC\u30F3\u306B\u5F93\u3063\u3066tie\u306B\u540D\u524D\u3092\u4ED8\u3051\u307E\u3059\u3002\u30C7\u30D5\u30A9\u30EB\u30C8\u306F\u6B21\u306E\u3068\u304A\u308A\u3067\u3059:\n POA tie\u306E\u5834\u5408\u306F%POATie (-fserverTie\u307E\u305F\u306F-fallTie) \n oldImplBase tie\u306E\u5834\u5408\u306F%_Tie\n (-oldImplBase\u304A\u3088\u3073(-fserverTie\u307E\u305F\u306F-fallTie))\u3002\n-v, -verbose \u8A73\u7D30\u30E2\u30FC\u30C9\u3002\n-version \u30D0\u30FC\u30B8\u30E7\u30F3\u756A\u53F7\u3092\u8868\u793A\u3057\u3066\u7D42\u4E86\u3057\u307E\u3059\u3002\n
+usage=\u30B3\u30F3\u30D1\u30A4\u30E9\u306E\u4F7F\u7528\u65B9\u6CD5:\n\n java com.sun.tools.corba.se.idl.toJavaPortable.Compile [options] <idl file>\n\n<idl file>\u306FIDL\u5B9A\u7FA9\u3092\u542B\u3080\u30D5\u30A1\u30A4\u30EB\u306E\u540D\u524D\u3067\u3001\n[options]\u306F\u6B21\u306B\u30EA\u30B9\u30C8\u3059\u308B\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u7D44\u5408\u305B\u3067\u3059\u3002\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\n\u7701\u7565\u53EF\u80FD\u3067\u3001\u4EFB\u610F\u306E\u9806\u5E8F\u3067\u8868\u793A\u3055\u308C\u307E\u3059\u3002<idl file>\u306F\u5FC5\u9808\u3067\u3001\n\u6700\u5F8C\u306B\u8868\u793A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n \n\u30AA\u30D7\u30B7\u30E7\u30F3:\n-d <symbol> IDL\u30D5\u30A1\u30A4\u30EB\u306E\u6B21\u306E\u884C\u3068\n \u540C\u3058\u3067\u3059: #define <symbol>\n-emitAll #included\u30D5\u30A1\u30A4\u30EB\u3067\u898B\u3064\u304B\u3063\u305F\u30BF\u30A4\u30D7\u3092\u542B\u3080\u3001\u3059\u3079\u3066\u306E\u30BF\u30A4\u30D7\u3092\u767A\u884C\u3057\u307E\u3059\u3002\n-f<side> \u767A\u884C\u3059\u308B\u30D0\u30A4\u30F3\u30C7\u30A3\u30F3\u30B0\u3092\u5B9A\u7FA9\u3057\u307E\u3059\u3002<side>\u306Fclient\u3001\n server\u3001all\u3001serverTIE\u3001allTIE\u306E\u3044\u305A\u308C\u304B\u3067\u3059\u3002serverTIE\u3068allTIE\u306F\n \u59D4\u4EFB\u30E2\u30C7\u30EB\u30FB\u30B9\u30B1\u30EB\u30C8\u30F3\u3092\u767A\u884C\u3057\u307E\u3059\u3002\u3053\u306E\u30D5\u30E9\u30B0\u3092\n \u4F7F\u7528\u3057\u306A\u3044\u5834\u5408\u306F\u3001-fclient\u3068\u307F\u306A\u3055\u308C\u307E\u3059\u3002\n-i <include path> \u30C7\u30D5\u30A9\u30EB\u30C8\u3067\u306F\u3001\u73FE\u5728\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u30A4\u30F3\u30AF\u30EB\u30FC\u30C9\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u304C\n \u30B9\u30AD\u30E3\u30F3\u3055\u308C\u307E\u3059\u3002\u3053\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u5225\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u8FFD\u52A0\u3057\u307E\u3059\u3002\n-keep \u751F\u6210\u3055\u308C\u308B\u30D5\u30A1\u30A4\u30EB\u304C\u3059\u3067\u306B\u5B58\u5728\u3059\u308B\u5834\u5408\u306F\u3001\u4E0A\u66F8\u304D\n \u3057\u307E\u305B\u3093\u3002\u30C7\u30D5\u30A9\u30EB\u30C8\u3067\u306F\u4E0A\u66F8\u304D\u3055\u308C\u307E\u3059\u3002\n-noWarn \u8B66\u544A\u3092\u51FA\u3055\u306A\u3044\u3088\u3046\u306B\u3057\u307E\u3059\u3002\n-oldImplBase \u53E4\u3044(1.4\u4EE5\u524D) JDK ORB\u3068\u4E92\u63DB\u6027\u306E\u3042\u308B\u30B9\u30B1\u30EB\u30C8\u30F3\u3092\u751F\u6210\u3057\u307E\u3059\u3002\n-pkgPrefix <t> <prefix> \u30D5\u30A1\u30A4\u30EB\u30FB\u30B9\u30B3\u30FC\u30D7\u3067\u30BF\u30A4\u30D7\u307E\u305F\u306F\u30E2\u30B8\u30E5\u30FC\u30EB\u540D<t>\u304C\u691C\u51FA\u3055\u308C\u305F\u5834\u5408\u3001\n <t>\u306B\u5BFE\u3057\u3066\u751F\u6210\u3055\u308C\u305F\u3059\u3079\u3066\u306E\u30D5\u30A1\u30A4\u30EB\u306EJava\u30D1\u30C3\u30B1\u30FC\u30B8\u540D\u3092\n <prefix>\u3067\u59CB\u3081\u307E\u3059\u3002\n-pkgTranslate <t> <pkg> \u30BF\u30A4\u30D7\u307E\u305F\u306F\u30E2\u30B8\u30E5\u30FC\u30EB\u540D<t>\u304C\u691C\u51FA\u3055\u308C\u305F\u5834\u5408\u3001\n \u751F\u6210\u3055\u308C\u305FJava\u30D1\u30C3\u30B1\u30FC\u30B8\u5185\u3067<pkg>\u306B\u7F6E\u63DB\u3055\u308C\u307E\u3059\u3002pkgPrefix\u306E\n \u5909\u66F4\u304C\u5148\u306B\u884C\u308F\u308C\u308B\u3053\u3068\u306B\u6CE8\u610F\u3057\u3066\u304F\u3060\u3055\u3044\u3002<t>\u306F\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\n \u6B63\u5F0F\u540D\u3068\u5B8C\u5168\u306B\u4E00\u81F4\u3057\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\u307E\u305F\u3001<t>\u3092\n \
+org\u3001org.omg\u307E\u305F\u306Forg.omg\u306E\u30B5\u30D6\u30D1\u30C3\u30B1\u30FC\u30B8\u306B\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002\n-skeletonName \u30D1\u30BF\u30FC\u30F3\u306B\u5F93\u3063\u3066\u30B9\u30B1\u30EB\u30C8\u30F3\u306B\u540D\u524D\u3092\u4ED8\u3051\u307E\u3059\u3002\n \u30C7\u30D5\u30A9\u30EB\u30C8\u306F\u6B21\u306E\u3068\u304A\u308A\u3067\u3059:\n POA\u30D9\u30FC\u30B9\u30FB\u30AF\u30E9\u30B9\u306E\u5834\u5408\u306F%POA (-fserver\u307E\u305F\u306F-fall) \n oldImplBase\u30D9\u30FC\u30B9\u30FB\u30AF\u30E9\u30B9\u306E\u5834\u5408\u306F_%ImplBase\n (-oldImplBase\u304A\u3088\u3073(-fserver\u307E\u305F\u306F-fall))\u3002\n-td <dir> \u51FA\u529B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306B\u306F\u3001\u73FE\u5728\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u304B\u308F\u308A\u306B<dir>\u3092\n \u4F7F\u7528\u3057\u307E\u3059\u3002\n-tieName \u30D1\u30BF\u30FC\u30F3\u306B\u5F93\u3063\u3066tie\u306B\u540D\u524D\u3092\u4ED8\u3051\u307E\u3059\u3002\u30C7\u30D5\u30A9\u30EB\u30C8\u306F\u6B21\u306E\u3068\u304A\u308A\u3067\u3059:\n POA tie\u306E\u5834\u5408\u306F%POATie (-fserverTie\u307E\u305F\u306F-fallTie) \n oldImplBase tie\u306E\u5834\u5408\u306F%_Tie\n (-oldImplBase\u304A\u3088\u3073(-fserverTie\u307E\u305F\u306F-fallTie))\u3002\n-v, -verbose \u8A73\u7D30\u30E2\u30FC\u30C9\u3002\n-version \u30D0\u30FC\u30B8\u30E7\u30F3\u756A\u53F7\u3092\u8868\u793A\u3057\u3066\u7D42\u4E86\u3057\u307E\u3059\u3002\n
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/corba-23ae4e0e0cce/src/share/classes/sun/rmi/rmic/iiop/StubGenerator.java new/corba-8ed5df839fbc/src/share/classes/sun/rmi/rmic/iiop/StubGenerator.java
--- old/corba-23ae4e0e0cce/src/share/classes/sun/rmi/rmic/iiop/StubGenerator.java 2013-07-01 16:21:59.000000000 +0200
+++ new/corba-8ed5df839fbc/src/share/classes/sun/rmi/rmic/iiop/StubGenerator.java 2013-10-16 16:17:36.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2013, 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
@@ -34,6 +34,9 @@
import java.io.File;
import java.io.IOException;
+import java.io.SerializablePermission;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
import java.util.Vector;
import java.util.Hashtable;
import java.util.Enumeration;
@@ -49,6 +52,7 @@
import com.sun.corba.se.impl.util.PackagePrefixChecker;
import sun.rmi.rmic.Main;
+
/**
* An IIOP stub/tie generator for rmic.
*
@@ -78,6 +82,7 @@
protected boolean castArray = false;
protected Hashtable transactionalObjects = new Hashtable() ;
protected boolean POATie = false ;
+ protected boolean emitPermissionCheck = false;
/**
* Default constructor for Main to use.
@@ -193,6 +198,9 @@
} else if (argv[i].equals("-standardPackage")) {
standardPackage = true;
argv[i] = null;
+ } else if (argv[i].equals("-emitPermissionCheck")) {
+ emitPermissionCheck = true;
+ argv[i] = null;
} else if (arg.equals("-xstubbase")) {
argv[i] = null;
if (++i < argv.length && argv[i] != null && !argv[i].startsWith("-")) {
@@ -390,9 +398,22 @@
writePackageAndImports(p);
+// generate
+// import java.security.AccessController;
+// import java.security.PrivilegedAction;
+// import java.io.SerializablePermission;
+ if (emitPermissionCheck) {
+ p.pln("import java.security.AccessController;");
+ p.pln("import java.security.PrivilegedAction;");
+ p.pln("import java.io.SerializablePermission;");
+ p.pln();
+ p.pln();
+ }
+
// Declare the stub class; implement all remote interfaces.
p.p("public class " + currentClass);
+
p.p(" extends " + getName(stubBaseClass));
p.p(" implements ");
if (remoteInterfaces.length > 0) {
@@ -422,6 +443,56 @@
writeIds( p, theType, false );
p.pln();
+ if (emitPermissionCheck) {
+
+ // produce the following generated code
+ // private static Void checkPermission() {
+ // SecurityManager sm = System.getSecurityManager();
+ // if (sm != null) {
+ // sm.checkPermission(new SerializablePermission(
+ // "enableSubclassImplementation")); // testing
+ // }
+ // return null;
+ // }
+ //
+ // private _XXXXXX_Stub(Void ignore) {
+ // }
+ //
+ // public _XXXXXX_Stub() {
+ // this(checkPermission());
+ // }
+ // where XXXXXX is the name of the remote interface
+
+ p.pln();
+ p.plnI("private static Void checkPermission() {");
+ p.plnI("SecurityManager sm = System.getSecurityManager();");
+ p.pln("if (sm != null) {");
+ p.pI();
+ p.plnI("sm.checkPermission(new SerializablePermission(");
+ p.plnI("\"enableSubclassImplementation\"));");
+ p.pO();
+ p.pO();
+ p.pOln("}");
+ p.pln("return null;");
+ p.pO();
+ p.pOln("}");
+ p.pln();
+ p.pO();
+
+ p.pI();
+ p.pln("private " + currentClass + "(Void ignore) { }");
+ p.pln();
+
+ p.plnI("public " + currentClass + "() { ");
+ p.pln("this(checkPermission());");
+ p.pOln("}");
+ p.pln();
+ }
+
+ if (!emitPermissionCheck) {
+ p.pI();
+ }
+
// Write the _ids() method...
p.plnI("public String[] _ids() { ");
@@ -815,7 +886,6 @@
CompoundType theType) throws IOException {
// Wtite the method declaration and opening brace...
-
String methodName = method.getName();
String methodIDLName = method.getIDLName();
@@ -1631,7 +1701,7 @@
// Write data members...
p.pln();
- p.pln("private " + getName(theType) + " target = null;");
+ p.pln("volatile private " + getName(theType) + " target = null;");
p.pln();
// Write the ids...
@@ -1695,6 +1765,10 @@
if (remoteMethods.length > 0) {
p.plnI("try {");
+ p.pln(getName(theType) + " target = this.target;");
+ p.plnI("if (target == null) {");
+ p.pln("throw new java.io.IOException();");
+ p.pOln("}");
p.plnI(idExtInputStream + " "+in+" = ");
p.pln("(" + idExtInputStream + ") "+_in+";");
p.pO();
++++++ 23ae4e0e0cce.tar.gz -> 8f220f7b51c7.tar.gz ++++++
++++ 840481 lines of diff (skipped)
++++++ PStack-808293.patch ++++++
--- openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/PStack.java 2012-04-06 02:26:33.322164601 +0200
+++ openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/PStack.java 2012-04-06 02:26:57.958514071 +0200
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, Red Hat Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -84,7 +85,8 @@
out.print("----------------- ");
out.print(th);
out.println(" -----------------");
- while (f != null) {
+ int maxStack = 256;
+ while (f != null && maxStack-- > 0) {
ClosestSymbol sym = f.closestSymbolToPC();
Address pc = f.pc();
out.print(pc + "\t");
@@ -158,10 +160,19 @@
printUnknown(out);
}
}
+ Address oldPC = f.pc();
+ Address oldFP = f.localVariableBase();
f = f.sender(th);
+ if (f != null
+ && oldPC.equals(f.pc())
+ && oldFP.equals(f.localVariableBase())) {
+ // We didn't make any progress
+ f = null;
+ }
}
} catch (Exception exp) {
- exp.printStackTrace();
+ // exp.printStackTrace();
+ out.println("bad stack: " + exp);
// continue, may be we can do a better job for other threads
}
if (isJava && concurrentLocks) {
++++++ RH661505-toBeReverted.patch ++++++
# HG changeset patch
# User andrew
# Date 1378467880 -3600
# Node ID 3372405e49a9e5cd27af64e16eb7e44539ea3339
# Parent b2611b1a750cf38b795d1df24c5bea9b9c246e0f
RH661505: JPEGs with sRGB IEC61966-2.1 color profiles have wrong colors
diff -r b2611b1a750c -r 3372405e49a9 src/share/native/sun/awt/image/jpeg/imageioJPEG.c
--- openjdk/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c Wed Sep 04 18:20:38 2013 +0100
+++ openjdk/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c Fri Sep 06 12:44:40 2013 +0100
@@ -1454,6 +1454,8 @@
"[S");
}
+#define JPEG_APP1 (JPEG_APP0 + 1) /* EXIF APP1 marker code */
+
JNIEXPORT jlong JNICALL
Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_initJPEGImageReader
(JNIEnv *env,
@@ -1507,6 +1509,7 @@
// Set up to keep any APP2 markers, as these might contain ICC profile
// data
+ jpeg_save_markers(cinfo, JPEG_APP1, 0xFFFF);
jpeg_save_markers(cinfo, ICC_MARKER, 0xFFFF);
/*
@@ -1569,8 +1572,6 @@
imageio_init_source((j_decompress_ptr) cinfo);
}
-#define JPEG_APP1 (JPEG_APP0 + 1) /* EXIF APP1 marker code */
-
/*
* For EXIF images, the APP1 will appear immediately after the SOI,
* so it's safe to only look at the first marker in the list.
++++++ abrt_friendly_hs_log_jdk7.patch ++++++
--- openjdk/hotspot/src/share/vm/utilities/vmError.cpp 2012-02-02 16:17:24.476664897 +0100
+++ openjdk/hotspot/src/share/vm/utilities/vmError.cpp 2012-02-02 16:17:24.476664897 +0100
@@ -929,6 +929,7 @@
}
}
+ /*
if (fd == -1) {
const char *cwd = os::get_current_directory(buffer, sizeof(buffer));
size_t len = strlen(cwd);
@@ -938,6 +939,24 @@
os::file_separator(), os::current_process_id());
fd = open(buffer, O_RDWR | O_CREAT | O_TRUNC, 0666);
}
+ */
+
+ if (fd == -1) {
+ const char * tmpdir = os::get_temp_directory();
+ // try temp directory if it exists.
+ if (tmpdir != NULL && tmpdir[0] != '\0') {
+ jio_snprintf(buffer, sizeof(buffer), "%s%sjvm-%u",
+ tmpdir, os::file_separator(), os::current_process_id());
+ // if mkdir() failed, hs_err will be created in temporary directory
+ if (!mkdir(buffer, 0700)) { // only read+execute flags are needed
+ // but we need to write into the directory too
+ jio_snprintf(buffer, sizeof(buffer), "%s%sjvm-%u%shs_error.log",
+ tmpdir, os::file_separator(), os::current_process_id(),
+ os::file_separator());
+ fd = open(buffer, O_WRONLY | O_CREAT | O_TRUNC, 0444); // read-only file
+ }
+ }
+ }
if (fd == -1) {
const char * tmpdir = os::get_temp_directory();
++++++ 23ae4e0e0cce.tar.gz -> b59e02d9e72b.tar.gz ++++++
/work/SRC/openSUSE:13.1/java-1_7_0-openjdk/23ae4e0e0cce.tar.gz /work/SRC/openSUSE:13.1/.java-1_7_0-openjdk.new/b59e02d9e72b.tar.gz differ: char 5, line 1
++++++ 23ae4e0e0cce.tar.gz -> e2f5917da3c1.tar.gz ++++++
++++ 250773 lines of diff (skipped)
++++++ gstackbounds.patch ++++++
diff --git a/src/os/linux/vm/os_linux.cpp b/src/os/linux/vm/os_linux.cpp
--- openjdk/hotspot/src/os/linux/vm/os_linux.cpp
+++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp
@@ -2763,39 +2763,47 @@
// writing thread stacks don't use growable mappings (i.e. those
// creeated with MAP_GROWSDOWN), and aren't marked "[stack]", so this
// only applies to the main thread.
-
-static
-bool get_stack_bounds(uintptr_t *bottom, uintptr_t *top) {
-
- char buf[128];
- int fd, sz;
-
- if ((fd = ::open("/proc/self/maps", O_RDONLY)) < 0) {
+static bool
+get_stack_bounds(uintptr_t *bottom, uintptr_t *top)
+{
+ FILE *f = fopen("/proc/self/maps", "r");
+ if (f == NULL)
return false;
- }
-
- const char kw[] = "[stack]";
- const int kwlen = sizeof(kw)-1;
-
- // Address part of /proc/self/maps couldn't be more than 128 bytes
- while ((sz = os::get_line_chars(fd, buf, sizeof(buf))) > 0) {
- if (sz > kwlen && ::memcmp(buf+sz-kwlen, kw, kwlen) == 0) {
- // Extract addresses
- if (sscanf(buf, "%" SCNxPTR "-%" SCNxPTR, bottom, top) == 2) {
- uintptr_t sp = (uintptr_t) __builtin_frame_address(0);
- if (sp >= *bottom && sp <= *top) {
- ::close(fd);
- return true;
- }
+
+ while (!feof(f)) {
+ size_t dummy;
+ char *str = NULL;
+ ssize_t len = getline(&str, &dummy, f);
+ if (len == -1) {
+ fclose(f);
+ if (str != NULL)
+ free(str);
+ return false;
+ }
+
+ if (len > 0 && str[len-1] == '\n') {
+ str[len-1] = 0;
+ len--;
+ }
+
+ static const char *stack_str = "[stack]";
+ if (len > (ssize_t)strlen(stack_str)
+ && (strcmp(str + len - strlen(stack_str), stack_str) == 0)) {
+ if (sscanf(str, "%" SCNxPTR "-%" SCNxPTR, bottom, top) == 2) {
+ uintptr_t sp = (uintptr_t)__builtin_frame_address(0);
+ if (sp >= *bottom && sp <= *top) {
+ free(str);
+ fclose(f);
+ return true;
}
- }
- }
-
- ::close(fd);
+ }
+ }
+ free(str);
+ }
+ fclose(f);
return false;
}
-
// If the (growable) stack mapping already extends beyond the point
// where we're going to put our guard pages, truncate the mapping at
// that point by munmap()ping it. This ensures that when we later
diff --git a/src/share/vm/runtime/os.cpp b/src/share/vm/runtime/os.cpp
--- openjdk/hotspot/src/share/vm/runtime/os.cpp
+++ openjdk/hotspot/src/share/vm/runtime/os.cpp
@@ -1353,43 +1353,6 @@
return result;
}
-// Read file line by line, if line is longer than bsize,
-// skip rest of line.
-int os::get_line_chars(int fd, char* buf, const size_t bsize){
- size_t sz, i = 0;
-
- // read until EOF, EOL or buf is full
- while ((sz = (int) read(fd, &buf[i], 1)) == 1 && i < (bsize-2) && buf[i] != '\n') {
- ++i;
- }
-
- if (buf[i] == '\n') {
- // EOL reached so ignore EOL character and return
-
- buf[i] = 0;
- return (int) i;
- }
-
- buf[i+1] = 0;
-
- if (sz != 1) {
- // EOF reached. if we read chars before EOF return them and
- // return EOF on next call otherwise return EOF
-
- return (i == 0) ? -1 : (int) i;
- }
-
- // line is longer than size of buf, skip to EOL
- char ch;
- while (read(fd, &ch, 1) == 1 && ch != '\n') {
- // Do nothing
- }
-
- // return initial part of line that fits in buf.
- // If we reached EOF, it will be returned on next call.
-
- return (int) i;
-}
void os::SuspendedThreadTask::run() {
assert(Threads_lock->owned_by_self() || (_thread == VMThread::vm_thread()), "must have threads lock to call this");
diff --git a/src/share/vm/runtime/os.hpp b/src/share/vm/runtime/os.hpp
--- openjdk/hotspot/src/share/vm/runtime/os.hpp
+++ openjdk/hotspot/src/share/vm/runtime/os.hpp
@@ -672,10 +672,6 @@
// Hook for os specific jvm options that we don't want to abort on seeing
static bool obsolete_option(const JavaVMOption *option);
- // Read file line by line. If line is longer than bsize,
- // rest of line is skipped. Returns number of bytes read or -1 on EOF
- static int get_line_chars(int fd, char *buf, const size_t bsize);
-
// Extensions
#include "runtime/os_ext.hpp"
++++++ jamvm-7c8dceb90880616b7dd670f257961a1f5f371ec3.tar.gz -> jamvm-ac22c9948434e528ece451642b4ebde40953ee7e.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jamvm-7c8dceb90880616b7dd670f257961a1f5f371ec3/configure.ac new/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/configure.ac
--- old/jamvm-7c8dceb90880616b7dd670f257961a1f5f371ec3/configure.ac 2013-05-06 04:54:31.000000000 +0200
+++ new/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/configure.ac 2013-08-28 03:29:48.000000000 +0200
@@ -233,9 +233,14 @@
AC_DEFINE([SHARED_CHAR_BUFFERS],1,[java.lang.String uses shared char buffers])
fi
+if test "$with_java_runtime_library" = openjdk7; then
+ AC_DEFINE([JSR292],1,[VM support for JSR292 (invokedynamic)])
+fi
+
if test "$with_java_runtime_library" = openjdk8; then
AC_DEFINE([JSR292],1,[VM support for JSR292 (invokedynamic)])
AC_DEFINE([JSR308],1,[VM support for JSR308 (type annotations)])
+ AC_DEFINE([JSR335],1,[VM support for JSR335 (lambda expressions)])
AC_DEFINE([JSR901],1,[VM support for JSR901 (method parameter reflection)])
fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jamvm-7c8dceb90880616b7dd670f257961a1f5f371ec3/src/alloc.c new/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/alloc.c
--- old/jamvm-7c8dceb90880616b7dd670f257961a1f5f371ec3/src/alloc.c 2013-05-06 04:54:31.000000000 +0200
+++ new/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/alloc.c 2013-08-28 03:29:48.000000000 +0200
@@ -290,7 +290,8 @@
char *mem = (char*)mmap(0, args->max_heap, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_ANON, -1, 0);
if(mem == MAP_FAILED) {
- perror("Couldn't allocate the heap; try reducing the max heap size (-Xmx)\n");
+ perror("Couldn't allocate the heap; try reducing the max "
+ "heap size (-Xmx)");
return FALSE;
}
@@ -1217,10 +1218,7 @@
cb->fields[i].class = new_addr;
for(i = 0; i < cb->methods_count; i++)
- if(cb->methods[i].class == class)
- cb->methods[i].class = new_addr;
- else
- THREAD_REFERENCE(&cb->methods[i].class);
+ cb->methods[i].class = new_addr;
}
int threadChildren(Object *ob, Object *new_addr) {
@@ -2262,7 +2260,7 @@
MAP_PRIVATE|MAP_ANON, -1, 0);
if(mem == MAP_FAILED) {
- jam_fprintf(stderr, "Mmap failed - aborting VM...\n");
+ perror("Mmap failed - aborting VM...");
exitVM(1);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jamvm-7c8dceb90880616b7dd670f257961a1f5f371ec3/src/class.c new/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/class.c
--- old/jamvm-7c8dceb90880616b7dd670f257961a1f5f371ec3/src/class.c 2013-05-06 04:54:31.000000000 +0200
+++ new/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/class.c 2013-08-28 03:29:48.000000000 +0200
@@ -92,6 +92,10 @@
we'll get an abstract method error. */
static char abstract_method[] = {OPC_ABSTRACT_METHOD_ERROR};
+/* Bytecode for a Miranda method. If it is invoked it executes
+ the unimplemented interface method that it represents. */
+static char miranda_bridge[] = {OPC_MIRANDA_BRIDGE};
+
static Class *addClassToHash(Class *class, Object *class_loader) {
HashTable *table;
Class *entry;
@@ -1020,18 +1024,6 @@
return hidden->u.offset = cb->object_size - sizeof(Object*);
}
-#define MRNDA_CACHE_SZE 10
-
-#define resizeMTable(method_table, method_table_size, miranda, count) \
-{ \
- method_table = sysRealloc(method_table, (method_table_size + count) \
- * sizeof(MethodBlock*)); \
- \
- memcpy(&method_table[method_table_size], miranda, \
- count * sizeof(MethodBlock*)); \
- method_table_size += count; \
-}
-
#define fillinMTable(method_table, methods, methods_count) \
{ \
int i; \
@@ -1043,6 +1035,18 @@
} \
}
+#define MRNDA_CACHE_INCR 16
+
+/* Structure of each Miranda cache entry. The Miranda
+ cache holds details of new Miranda methods found during
+ the construction of the interface method table. */
+
+typedef struct miranda {
+ MethodBlock *mb;
+ int mtbl_idx;
+ int default_conflict;
+} Miranda;
+
void linkClass(Class *class) {
static MethodBlock *obj_fnlzr_mthd = NULL;
@@ -1207,21 +1211,23 @@
if(!(cb->access_flags & ACC_INTERFACE)) {
int *offsets_pntr = sysMalloc(itbl_offset_count * sizeof(int));
- int old_mtbl_size = method_table_size;
- MethodBlock *miranda[MRNDA_CACHE_SZE];
+ Miranda *mirandas = NULL;
+ int new_mtbl_count = 0;
int miranda_count = 0;
- int mtbl_idx;
/* run through table again, this time filling in the offsets array -
* for each new interface, run through it's methods and locate
* each method in this classes method table */
for(i = spr_imthd_tbl_sze; i < cb->imethod_table_size; i++) {
- ClassBlock *intf_cb = CLASS_CB(cb->imethod_table[i].interface);
+ Class *interface = cb->imethod_table[i].interface;
+ ClassBlock *intf_cb = CLASS_CB(interface);
+
cb->imethod_table[i].offsets = offsets_pntr;
for(j = 0; j < intf_cb->methods_count; j++) {
MethodBlock *intf_mb = &intf_cb->methods[j];
+ int mtbl_idx, mrnda_idx;
if((intf_mb->access_flags & (ACC_STATIC | ACC_PRIVATE)) ||
(intf_mb->name[0] == '<'))
@@ -1233,49 +1239,112 @@
method */
for(mtbl_idx = method_table_size - 1; mtbl_idx >= 0; mtbl_idx--)
if(intf_mb->name == method_table[mtbl_idx]->name &&
- intf_mb->type == method_table[mtbl_idx]->type) {
- *offsets_pntr++ = mtbl_idx;
+ intf_mb->type == method_table[mtbl_idx]->type)
break;
- }
- if(mtbl_idx < 0) {
+ /* If we found the method in the method table and it's
+ a real method (i.e. implemented) or we already have
+ conflicting defaults we're done */
+ if(mtbl_idx >= 0) {
+ MethodBlock *mb = method_table[mtbl_idx];
+ if(!(mb->access_flags & ACC_MIRANDA) ||
+ mb->flags & MB_DEFAULT_CONFLICT) {
+ *offsets_pntr++ = mtbl_idx;
+ continue;
+ }
+ }
- /* didn't find it - add a dummy abstract method (a so-called
- miranda method). If it's invoked we'll get an abstract
- method error */
-
- int k;
- for(k = 0; k < miranda_count; k++)
- if(intf_mb->name == miranda[k]->name &&
- intf_mb->type == miranda[k]->type)
- break;
+ /* We didn't find it, or we already have a matching
+ inherited Miranda method. Search the Miranda cache
+ to see if we have cached a new Miranda method (either
+ a new Miranda or an override - see below) */
+ for(mrnda_idx = 0; mrnda_idx < miranda_count; mrnda_idx++)
+ if(intf_mb->name == mirandas[mrnda_idx].mb->name &&
+ intf_mb->type == mirandas[mrnda_idx].mb->type)
+ break;
- *offsets_pntr++ = method_table_size + k;
+ if(mrnda_idx == miranda_count) {
+ int new_mtbl_idx, default_conflict = FALSE;
- if(k == miranda_count) {
- if(miranda_count == MRNDA_CACHE_SZE) {
- resizeMTable(method_table, method_table_size,
- miranda, MRNDA_CACHE_SZE);
- miranda_count = 0;
+ /* No cached Miranda method. If we found a Miranda
+ method in the method table we need to check it
+ against the interface method to see if either one
+ extends the other. If the method table Miranda
+ extends the new method it takes precedence and we
+ don't need a new Miranda. If, however, the new method
+ extends the method table Miranda, or they are
+ unrelated, we need to add a new Miranda to override
+ the method table Miranda (with the new Miranda, or a
+ default conflict). */
+ if(mtbl_idx >= 0) {
+ MethodBlock *mtbl_mb = method_table[mtbl_idx];
+
+ if(((mtbl_mb->access_flags & ACC_ABSTRACT)
+ && (intf_mb->access_flags & ACC_ABSTRACT))
+ || mtbl_mb->miranda_mb->class == interface
+ || implements(interface, mtbl_mb->miranda_mb->class)) {
+ *offsets_pntr++ = mtbl_idx;
+ continue;
}
- miranda[miranda_count++] = intf_mb;
+
+ if(!implements(mtbl_mb->miranda_mb->class, interface))
+ default_conflict = TRUE;
+
+ /* The new Miranda is an override, so it replaces
+ the method in the method table */
+ new_mtbl_idx = mtbl_idx;
+ } else {
+ /* No cached Miranda, and none in the method table -
+ simply add a new Miranda - it has a new method
+ table index */
+ new_mtbl_idx = method_table_size + new_mtbl_count++;
+ }
+
+ /* Extend the Miranda cache if it's full */
+ if((miranda_count % MRNDA_CACHE_INCR) == 0)
+ mirandas = sysRealloc(mirandas, (miranda_count +
+ MRNDA_CACHE_INCR) * sizeof(Miranda));
+
+ /* Add the new Miranda to the cache */
+ mirandas[miranda_count].mb = intf_mb;
+ mirandas[miranda_count].mtbl_idx = new_mtbl_idx;
+ mirandas[miranda_count].default_conflict = default_conflict;
+ miranda_count++;
+ } else {
+ /* Found a matching Miranda method in the cache (either
+ an override or a new Miranda). Check the two methods
+ against each other as above. The difference is if
+ we need to override, we simply modify the cached
+ Miranda - we don't need to add a new Miranda for the
+ override */
+ MethodBlock *mrnda_mb = mirandas[mrnda_idx].mb;
+
+ if(!((mrnda_mb->access_flags & ACC_ABSTRACT)
+ && (intf_mb->access_flags & ACC_ABSTRACT))
+ && !mirandas[mrnda_idx].default_conflict
+ && mrnda_mb->class != interface
+ && !implements(interface, mrnda_mb->class)) {
+
+ if(implements(mrnda_mb->class, interface))
+ mirandas[mrnda_idx].mb = intf_mb;
+ else
+ mirandas[mrnda_idx].default_conflict = TRUE;
}
}
+
+ *offsets_pntr++ = mirandas[mrnda_idx].mtbl_idx;
}
}
- if(miranda_count > 0)
- resizeMTable(method_table, method_table_size, miranda,
- miranda_count);
-
- if(old_mtbl_size != method_table_size) {
- /* We've created some abstract methods */
- int num_mirandas = method_table_size - old_mtbl_size;
+ if(miranda_count > 0) {
+ /* We've created some new Miranda methods. Add them to
+ the method area. The method table may also need expanding
+ if they are not all overrides */
- mb = sysRealloc(cb->methods, (cb->methods_count + num_mirandas)
+ mb = sysRealloc(cb->methods, (cb->methods_count + miranda_count)
* sizeof(MethodBlock));
- /* If the realloc of the method list gave us a new pointer, the
+ /* If the realloc of the method area gave us a new pointer, the
pointers to them in the method table are now wrong. */
if(mb != cb->methods) {
/* mb will be left pointing to the end of the methods */
@@ -1284,18 +1353,43 @@
} else
mb += cb->methods_count;
- cb->methods_count += num_mirandas;
+ memset(mb, 0, miranda_count * sizeof(MethodBlock));
+
+ if(new_mtbl_count > 0) {
+ method_table_size += new_mtbl_count;
+ method_table = sysRealloc(method_table, method_table_size *
+ sizeof(MethodBlock*));
+ }
- /* Now we've expanded the method list, replace pointers to
- the interface methods. */
+ /* Now we've expanded the methods, run through the Miranda
+ cache and fill them in */
+ for(i = 0; i < miranda_count; i++,mb++) {
+ MethodBlock *intf_mb = mirandas[i].mb;
+
+ mb->class = class;
+ mb->name = intf_mb->name;
+ mb->type = intf_mb->type;
+ mb->max_stack = intf_mb->max_stack;
+ mb->max_locals = intf_mb->max_locals;
+ mb->args_count = intf_mb->args_count;
+ mb->method_table_index = mirandas[i].mtbl_idx;
+ mb->access_flags = intf_mb->access_flags | ACC_MIRANDA;
+
+ if(mirandas[i].default_conflict) {
+ mb->flags = MB_DEFAULT_CONFLICT;
+ mb->code_size = sizeof(abstract_method);
+ mb->code = abstract_method;
+ } else {
+ mb->miranda_mb = intf_mb;
+ mb->code_size = sizeof(miranda_bridge);
+ mb->code = miranda_bridge;
+ }
- for(i = old_mtbl_size; i < method_table_size; i++,mb++) {
- memcpy(mb, method_table[i], sizeof(MethodBlock));
- mb->access_flags |= ACC_MIRANDA;
- mb->method_table_index = i;
-// mb->class = class;
- method_table[i] = mb;
+ method_table[mirandas[i].mtbl_idx] = mb;
}
+
+ sysFree(mirandas);
+ cb->methods_count += miranda_count;
}
}
@@ -1948,8 +2042,8 @@
if(!(mb->access_flags & (ACC_NATIVE | ACC_ABSTRACT | ACC_MIRANDA)))
gcPendingFree(mb->code);
- /* Miranda methods are a shallow copy of an interface
- method so we must not free the data they point to */
+ /* Miranda methods have no exception, line number
+ or throw tables */
if(mb->access_flags & ACC_MIRANDA)
continue;
@@ -1960,43 +2054,56 @@
gcPendingFree(mb->throw_table);
}
- gcPendingFree(cb->methods);
- gcPendingFree(cb->inner_classes);
-
if(cb->extra_attributes != NULL) {
+ int methods_count;
+
+ /* The method extra attributes does not include the Miranda
+ methods so we need to adjust the methods count. The
+ Mirandas are all at the end of the methods and are small
+ in number - this quick loop is preferable to storing an
+ extra count in the method block. Likewise, we could put
+ something in the loop above to track the last non-Miranda,
+ but extra attributes are also rare. */
+ for(i = cb->methods_count - 1; i >= 0 &&
+ cb->methods[i].access_flags & ACC_MIRANDA; i--);
+ methods_count = i + 1;
+
freeSingleAttributes(cb->extra_attributes->class_annos);
freeIndexedAttributes(cb->extra_attributes->field_annos,
cb->fields_count);
freeIndexedAttributes(cb->extra_attributes->method_annos,
- cb->methods_count);
+ methods_count);
freeIndexedAttributes(cb->extra_attributes->method_parameter_annos,
- cb->methods_count);
+ methods_count);
freeIndexedAttributes(cb->extra_attributes->method_anno_default_val,
- cb->methods_count);
+ methods_count);
#ifdef JSR308
freeSingleAttributes(cb->extra_attributes->class_type_annos);
freeIndexedAttributes(cb->extra_attributes->field_type_annos,
cb->fields_count);
freeIndexedAttributes(cb->extra_attributes->method_type_annos,
- cb->methods_count);
+ methods_count);
#endif
#ifdef JSR901
freeIndexedAttributes(cb->extra_attributes->method_parameters,
- cb->methods_count);
+ methods_count);
#endif
gcPendingFree(cb->extra_attributes);
}
+ gcPendingFree(cb->methods);
+ gcPendingFree(cb->inner_classes);
+
if(cb->state >= CLASS_LINKED) {
ClassBlock *super_cb = CLASS_CB(cb->super);
/* interfaces do not have a method table, or
imethod table offsets */
if(!IS_INTERFACE(cb)) {
- int spr_imthd_sze = super_cb->imethod_table_size;
+ int spr_imthd_sze = super_cb->imethod_table_size;
gcPendingFree(cb->method_table);
if(cb->imethod_table_size > spr_imthd_sze)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jamvm-7c8dceb90880616b7dd670f257961a1f5f371ec3/src/classlib/openjdk/access.c new/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/classlib/openjdk/access.c
--- old/jamvm-7c8dceb90880616b7dd670f257961a1f5f371ec3/src/classlib/openjdk/access.c 2013-05-06 04:54:31.000000000 +0200
+++ new/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/classlib/openjdk/access.c 2013-08-28 03:29:48.000000000 +0200
@@ -23,7 +23,7 @@
static Class *magic_accessor;
-#ifdef JSR292
+#ifdef JSR335
static Class *magic_lambda;
#endif
@@ -32,7 +32,7 @@
if(magic_accessor == NULL)
return FALSE;
-#ifdef JSR292
+#ifdef JSR335
magic_lambda = findSystemClass0(SYMBOL(java_lang_invoke_MagicLambdaImpl));
if(magic_lambda == NULL)
return FALSE;
@@ -45,7 +45,7 @@
}
int classlibAccessCheck(Class *class, Class *referrer) {
-#ifdef JSR292
+#ifdef JSR335
if(isSubClassOf(magic_lambda, referrer))
return TRUE;
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jamvm-7c8dceb90880616b7dd670f257961a1f5f371ec3/src/classlib/openjdk/classlib-defs.h new/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/classlib/openjdk/classlib-defs.h
--- old/jamvm-7c8dceb90880616b7dd670f257961a1f5f371ec3/src/classlib/openjdk/classlib-defs.h 2013-05-06 04:54:31.000000000 +0200
+++ new/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/classlib/openjdk/classlib-defs.h 2013-08-28 03:29:48.000000000 +0200
@@ -51,9 +51,11 @@
} CachedPolyOffsets;
#define CLASSLIB_METHOD_ANNOTATIONS(mb, type_name) { \
- if(type_name == SYMBOL(sig_java_lang_invoke_LambdaForm_Hidden)) \
- mb->flags |= LAMBDA_HIDDEN; \
+ if(type_name == SYMBOL(sig_sun_reflect_CallerSensitive)) \
+ mb->flags |= MB_CALLER_SENSITIVE; \
+ else if(type_name == SYMBOL(sig_java_lang_invoke_LambdaForm_Hidden)) \
+ mb->flags |= MB_LAMBDA_HIDDEN; \
else if(type_name == SYMBOL(sig_java_lang_invoke_LambdaForm_Compiled)) \
- mb->flags |= LAMBDA_COMPILED; \
+ mb->flags |= MB_LAMBDA_COMPILED; \
}
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jamvm-7c8dceb90880616b7dd670f257961a1f5f371ec3/src/classlib/openjdk/classlib-symbol.h new/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/classlib/openjdk/classlib-symbol.h
--- old/jamvm-7c8dceb90880616b7dd670f257961a1f5f371ec3/src/classlib/openjdk/classlib-symbol.h 2013-05-06 04:54:31.000000000 +0200
+++ new/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/classlib/openjdk/classlib-symbol.h 2013-08-28 03:29:48.000000000 +0200
@@ -78,6 +78,7 @@
action(sun_reflect_MethodAccessorImpl, "sun/reflect/MethodAccessorImpl"), \
action(sig_java_lang_invoke_LambdaForm, "Ljava/lang/invoke/LambdaForm;"), \
action(sig_java_lang_invoke_MemberName, "Ljava/lang/invoke/MemberName;"), \
+ action(sig_sun_reflect_CallerSensitive, "Lsun/reflect/CallerSensitive;"), \
action(java_lang_invoke_MagicLambdaImpl, \
"java/lang/invoke/MagicLambdaImpl"), \
action(sig_java_lang_invoke_MethodHandle, \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jamvm-7c8dceb90880616b7dd670f257961a1f5f371ec3/src/classlib/openjdk/frame.c new/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/classlib/openjdk/frame.c
--- old/jamvm-7c8dceb90880616b7dd670f257961a1f5f371ec3/src/classlib/openjdk/frame.c 2013-05-06 04:54:31.000000000 +0200
+++ new/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/classlib/openjdk/frame.c 2013-08-28 03:29:48.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011, 2012 Robert Lougher .
+ * Copyright (C) 2011, 2012, 2013 Robert Lougher .
*
* This file is part of JamVM.
*
@@ -55,7 +55,7 @@
do {
for(; last->mb != NULL; last = last->prev)
if(!isSubClassOf(method_accessor, last->mb->class)
- && !(last->mb->flags & LAMBDA_COMPILED)
+ && !(last->mb->flags & MB_LAMBDA_COMPILED)
&& last->mb != mthd_invoke_mb
&& depth-- <= 0)
return last;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jamvm-7c8dceb90880616b7dd670f257961a1f5f371ec3/src/classlib/openjdk/jvm.c new/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/classlib/openjdk/jvm.c
--- old/jamvm-7c8dceb90880616b7dd670f257961a1f5f371ec3/src/classlib/openjdk/jvm.c 2013-05-06 04:54:31.000000000 +0200
+++ new/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/classlib/openjdk/jvm.c 2013-08-28 03:29:48.000000000 +0200
@@ -479,7 +479,7 @@
jclass JVM_GetCallerClass(JNIEnv* env, int depth) {
TRACE("JVM_GetCallerClass(env=%p, depth=%d)", env, depth);
- return getCallerClass(depth);
+ return getCallerClass(depth == -1 ? 2 : depth);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jamvm-7c8dceb90880616b7dd670f257961a1f5f371ec3/src/classlib/openjdk/mh.c new/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/classlib/openjdk/mh.c
--- old/jamvm-7c8dceb90880616b7dd670f257961a1f5f371ec3/src/classlib/openjdk/mh.c 2013-05-06 04:54:31.000000000 +0200
+++ new/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/classlib/openjdk/mh.c 2013-08-28 03:29:48.000000000 +0200
@@ -246,10 +246,11 @@
#define REF_newInvokeSpecial 8
#define REF_invokeInterface 9
-#define IS_METHOD 0x10000
-#define IS_CONSTRUCTOR 0x20000
-#define IS_FIELD 0x40000
-#define IS_TYPE 0x80000
+#define IS_METHOD 0x010000
+#define IS_CONSTRUCTOR 0x020000
+#define IS_FIELD 0x040000
+#define IS_TYPE 0x080000
+#define CALLER_SENSITIVE 0x100000
#define SEARCH_SUPERCLASSES 0x100000
#define SEARCH_INTERFACES 0x200000
@@ -259,7 +260,7 @@
#define REFERENCE_KIND_SHIFT 24
#define REFERENCE_KIND_MASK (0xf000000 >> REFERENCE_KIND_SHIFT)
-int stackOverflowCheck(ExecEnv *ee, char *sp) {
+static int stackOverflowCheck(ExecEnv *ee, char *sp) {
if(sp > ee->stack_end) {
if(ee->overflow++) {
/* Overflow when we're already throwing stack
@@ -277,7 +278,7 @@
return FALSE;
}
-void executePolyMethod(Object *ob, MethodBlock *mb, uintptr_t *lvars) {
+static void executePolyMethod(Object *ob, MethodBlock *mb, uintptr_t *lvars) {
if(mb->access_flags & ACC_NATIVE)
(*mb->native_invoker)(mb->class, mb, lvars);
else {
@@ -311,7 +312,7 @@
}
}
-int sigRetSlotSize(char *sig) {
+static int sigRetSlotSize(char *sig) {
int len = strlen(sig);
if(sig[len-2] != ')')
@@ -328,7 +329,9 @@
}
}
-uintptr_t *invokeBasic(Class *class, MethodBlock *mb, uintptr_t *ostack) {
+static uintptr_t *invokeBasic(Class *class, MethodBlock *mb,
+ uintptr_t *ostack) {
+
Object *method_handle = (Object*)ostack[0];
Object *form = INST_DATA(method_handle, Object*, mthd_hndl_form_offset);
Object *vmentry = INST_DATA(form, Object*, lmda_form_vmentry_offset);
@@ -341,7 +344,9 @@
return ostack;
}
-uintptr_t *linkToSpecial(Class *class, MethodBlock *mb, uintptr_t *ostack) {
+static uintptr_t *linkToSpecial(Class *class, MethodBlock *mb,
+ uintptr_t *ostack) {
+
Object *mem_name = (Object*)ostack[mb->args_count-1];
MethodBlock *vmtarget = INST_DATA(mem_name, MethodBlock*,
mem_name_vmtarget_offset);
@@ -352,7 +357,9 @@
return ostack;
}
-uintptr_t *linkToVirtual(Class *class, MethodBlock *mb, uintptr_t *ostack) {
+static uintptr_t *linkToVirtual(Class *class, MethodBlock *mb,
+ uintptr_t *ostack) {
+
Object *this = (Object*)ostack[0];
Object *mem_name = (Object*)ostack[mb->args_count-1];
MethodBlock *vmtarget = INST_DATA(mem_name, MethodBlock*,
@@ -366,6 +373,15 @@
return ostack;
}
+static int mbFlags(MethodBlock *mb) {
+ int flags = mb->access_flags;
+
+ if(mb->flags & MB_CALLER_SENSITIVE)
+ flags |= CALLER_SENSITIVE;
+
+ return flags;
+}
+
void initMemberName(Object *mname, Object *target) {
if(target->class == method_reflect_class) {
@@ -374,7 +390,7 @@
ClassBlock *cb = CLASS_CB(decl_class);
MethodBlock *mb = &(cb->methods[slot]);
- int flags = mb->access_flags | IS_METHOD;
+ int flags = mbFlags(mb) | IS_METHOD;
int ref_kind;
if(mb->access_flags & ACC_STATIC)
@@ -394,7 +410,7 @@
int slot = INST_DATA(target, int, cons_slot_offset);
Class *decl_class = INST_DATA(target, Class*, cons_class_offset);
MethodBlock *mb = &(CLASS_CB(decl_class)->methods[slot]);
- int flags = mb->access_flags | IS_CONSTRUCTOR |
+ int flags = mbFlags(mb) | IS_CONSTRUCTOR |
(REF_invokeSpecial << REFERENCE_KIND_SHIFT);
INST_DATA(mname, Class*, mem_name_clazz_offset) = decl_class;
@@ -529,7 +545,7 @@
if(j++ < rlen) {
Object *mname = *rpntr++;
- int flags = mb->access_flags | IS_METHOD;
+ int flags = mbFlags(mb) | IS_METHOD;
flags |= (mb->access_flags & ACC_STATIC ? REF_invokeStatic
: REF_invokeVirtual)
@@ -555,7 +571,9 @@
return 0;
}
-int class2Signature(Class *class, char *buff[], int pos, int *buff_len) {
+static int class2Signature(Class *class, char *buff[], int pos,
+ int *buff_len) {
+
ClassBlock *cb = CLASS_CB(class);
int rem, len, name_len;
@@ -587,7 +605,7 @@
return pos;
}
-char *type2Signature(Object *type, int add_if_absent) {
+static char *type2Signature(Object *type, int add_if_absent) {
char *sig, *found;
if(IS_CLASS(type)) {
@@ -633,7 +651,7 @@
#define isStaticPolymorphicSig(id) (id >= ID_linkToStatic)
-int polymorphicNameID(Class *clazz, char *name) {
+static int polymorphicNameID(Class *clazz, char *name) {
if(CLASS_CB(clazz)->name == SYMBOL(java_lang_invoke_MethodHandle)) {
if(name == SYMBOL(invoke) || name == SYMBOL(invokeExact))
return ID_invokeGeneric;
@@ -651,7 +669,7 @@
return -1;
}
-NativeMethod polymorphicID2Invoker(int id) {
+static NativeMethod polymorphicID2Invoker(int id) {
switch(id) {
case ID_invokeBasic:
return &invokeBasic;
@@ -665,7 +683,7 @@
return NULL;
}
-Object *findMethodHandleType(char *type, Class *accessing_class) {
+static Object *findMethodHandleType(char *type, Class *accessing_class) {
Object *method_type, *ptypes;
char *signature, *sig;
Class *rtype;
@@ -736,9 +754,9 @@
return mt;
}
-Object *findMethodHandleConstant(Class *class, int ref_kind,
- Class *defining_class,
- char *name, char *type) {
+static Object *findMethodHandleConstant(Class *class, int ref_kind,
+ Class *defining_class,
+ char *name, char *type) {
Object *mh;
Object *name_str = findInternedString(createString(name));
@@ -810,7 +828,7 @@
return mh;
}
-int cpType2PrimIdx(int type) {
+static int cpType2PrimIdx(int type) {
switch(type) {
case CONSTANT_Integer:
return PRIM_IDX_INT;
@@ -825,8 +843,10 @@
}
}
-PolyMethodBlock *findInvokeDynamicInvoker(Class *class, char *methodname,
- char *type, int boot_mthd_idx) {
+static PolyMethodBlock *findInvokeDynamicInvoker(Class *class,
+ char *methodname,
+ char *type,
+ int boot_mthd_idx) {
Object *exception;
Object *boot_mthd;
Object *method_type;
@@ -948,8 +968,9 @@
return pmb;
}
-PolyMethodBlock *findMethodHandleInvoker(Class *class, Class *accessing_class,
- char *methodname, char *type) {
+static PolyMethodBlock *findMethodHandleInvoker(Class *class,
+ Class *accessing_class,
+ char *methodname, char *type) {
Object *name_str = findInternedString(createString(methodname));
Class *obj_array_class = findArrayClass("[Ljava/lang/Object;");
@@ -1180,7 +1201,7 @@
if(mb == NULL)
goto throw_excep;
- flags |= mb->access_flags;
+ flags |= mbFlags(mb);
INST_DATA(mname, int, mem_name_flags_offset) = flags;
INST_DATA(mname, MethodBlock*, mem_name_vmtarget_offset) = mb;
break;
@@ -1192,7 +1213,7 @@
if(mb == NULL)
goto throw_excep;
- flags |= mb->access_flags;
+ flags |= mbFlags(mb);
INST_DATA(mname, int, mem_name_flags_offset) = flags;
INST_DATA(mname, MethodBlock*, mem_name_vmtarget_offset) = mb;
break;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jamvm-7c8dceb90880616b7dd670f257961a1f5f371ec3/src/classlib/openjdk/natives.c new/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/classlib/openjdk/natives.c
--- old/jamvm-7c8dceb90880616b7dd670f257961a1f5f371ec3/src/classlib/openjdk/natives.c 2013-05-06 04:54:31.000000000 +0200
+++ new/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/classlib/openjdk/natives.c 2013-08-28 03:29:48.000000000 +0200
@@ -88,6 +88,23 @@
return ostack;
}
+uintptr_t *getAddress(Class *class, MethodBlock *mb, uintptr_t *ostack) {
+ int64_t address = *(int64_t *)&ostack[1];
+ uintptr_t *pntr = (uintptr_t *)(uintptr_t)address;
+
+ *(int64_t *)ostack = (int64_t)*pntr;
+ return ostack + 2;
+}
+
+uintptr_t *putAddress(Class *class, MethodBlock *mb, uintptr_t *ostack) {
+ int64_t address = *(int64_t *)&ostack[1];
+ int64_t value = *(int64_t *)&ostack[3];
+ uintptr_t *pntr = (uintptr_t *)(uintptr_t)address;
+
+ *pntr = (uintptr_t)value;
+ return ostack;
+}
+
uintptr_t *putLongAddress(Class *class, MethodBlock *mb, uintptr_t *ostack) {
int64_t address = *(int64_t *)&ostack[1];
int64_t value = *(int64_t *)&ostack[3];
@@ -455,6 +472,8 @@
staticFieldOffset},
{"staticFieldBase", "(Ljava/lang/reflect/Field;)Ljava/lang/Object;",
staticFieldBase},
+ {"getAddress", "(J)J", getAddress},
+ {"putAddress", "(JJ)V", putAddress},
{"putLong", "(JJ)V", putLongAddress},
{"putDouble", "(JD)V", putLongAddress},
{"putInt", "(JI)V", putIntAddress},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jamvm-7c8dceb90880616b7dd670f257961a1f5f371ec3/src/interp/direct.c new/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/interp/direct.c
--- old/jamvm-7c8dceb90880616b7dd670f257961a1f5f371ec3/src/interp/direct.c 2013-05-06 04:54:31.000000000 +0200
+++ new/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/interp/direct.c 2013-08-28 03:29:48.000000000 +0200
@@ -337,6 +337,7 @@
case OPC_DREM: case OPC_FNEG: case OPC_DNEG:
case OPC_MONITORENTER: case OPC_MONITOREXIT:
case OPC_ABSTRACT_METHOD_ERROR:
+ case OPC_MIRANDA_BRIDGE:
#ifdef USE_CACHE
cache = 0;
pc += 1;
@@ -449,9 +450,6 @@
case OPC_INVOKEVIRTUAL: case OPC_INVOKESPECIAL:
case OPC_INVOKESTATIC: case OPC_CHECKCAST:
case OPC_INSTANCEOF: case OPC_PUTFIELD:
-#ifdef JSR292
- case OPC_INVOKEDYNAMIC:
-#endif
REWRITE_OPERAND(READ_U2_OP(code + pc));
#ifdef USE_CACHE
cache = 0;
@@ -660,6 +658,9 @@
}
case OPC_INVOKEINTERFACE:
+#ifdef JSR292
+ case OPC_INVOKEDYNAMIC:
+#endif
REWRITE_OPERAND(READ_U2_OP(code + pc));
#ifdef USE_CACHE
cache = 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jamvm-7c8dceb90880616b7dd670f257961a1f5f371ec3/src/interp/engine/interp-threading.h new/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/interp/engine/interp-threading.h
--- old/jamvm-7c8dceb90880616b7dd670f257961a1f5f371ec3/src/interp/engine/interp-threading.h 2013-05-06 04:54:31.000000000 +0200
+++ new/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/interp/engine/interp-threading.h 2013-08-28 03:29:48.000000000 +0200
@@ -273,10 +273,10 @@
L(OPC_GETSTATIC_QUICK_REF, level, label), \
L(OPC_PUTSTATIC_QUICK_REF, level, label), \
L(OPC_GETFIELD_THIS_REF, level, label), \
- &&unused, \
- &&unused, \
- &&unused, \
- &&unused, \
+ L(OPC_MIRANDA_BRIDGE, level, label), \
+ L(OPC_ABSTRACT_METHOD_ERROR, level, label), \
+ I(OPC_INLINE_REWRITER, level, label), \
+ I(OPC_PROFILE_REWRITER, level, label), \
D(OPC_INVOKEVIRTUAL_QUICK_W, level, label), \
D(OPC_GETFIELD_QUICK_W, level, label), \
D(OPC_PUTFIELD_QUICK_W, level, label), \
@@ -295,16 +295,16 @@
&&unused, \
&&unused, \
L(OPC_MULTIANEWARRAY_QUICK, level, label), \
- L(OPC_INVOKEINTERFACE_QUICK, level, label), \
- L(OPC_ABSTRACT_METHOD_ERROR, level, label), \
- I(OPC_INLINE_REWRITER, level, label), \
- I(OPC_PROFILE_REWRITER, level, label), \
J(OPC_INVOKEHANDLE, level, label), \
- J(OPC_INVOKEDYNAMIC_QUICK, level, label), \
J(OPC_INVOKEBASIC, level, label), \
J(OPC_LINKTOSPECIAL, level, label), \
J(OPC_LINKTOVIRTUAL, level, label), \
J(OPC_LINKTOINTERFACE, level, label), \
+ L(OPC_INVOKEINTERFACE_QUICK, level, label), \
+ J(OPC_INVOKEDYNAMIC_QUICK, level, label), \
+ &&unused, \
+ &&unused, \
+ &&unused, \
&&unused, \
&&unused};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jamvm-7c8dceb90880616b7dd670f257961a1f5f371ec3/src/interp/engine/interp.c new/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/interp/engine/interp.c
--- old/jamvm-7c8dceb90880616b7dd670f257961a1f5f371ec3/src/interp/engine/interp.c 2013-05-06 04:54:31.000000000 +0200
+++ new/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/interp/engine/interp.c 2013-08-28 03:29:48.000000000 +0200
@@ -2175,6 +2175,7 @@
if(pmb->appendix)
*ostack++ = (uintptr_t)pmb->appendix;
+
new_mb = pmb->mb;
arg1 = ostack - new_mb->args_count;
NULL_POINTER_CHECK(*arg1);
@@ -2187,6 +2188,7 @@
if(pmb->appendix)
*ostack++ = (uintptr_t)pmb->appendix;
+
new_mb = pmb->mb;
arg1 = ostack - new_mb->args_count;
@@ -2209,6 +2211,7 @@
DEF_OPC_210(OPC_LINKTOVIRTUAL, {
Object *mem_name = (Object*)ostack[-1];
+
arg1 = ostack - INTRINSIC_ARGS(pc);
new_mb = getLinkToVirtualTarget((Object*)*arg1, mem_name);
@@ -2217,6 +2220,7 @@
DEF_OPC_210(OPC_LINKTOINTERFACE, {
Object *mem_name = (Object*)ostack[-1];
+
arg1 = ostack - INTRINSIC_ARGS(pc);
new_mb = getLinkToInterfaceTarget((Object*)*arg1, mem_name);
@@ -2313,9 +2317,28 @@
PUSH_0((uintptr_t)obj, 4);
});)
+ /* Special bytecode which forms the body of a Miranda method.
+ If it is invoked it executes the interface method that it
+ represents. */
+
+ DEF_OPC_210(OPC_MIRANDA_BRIDGE, {
+ frame->mb = mb = mb->miranda_mb;
+ PREPARE_MB(mb);
+
+ pc = (CodePntr)mb->code;
+ cp = &(CLASS_CB(mb->class)->constant_pool);
+
+ DISPATCH_FIRST
+ })
+
/* Special bytecode which forms the body of an abstract method.
If it is invoked it'll throw an abstract method exception. */
+ /* A class which has conflicting default interface methods also
+ throws an abstract method exception if the method is invoked */
+
+ #define MESSAGE ": conflicting default methods"
+
DEF_OPC_210(OPC_ABSTRACT_METHOD_ERROR, {
/* As the method has been invoked, a frame will exist for
the abstract method itself. Pop this to get the correct
@@ -2323,7 +2346,14 @@
ee->last_frame = frame->prev;
/* Throw the exception */
- signalException(java_lang_AbstractMethodError, mb->name);
+ if(mb->flags & MB_DEFAULT_CONFLICT) {
+ char buff[strlen(mb->name) + sizeof(MESSAGE)];
+
+ strcat(strcpy(buff, mb->name), MESSAGE);
+ signalException(java_lang_AbstractMethodError, buff);
+ } else
+ signalException(java_lang_AbstractMethodError, mb->name);
+
goto throwException;
})
@@ -2398,7 +2428,7 @@
if(exceptionOccurred0(ee))
goto throwException;
- DISPATCH(0, *pc == OPC_INVOKEINTERFACE_QUICK ? 5 : 3);
+ DISPATCH(0, *pc >= OPC_INVOKEINTERFACE_QUICK ? 5 : 3);
} else {
PREPARE_MB(new_mb);
@@ -2438,7 +2468,7 @@
/* Pop frame */
ee->last_frame = frame;
- DISPATCH_METHOD_RET(*pc == OPC_INVOKEINTERFACE_QUICK ? 5 : 3);
+ DISPATCH_METHOD_RET(*pc >= OPC_INVOKEINTERFACE_QUICK ? 5 : 3);
#ifdef INLINING
DEF_DUMMY_HANDLERS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jamvm-7c8dceb90880616b7dd670f257961a1f5f371ec3/src/jam.h new/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/jam.h
--- old/jamvm-7c8dceb90880616b7dd670f257961a1f5f371ec3/src/jam.h 2013-05-06 04:54:31.000000000 +0200
+++ new/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/jam.h 2013-08-28 03:29:48.000000000 +0200
@@ -261,6 +261,10 @@
#define OPC_GETSTATIC_QUICK_REF 219
#define OPC_PUTSTATIC_QUICK_REF 220
#define OPC_GETFIELD_THIS_REF 221
+#define OPC_MIRANDA_BRIDGE 222
+#define OPC_ABSTRACT_METHOD_ERROR 223
+#define OPC_INLINE_REWRITER 224
+#define OPC_PROFILE_REWRITER 225
#define OPC_INVOKEVIRTUAL_QUICK_W 226
#define OPC_GETFIELD_QUICK_W 227
#define OPC_PUTFIELD_QUICK_W 228
@@ -273,16 +277,13 @@
#define OPC_CHECKCAST_QUICK 238
#define OPC_INSTANCEOF_QUICK 239
#define OPC_MULTIANEWARRAY_QUICK 243
-#define OPC_INVOKEINTERFACE_QUICK 244
-#define OPC_ABSTRACT_METHOD_ERROR 245
-#define OPC_INLINE_REWRITER 246
-#define OPC_PROFILE_REWRITER 247
-#define OPC_INVOKEHANDLE 248
-#define OPC_INVOKEDYNAMIC_QUICK 249
-#define OPC_INVOKEBASIC 250
-#define OPC_LINKTOSPECIAL 251
-#define OPC_LINKTOVIRTUAL 252
-#define OPC_LINKTOINTERFACE 253
+#define OPC_INVOKEHANDLE 244
+#define OPC_INVOKEBASIC 245
+#define OPC_LINKTOSPECIAL 246
+#define OPC_LINKTOVIRTUAL 247
+#define OPC_LINKTOINTERFACE 248
+#define OPC_INVOKEINTERFACE_QUICK 249
+#define OPC_INVOKEDYNAMIC_QUICK 250
/* Constant pool tags */
@@ -381,8 +382,10 @@
/* Method flags */
-#define LAMBDA_HIDDEN 1
-#define LAMBDA_COMPILED 2
+#define MB_LAMBDA_HIDDEN 1
+#define MB_LAMBDA_COMPILED 2
+#define MB_CALLER_SENSITIVE 4
+#define MB_DEFAULT_CONFLICT 8
/* Method states (direct or inlining
interpreter variants) */
@@ -568,7 +571,10 @@
u2 exception_table_size;
u2 line_no_table_size;
ExceptionTableEntry *exception_table;
- LineNoTableEntry *line_no_table;
+ union {
+ LineNoTableEntry *line_no_table;
+ MethodBlock *miranda_mb;
+ };
};
struct {
union {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jamvm-7c8dceb90880616b7dd670f257961a1f5f371ec3/src/resolve.c new/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/resolve.c
--- old/jamvm-7c8dceb90880616b7dd670f257961a1f5f371ec3/src/resolve.c 2013-05-06 04:54:31.000000000 +0200
+++ new/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/resolve.c 2013-08-28 03:29:48.000000000 +0200
@@ -211,14 +211,16 @@
if(exceptionOccurred())
return NULL;
-#if 0
if(resolved_cb->access_flags & ACC_INTERFACE) {
+#ifdef JSR335
+ mb = lookupInterfaceMethod(resolved_class, methodname,
+ methodtype);
+#else
signalException(java_lang_IncompatibleClassChangeError, NULL);
return NULL;
- }
#endif
-
- mb = lookupMethod(resolved_class, methodname, methodtype);
+ } else
+ mb = lookupMethod(resolved_class, methodname, methodtype);
#ifdef JSR292
if(mb == NULL)
++++++ java-1.7.0-openjdk-freetype-check-fix.patch ++++++
diff -up openjdk/jdk/make/common/shared/Sanity.gmk.sav openjdk/jdk/make/common/shared/Sanity.gmk
--- openjdk/jdk/make/common/shared/Sanity.gmk.sav 2012-02-14 16:12:48.000000000 -0500
+++ openjdk/jdk/make/common/shared/Sanity.gmk 2012-03-07 17:31:26.153840755 -0500
@@ -814,12 +814,12 @@ ifdef OPENJDK
@(($(CD) $(BUILDDIR)/tools/freetypecheck && $(MAKE)) || \
$(ECHO) "Failed to build freetypecheck." ) > $@
- sane-freetype: $(TEMPDIR)/freetypeinfo
- @if [ "`$(CAT) $< | $(GREP) Fail`" != "" ]; then \
- $(ECHO) "ERROR: FreeType version " $(REQUIRED_FREETYPE_VERSION) \
- " or higher is required. \n" \
- "`$(CAT) $<` \n" >> $(ERROR_FILE) ; \
- fi
+# sane-freetype: $(TEMPDIR)/freetypeinfo
+# @if [ "`$(CAT) $< | $(GREP) Fail`" != "" ]; then \
+# $(ECHO) "ERROR: FreeType version " $(REQUIRED_FREETYPE_VERSION) \
+# " or higher is required. \n" \
+# "`$(CAT) $<` \n" >> $(ERROR_FILE) ; \
+# fi
else
#do nothing (cross-compiling)
sane-freetype:
++++++ java-1.7.0-openjdk-ppc-zero-hotspot.patch ++++++
--- /var/tmp/diff_new_pack.RDWi8j/_old 2013-11-01 07:55:23.000000000 +0100
+++ /var/tmp/diff_new_pack.RDWi8j/_new 2013-11-01 07:55:23.000000000 +0100
@@ -1,11 +1,10 @@
---- openjdk/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp 2012-03-23 10:57:01.000000000 -0400
-+++ openjdk/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp 2012-03-23 10:57:00.000000000 -0400
-@@ -32,11 +32,11 @@
- //
-
+Index: openjdk/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp
+===================================================================
+--- openjdk/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp.orig
++++ openjdk/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp
+@@ -34,9 +34,9 @@
define_pd_global(bool, DontYieldALot, false);
--define_pd_global(intx, ThreadStackSize, 1536);
-+define_pd_global(intx, ThreadStackSize, 1664);
+ define_pd_global(intx, ThreadStackSize, 1664);
#ifdef _LP64
-define_pd_global(intx, VMThreadStackSize, 1024);
+define_pd_global(intx, VMThreadStackSize, 1664);
@@ -13,5 +12,5 @@
-define_pd_global(intx, VMThreadStackSize, 512);
+define_pd_global(intx, VMThreadStackSize, 1152);
#endif // _LP64
- define_pd_global(intx, SurvivorRatio, 8);
define_pd_global(intx, CompilerThreadStackSize, 0);
+ define_pd_global(uintx, JVMInvokeMethodSlack, 8192);
++++++ java-1.7.0-openjdk-ppc-zero-jdk.patch ++++++
--- /var/tmp/diff_new_pack.RDWi8j/_old 2013-11-01 07:55:23.000000000 +0100
+++ /var/tmp/diff_new_pack.RDWi8j/_new 2013-11-01 07:55:23.000000000 +0100
@@ -1,20 +1,20 @@
---- openjdk/jdk/make/common/shared/Defs-java.gmk 2012-03-23 10:56:45.000000000 -0400
-+++ openjdk/jdk/make/common/shared/Defs-java.gmk 2012-03-23 10:56:45.000000000 -0400
-@@ -83,9 +83,9 @@
+Index: openjdk/jdk/make/common/shared/Defs-java.gmk
+===================================================================
+--- openjdk/jdk/make/common/shared/Defs-java.gmk.orig
++++ openjdk/jdk/make/common/shared/Defs-java.gmk
+@@ -88,7 +88,7 @@ JAVAC_JVM_FLAGS =
# 64-bit builds require a larger thread stack size.
ifeq ($(ARCH_DATA_MODEL), 32)
- JAVAC_JVM_FLAGS += -J-XX:ThreadStackSize=768
+ JAVAC_JVM_FLAGS += -J-XX:ThreadStackSize=1152
else
-- JAVAC_JVM_FLAGS += -J-XX:ThreadStackSize=1536
-+ JAVAC_JVM_FLAGS += -J-XX:ThreadStackSize=1664
+ JAVAC_JVM_FLAGS += -J-XX:ThreadStackSize=1664
endif
- JAVAC_JVM_FLAGS += $(JAVA_TOOLS_FLAGS:%=-J%)
-
-diff -up openjdk/corba/make/common/shared/Defs-java.gmk.ppc openjdk/corba/make/common/shared/Defs-java.gmk
---- openjdk/corba/make/common/shared/Defs-java.gmk.ppc 2012-03-24 11:44:34.450072733 +0100
-+++ openjdk/corba/make/common/shared/Defs-java.gmk 2012-03-24 11:44:53.300073137 +0100
+Index: openjdk/corba/make/common/shared/Defs-java.gmk
+===================================================================
+--- openjdk/corba/make/common/shared/Defs-java.gmk.orig
++++ openjdk/corba/make/common/shared/Defs-java.gmk
@@ -79,9 +79,9 @@ JAVAC_JVM_FLAGS =
# 64-bit builds require a larger thread stack size.
@@ -22,8 +22,8 @@
- JAVAC_JVM_FLAGS += -J-XX:ThreadStackSize=768
+ JAVAC_JVM_FLAGS += -J-XX:ThreadStackSize=1152
else
-- JAVAC_JVM_FLAGS += -J-XX:ThreadStackSize=1536
-+ JAVAC_JVM_FLAGS += -J-XX:ThreadStackSize=1664
+- JAVAC_JVM_FLAGS += -J-XX:ThreadStackSize=1664
++ JAVAC_JVM_FLAGS += -J-XX:ThreadStackSize=1536
endif
JAVAC_JVM_FLAGS += $(JAVA_TOOLS_FLAGS:%=-J%)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org