mirror of
https://github.com/darlinghq/darling-openjdk.git
synced 2024-11-23 04:19:43 +00:00
Merge
This commit is contained in:
commit
5c3de7ec78
1
.hgtags
1
.hgtags
@ -616,4 +616,5 @@ decd3d2953b640f1043ee76953ff89238bff92e8 jdk-14.0.1+0
|
||||
604bb7c9455b527ed3fa0ebbccefcae593c1249b jdk-14.0.1+2
|
||||
0cf2435eb965fe71170a8b23a4552f710918d7d5 jdk-14.0.1+3
|
||||
c871b7595c5f53e12a726c5ee0b259801c45cbd7 jdk-14.0.1+4
|
||||
d4323f0e169bf9e2611ef6ef5184daa07c7d2ee3 jdk-14.0.1+5
|
||||
bdc36db9c715b38bff9baccb4b0d7a0255481386 jdk-14.0.2+0
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2020, 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
|
||||
@ -672,11 +672,14 @@ void VM_Version::get_processor_features() {
|
||||
}
|
||||
}
|
||||
if (FLAG_IS_DEFAULT(UseAVX)) {
|
||||
FLAG_SET_DEFAULT(UseAVX, use_avx_limit);
|
||||
if (is_intel_family_core() && _model == CPU_MODEL_SKYLAKE && _stepping < 5) {
|
||||
FLAG_SET_DEFAULT(UseAVX, 2); //Set UseAVX=2 for Skylake
|
||||
// Don't use AVX-512 on older Skylakes unless explicitly requested.
|
||||
if (use_avx_limit > 2 && is_intel_skylake() && _stepping < 5) {
|
||||
FLAG_SET_DEFAULT(UseAVX, 2);
|
||||
} else {
|
||||
FLAG_SET_DEFAULT(UseAVX, use_avx_limit);
|
||||
}
|
||||
} else if (UseAVX > use_avx_limit) {
|
||||
}
|
||||
if (UseAVX > use_avx_limit) {
|
||||
warning("UseAVX=%d is not supported on this CPU, setting it to UseAVX=%d", (int) UseAVX, use_avx_limit);
|
||||
FLAG_SET_DEFAULT(UseAVX, use_avx_limit);
|
||||
} else if (UseAVX < 0) {
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2020, 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
|
||||
@ -863,6 +863,9 @@ public:
|
||||
static bool is_intel_family_core() { return is_intel() &&
|
||||
extended_cpu_family() == CPU_FAMILY_INTEL_CORE; }
|
||||
|
||||
static bool is_intel_skylake() { return is_intel_family_core() &&
|
||||
extended_cpu_model() == CPU_MODEL_SKYLAKE; }
|
||||
|
||||
static bool is_intel_tsc_synched_at_init() {
|
||||
if (is_intel_family_core()) {
|
||||
uint32_t ext_model = extended_cpu_model();
|
||||
|
@ -190,6 +190,50 @@ CompileTask* CompilationPolicy::select_task_helper(CompileQueue* compile_queue)
|
||||
return compile_queue->first();
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// CounterDecay for SimpleCompPolicy
|
||||
//
|
||||
// Iterates through invocation counters and decrements them. This
|
||||
// is done at each safepoint.
|
||||
//
|
||||
class CounterDecay : public AllStatic {
|
||||
static jlong _last_timestamp;
|
||||
static void do_method(Method* m) {
|
||||
MethodCounters* mcs = m->method_counters();
|
||||
if (mcs != NULL) {
|
||||
mcs->invocation_counter()->decay();
|
||||
}
|
||||
}
|
||||
public:
|
||||
static void decay();
|
||||
static bool is_decay_needed() {
|
||||
return ((os::javaTimeNanos() - _last_timestamp) / (NANOUNITS / MILLIUNITS)) > CounterDecayMinIntervalLength;
|
||||
}
|
||||
static void update_last_timestamp() { _last_timestamp = os::javaTimeNanos(); }
|
||||
};
|
||||
|
||||
jlong CounterDecay::_last_timestamp = 0;
|
||||
|
||||
void CounterDecay::decay() {
|
||||
update_last_timestamp();
|
||||
|
||||
// This operation is going to be performed only at the end of a safepoint
|
||||
// and hence GC's will not be going on, all Java mutators are suspended
|
||||
// at this point and hence SystemDictionary_lock is also not needed.
|
||||
assert(SafepointSynchronize::is_at_safepoint(), "can only be executed at a safepoint");
|
||||
size_t nclasses = ClassLoaderDataGraph::num_instance_classes();
|
||||
size_t classes_per_tick = nclasses * (CounterDecayMinIntervalLength * 1e-3 /
|
||||
CounterHalfLifeTime);
|
||||
for (size_t i = 0; i < classes_per_tick; i++) {
|
||||
InstanceKlass* k = ClassLoaderDataGraph::try_get_next_class();
|
||||
if (k != NULL) {
|
||||
k->methods_do(do_method);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#ifndef PRODUCT
|
||||
void SimpleCompPolicy::trace_osr_completion(nmethod* osr_nm) {
|
||||
if (TraceOnStackReplacement) {
|
||||
@ -223,6 +267,7 @@ void SimpleCompPolicy::initialize() {
|
||||
} else {
|
||||
_compiler_count = CICompilerCount;
|
||||
}
|
||||
CounterDecay::update_last_timestamp();
|
||||
}
|
||||
|
||||
// Note: this policy is used ONLY if TieredCompilation is off.
|
||||
@ -272,47 +317,6 @@ void SimpleCompPolicy::reset_counter_for_back_branch_event(const methodHandle& m
|
||||
b->set(b->state(), CompileThreshold / 2);
|
||||
}
|
||||
|
||||
//
|
||||
// CounterDecay
|
||||
//
|
||||
// Iterates through invocation counters and decrements them. This
|
||||
// is done at each safepoint.
|
||||
//
|
||||
class CounterDecay : public AllStatic {
|
||||
static jlong _last_timestamp;
|
||||
static void do_method(Method* m) {
|
||||
MethodCounters* mcs = m->method_counters();
|
||||
if (mcs != NULL) {
|
||||
mcs->invocation_counter()->decay();
|
||||
}
|
||||
}
|
||||
public:
|
||||
static void decay();
|
||||
static bool is_decay_needed() {
|
||||
return (os::javaTimeMillis() - _last_timestamp) > CounterDecayMinIntervalLength;
|
||||
}
|
||||
};
|
||||
|
||||
jlong CounterDecay::_last_timestamp = 0;
|
||||
|
||||
void CounterDecay::decay() {
|
||||
_last_timestamp = os::javaTimeMillis();
|
||||
|
||||
// This operation is going to be performed only at the end of a safepoint
|
||||
// and hence GC's will not be going on, all Java mutators are suspended
|
||||
// at this point and hence SystemDictionary_lock is also not needed.
|
||||
assert(SafepointSynchronize::is_at_safepoint(), "can only be executed at a safepoint");
|
||||
size_t nclasses = ClassLoaderDataGraph::num_instance_classes();
|
||||
size_t classes_per_tick = nclasses * (CounterDecayMinIntervalLength * 1e-3 /
|
||||
CounterHalfLifeTime);
|
||||
for (size_t i = 0; i < classes_per_tick; i++) {
|
||||
InstanceKlass* k = ClassLoaderDataGraph::try_get_next_class();
|
||||
if (k != NULL) {
|
||||
k->methods_do(do_method);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Called at the end of the safepoint
|
||||
void SimpleCompPolicy::do_safepoint_work() {
|
||||
if(UseCounterDecay && CounterDecay::is_decay_needed()) {
|
||||
|
@ -1798,6 +1798,7 @@ Node* ShenandoahBarrierC2Support::get_load_addr(PhaseIdealLoop* phase, VectorSet
|
||||
case Op_ConN:
|
||||
case Op_ConP:
|
||||
case Op_Parm:
|
||||
case Op_CreateEx:
|
||||
return phase->igvn().zerocon(T_OBJECT);
|
||||
default:
|
||||
#ifdef ASSERT
|
||||
|
@ -119,7 +119,9 @@ inline oop ShenandoahBarrierSet::AccessBarrier<decorators, BarrierSetT>::oop_loa
|
||||
if (value != NULL) {
|
||||
ShenandoahBarrierSet *const bs = ShenandoahBarrierSet::barrier_set();
|
||||
value = bs->load_reference_barrier_native(value, addr);
|
||||
bs->keep_alive_if_weak<decorators>(value);
|
||||
if (value != NULL) {
|
||||
bs->keep_alive_if_weak<decorators>(value);
|
||||
}
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
@ -203,18 +203,6 @@ ShenandoahRootUpdater::ShenandoahRootUpdater(uint n_workers, ShenandoahPhaseTimi
|
||||
_thread_roots(n_workers > 1) {
|
||||
}
|
||||
|
||||
void ShenandoahRootUpdater::strong_roots_do(uint worker_id, OopClosure* oops_cl) {
|
||||
CodeBlobToOopClosure update_blobs(oops_cl, CodeBlobToOopClosure::FixRelocations);
|
||||
CLDToOopClosure clds(oops_cl, ClassLoaderData::_claim_strong);
|
||||
|
||||
_serial_roots.oops_do(oops_cl, worker_id);
|
||||
_vm_roots.oops_do(oops_cl, worker_id);
|
||||
|
||||
_thread_roots.oops_do(oops_cl, NULL, worker_id);
|
||||
_cld_roots.cld_do(&clds, worker_id);
|
||||
_code_roots.code_blobs_do(&update_blobs, worker_id);
|
||||
}
|
||||
|
||||
ShenandoahRootAdjuster::ShenandoahRootAdjuster(uint n_workers, ShenandoahPhaseTimings::Phase phase) :
|
||||
ShenandoahRootProcessor(phase),
|
||||
_thread_roots(n_workers > 1) {
|
||||
|
@ -306,8 +306,6 @@ public:
|
||||
|
||||
template<typename IsAlive, typename KeepAlive>
|
||||
void roots_do(uint worker_id, IsAlive* is_alive, KeepAlive* keep_alive);
|
||||
|
||||
void strong_roots_do(uint worker_id, OopClosure* oops_cl);
|
||||
};
|
||||
|
||||
// Adjuster all roots at a safepoint during full gc
|
||||
|
@ -605,8 +605,8 @@ void ShenandoahTraversalGC::final_traversal_collection() {
|
||||
_heap->set_concurrent_traversal_in_progress(false);
|
||||
_heap->mark_complete_marking_context();
|
||||
|
||||
fixup_roots();
|
||||
_heap->parallel_cleaning(false);
|
||||
fixup_roots();
|
||||
|
||||
_heap->set_has_forwarded_objects(false);
|
||||
|
||||
@ -707,7 +707,8 @@ public:
|
||||
void work(uint worker_id) {
|
||||
ShenandoahParallelWorkerSession worker_session(worker_id);
|
||||
ShenandoahTraversalFixRootsClosure cl;
|
||||
_rp->strong_roots_do(worker_id, &cl);
|
||||
ShenandoahForwardedIsAliveClosure is_alive;
|
||||
_rp->roots_do(worker_id, &is_alive, &cl);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*!
|
||||
|
||||
JSZip v3.1.5 - A JavaScript class for generating and reading zip files
|
||||
JSZip v3.2.1 - A JavaScript class for generating and reading zip files
|
||||
<http://stuartk.com/jszip>
|
||||
|
||||
(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>
|
||||
@ -324,7 +324,7 @@ module.exports = {
|
||||
Promise: ES6Promise
|
||||
};
|
||||
|
||||
},{"lie":58}],7:[function(require,module,exports){
|
||||
},{"lie":37}],7:[function(require,module,exports){
|
||||
'use strict';
|
||||
var USE_TYPEDARRAY = (typeof Uint8Array !== 'undefined') && (typeof Uint16Array !== 'undefined') && (typeof Uint32Array !== 'undefined');
|
||||
|
||||
@ -411,7 +411,7 @@ exports.uncompressWorker = function () {
|
||||
return new FlateWorker("Inflate", {});
|
||||
};
|
||||
|
||||
},{"./stream/GenericWorker":28,"./utils":32,"pako":59}],8:[function(require,module,exports){
|
||||
},{"./stream/GenericWorker":28,"./utils":32,"pako":38}],8:[function(require,module,exports){
|
||||
'use strict';
|
||||
|
||||
var utils = require('../utils');
|
||||
@ -1057,7 +1057,7 @@ JSZip.defaults = require('./defaults');
|
||||
|
||||
// TODO find a better way to handle this version,
|
||||
// a require('package.json').version doesn't work with webpack, see #327
|
||||
JSZip.version = "3.1.5";
|
||||
JSZip.version = "3.2.0";
|
||||
|
||||
JSZip.loadAsync = function (content, options) {
|
||||
return new JSZip().loadAsync(content, options);
|
||||
@ -1287,13 +1287,16 @@ module.exports = {
|
||||
* @return {Buffer} a new Buffer.
|
||||
*/
|
||||
newBufferFrom: function(data, encoding) {
|
||||
// XXX We can't use `Buffer.from` which comes from `Uint8Array.from`
|
||||
// in nodejs v4 (< v.4.5). It's not the expected implementation (and
|
||||
// has a different signature).
|
||||
// see https://github.com/nodejs/node/issues/8053
|
||||
// A condition on nodejs' version won't solve the issue as we don't
|
||||
// control the Buffer polyfills that may or may not be used.
|
||||
return new Buffer(data, encoding);
|
||||
if (Buffer.from && Buffer.from !== Uint8Array.from) {
|
||||
return Buffer.from(data, encoding);
|
||||
} else {
|
||||
if (typeof data === "number") {
|
||||
// Safeguard for old Node.js versions. On newer versions,
|
||||
// Buffer.from(number) / Buffer(number, encoding) already throw.
|
||||
throw new Error("The \"data\" argument must not be a number");
|
||||
}
|
||||
return new Buffer(data, encoding);
|
||||
}
|
||||
},
|
||||
/**
|
||||
* Create a new nodejs Buffer with the specified size.
|
||||
@ -1304,7 +1307,9 @@ module.exports = {
|
||||
if (Buffer.alloc) {
|
||||
return Buffer.alloc(size);
|
||||
} else {
|
||||
return new Buffer(size);
|
||||
var buf = new Buffer(size);
|
||||
buf.fill(0);
|
||||
return buf;
|
||||
}
|
||||
},
|
||||
/**
|
||||
@ -3032,7 +3037,7 @@ exports.Utf8EncodeWorker = Utf8EncodeWorker;
|
||||
var support = require('./support');
|
||||
var base64 = require('./base64');
|
||||
var nodejsUtils = require('./nodejsUtils');
|
||||
var setImmediate = require('core-js/library/fn/set-immediate');
|
||||
var setImmediate = require('set-immediate-shim');
|
||||
var external = require("./external");
|
||||
|
||||
|
||||
@ -3504,7 +3509,7 @@ exports.prepareContent = function(name, inputData, isBinary, isOptimizedBinarySt
|
||||
});
|
||||
};
|
||||
|
||||
},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,"core-js/library/fn/set-immediate":36}],33:[function(require,module,exports){
|
||||
},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,"set-immediate-shim":54}],33:[function(require,module,exports){
|
||||
'use strict';
|
||||
var readerFor = require('./reader/readerFor');
|
||||
var utils = require('./utils');
|
||||
@ -4198,296 +4203,6 @@ for(var i = 0; i < removedMethods.length; i++) {
|
||||
module.exports = ZipObject;
|
||||
|
||||
},{"./compressedObject":2,"./stream/DataWorker":27,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31}],36:[function(require,module,exports){
|
||||
require('../modules/web.immediate');
|
||||
module.exports = require('../modules/_core').setImmediate;
|
||||
},{"../modules/_core":40,"../modules/web.immediate":56}],37:[function(require,module,exports){
|
||||
module.exports = function(it){
|
||||
if(typeof it != 'function')throw TypeError(it + ' is not a function!');
|
||||
return it;
|
||||
};
|
||||
},{}],38:[function(require,module,exports){
|
||||
var isObject = require('./_is-object');
|
||||
module.exports = function(it){
|
||||
if(!isObject(it))throw TypeError(it + ' is not an object!');
|
||||
return it;
|
||||
};
|
||||
},{"./_is-object":51}],39:[function(require,module,exports){
|
||||
var toString = {}.toString;
|
||||
|
||||
module.exports = function(it){
|
||||
return toString.call(it).slice(8, -1);
|
||||
};
|
||||
},{}],40:[function(require,module,exports){
|
||||
var core = module.exports = {version: '2.3.0'};
|
||||
if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
|
||||
},{}],41:[function(require,module,exports){
|
||||
// optional / simple context binding
|
||||
var aFunction = require('./_a-function');
|
||||
module.exports = function(fn, that, length){
|
||||
aFunction(fn);
|
||||
if(that === undefined)return fn;
|
||||
switch(length){
|
||||
case 1: return function(a){
|
||||
return fn.call(that, a);
|
||||
};
|
||||
case 2: return function(a, b){
|
||||
return fn.call(that, a, b);
|
||||
};
|
||||
case 3: return function(a, b, c){
|
||||
return fn.call(that, a, b, c);
|
||||
};
|
||||
}
|
||||
return function(/* ...args */){
|
||||
return fn.apply(that, arguments);
|
||||
};
|
||||
};
|
||||
},{"./_a-function":37}],42:[function(require,module,exports){
|
||||
// Thank's IE8 for his funny defineProperty
|
||||
module.exports = !require('./_fails')(function(){
|
||||
return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;
|
||||
});
|
||||
},{"./_fails":45}],43:[function(require,module,exports){
|
||||
var isObject = require('./_is-object')
|
||||
, document = require('./_global').document
|
||||
// in old IE typeof document.createElement is 'object'
|
||||
, is = isObject(document) && isObject(document.createElement);
|
||||
module.exports = function(it){
|
||||
return is ? document.createElement(it) : {};
|
||||
};
|
||||
},{"./_global":46,"./_is-object":51}],44:[function(require,module,exports){
|
||||
var global = require('./_global')
|
||||
, core = require('./_core')
|
||||
, ctx = require('./_ctx')
|
||||
, hide = require('./_hide')
|
||||
, PROTOTYPE = 'prototype';
|
||||
|
||||
var $export = function(type, name, source){
|
||||
var IS_FORCED = type & $export.F
|
||||
, IS_GLOBAL = type & $export.G
|
||||
, IS_STATIC = type & $export.S
|
||||
, IS_PROTO = type & $export.P
|
||||
, IS_BIND = type & $export.B
|
||||
, IS_WRAP = type & $export.W
|
||||
, exports = IS_GLOBAL ? core : core[name] || (core[name] = {})
|
||||
, expProto = exports[PROTOTYPE]
|
||||
, target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]
|
||||
, key, own, out;
|
||||
if(IS_GLOBAL)source = name;
|
||||
for(key in source){
|
||||
// contains in native
|
||||
own = !IS_FORCED && target && target[key] !== undefined;
|
||||
if(own && key in exports)continue;
|
||||
// export native or passed
|
||||
out = own ? target[key] : source[key];
|
||||
// prevent global pollution for namespaces
|
||||
exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
|
||||
// bind timers to global for call from export context
|
||||
: IS_BIND && own ? ctx(out, global)
|
||||
// wrap global constructors for prevent change them in library
|
||||
: IS_WRAP && target[key] == out ? (function(C){
|
||||
var F = function(a, b, c){
|
||||
if(this instanceof C){
|
||||
switch(arguments.length){
|
||||
case 0: return new C;
|
||||
case 1: return new C(a);
|
||||
case 2: return new C(a, b);
|
||||
} return new C(a, b, c);
|
||||
} return C.apply(this, arguments);
|
||||
};
|
||||
F[PROTOTYPE] = C[PROTOTYPE];
|
||||
return F;
|
||||
// make static versions for prototype methods
|
||||
})(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
|
||||
// export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
|
||||
if(IS_PROTO){
|
||||
(exports.virtual || (exports.virtual = {}))[key] = out;
|
||||
// export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
|
||||
if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out);
|
||||
}
|
||||
}
|
||||
};
|
||||
// type bitmap
|
||||
$export.F = 1; // forced
|
||||
$export.G = 2; // global
|
||||
$export.S = 4; // static
|
||||
$export.P = 8; // proto
|
||||
$export.B = 16; // bind
|
||||
$export.W = 32; // wrap
|
||||
$export.U = 64; // safe
|
||||
$export.R = 128; // real proto method for `library`
|
||||
module.exports = $export;
|
||||
},{"./_core":40,"./_ctx":41,"./_global":46,"./_hide":47}],45:[function(require,module,exports){
|
||||
module.exports = function(exec){
|
||||
try {
|
||||
return !!exec();
|
||||
} catch(e){
|
||||
return true;
|
||||
}
|
||||
};
|
||||
},{}],46:[function(require,module,exports){
|
||||
// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
|
||||
var global = module.exports = typeof window != 'undefined' && window.Math == Math
|
||||
? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
|
||||
if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
|
||||
},{}],47:[function(require,module,exports){
|
||||
var dP = require('./_object-dp')
|
||||
, createDesc = require('./_property-desc');
|
||||
module.exports = require('./_descriptors') ? function(object, key, value){
|
||||
return dP.f(object, key, createDesc(1, value));
|
||||
} : function(object, key, value){
|
||||
object[key] = value;
|
||||
return object;
|
||||
};
|
||||
},{"./_descriptors":42,"./_object-dp":52,"./_property-desc":53}],48:[function(require,module,exports){
|
||||
module.exports = require('./_global').document && document.documentElement;
|
||||
},{"./_global":46}],49:[function(require,module,exports){
|
||||
module.exports = !require('./_descriptors') && !require('./_fails')(function(){
|
||||
return Object.defineProperty(require('./_dom-create')('div'), 'a', {get: function(){ return 7; }}).a != 7;
|
||||
});
|
||||
},{"./_descriptors":42,"./_dom-create":43,"./_fails":45}],50:[function(require,module,exports){
|
||||
// fast apply, http://jsperf.lnkit.com/fast-apply/5
|
||||
module.exports = function(fn, args, that){
|
||||
var un = that === undefined;
|
||||
switch(args.length){
|
||||
case 0: return un ? fn()
|
||||
: fn.call(that);
|
||||
case 1: return un ? fn(args[0])
|
||||
: fn.call(that, args[0]);
|
||||
case 2: return un ? fn(args[0], args[1])
|
||||
: fn.call(that, args[0], args[1]);
|
||||
case 3: return un ? fn(args[0], args[1], args[2])
|
||||
: fn.call(that, args[0], args[1], args[2]);
|
||||
case 4: return un ? fn(args[0], args[1], args[2], args[3])
|
||||
: fn.call(that, args[0], args[1], args[2], args[3]);
|
||||
} return fn.apply(that, args);
|
||||
};
|
||||
},{}],51:[function(require,module,exports){
|
||||
module.exports = function(it){
|
||||
return typeof it === 'object' ? it !== null : typeof it === 'function';
|
||||
};
|
||||
},{}],52:[function(require,module,exports){
|
||||
var anObject = require('./_an-object')
|
||||
, IE8_DOM_DEFINE = require('./_ie8-dom-define')
|
||||
, toPrimitive = require('./_to-primitive')
|
||||
, dP = Object.defineProperty;
|
||||
|
||||
exports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes){
|
||||
anObject(O);
|
||||
P = toPrimitive(P, true);
|
||||
anObject(Attributes);
|
||||
if(IE8_DOM_DEFINE)try {
|
||||
return dP(O, P, Attributes);
|
||||
} catch(e){ /* empty */ }
|
||||
if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');
|
||||
if('value' in Attributes)O[P] = Attributes.value;
|
||||
return O;
|
||||
};
|
||||
},{"./_an-object":38,"./_descriptors":42,"./_ie8-dom-define":49,"./_to-primitive":55}],53:[function(require,module,exports){
|
||||
module.exports = function(bitmap, value){
|
||||
return {
|
||||
enumerable : !(bitmap & 1),
|
||||
configurable: !(bitmap & 2),
|
||||
writable : !(bitmap & 4),
|
||||
value : value
|
||||
};
|
||||
};
|
||||
},{}],54:[function(require,module,exports){
|
||||
var ctx = require('./_ctx')
|
||||
, invoke = require('./_invoke')
|
||||
, html = require('./_html')
|
||||
, cel = require('./_dom-create')
|
||||
, global = require('./_global')
|
||||
, process = global.process
|
||||
, setTask = global.setImmediate
|
||||
, clearTask = global.clearImmediate
|
||||
, MessageChannel = global.MessageChannel
|
||||
, counter = 0
|
||||
, queue = {}
|
||||
, ONREADYSTATECHANGE = 'onreadystatechange'
|
||||
, defer, channel, port;
|
||||
var run = function(){
|
||||
var id = +this;
|
||||
if(queue.hasOwnProperty(id)){
|
||||
var fn = queue[id];
|
||||
delete queue[id];
|
||||
fn();
|
||||
}
|
||||
};
|
||||
var listener = function(event){
|
||||
run.call(event.data);
|
||||
};
|
||||
// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
|
||||
if(!setTask || !clearTask){
|
||||
setTask = function setImmediate(fn){
|
||||
var args = [], i = 1;
|
||||
while(arguments.length > i)args.push(arguments[i++]);
|
||||
queue[++counter] = function(){
|
||||
invoke(typeof fn == 'function' ? fn : Function(fn), args);
|
||||
};
|
||||
defer(counter);
|
||||
return counter;
|
||||
};
|
||||
clearTask = function clearImmediate(id){
|
||||
delete queue[id];
|
||||
};
|
||||
// Node.js 0.8-
|
||||
if(require('./_cof')(process) == 'process'){
|
||||
defer = function(id){
|
||||
process.nextTick(ctx(run, id, 1));
|
||||
};
|
||||
// Browsers with MessageChannel, includes WebWorkers
|
||||
} else if(MessageChannel){
|
||||
channel = new MessageChannel;
|
||||
port = channel.port2;
|
||||
channel.port1.onmessage = listener;
|
||||
defer = ctx(port.postMessage, port, 1);
|
||||
// Browsers with postMessage, skip WebWorkers
|
||||
// IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
|
||||
} else if(global.addEventListener && typeof postMessage == 'function' && !global.importScripts){
|
||||
defer = function(id){
|
||||
global.postMessage(id + '', '*');
|
||||
};
|
||||
global.addEventListener('message', listener, false);
|
||||
// IE8-
|
||||
} else if(ONREADYSTATECHANGE in cel('script')){
|
||||
defer = function(id){
|
||||
html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function(){
|
||||
html.removeChild(this);
|
||||
run.call(id);
|
||||
};
|
||||
};
|
||||
// Rest old browsers
|
||||
} else {
|
||||
defer = function(id){
|
||||
setTimeout(ctx(run, id, 1), 0);
|
||||
};
|
||||
}
|
||||
}
|
||||
module.exports = {
|
||||
set: setTask,
|
||||
clear: clearTask
|
||||
};
|
||||
},{"./_cof":39,"./_ctx":41,"./_dom-create":43,"./_global":46,"./_html":48,"./_invoke":50}],55:[function(require,module,exports){
|
||||
// 7.1.1 ToPrimitive(input [, PreferredType])
|
||||
var isObject = require('./_is-object');
|
||||
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
|
||||
// and the second argument - flag - preferred type is a string
|
||||
module.exports = function(it, S){
|
||||
if(!isObject(it))return it;
|
||||
var fn, val;
|
||||
if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
|
||||
if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;
|
||||
if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
|
||||
throw TypeError("Can't convert object to primitive value");
|
||||
};
|
||||
},{"./_is-object":51}],56:[function(require,module,exports){
|
||||
var $export = require('./_export')
|
||||
, $task = require('./_task');
|
||||
$export($export.G + $export.B, {
|
||||
setImmediate: $task.set,
|
||||
clearImmediate: $task.clear
|
||||
});
|
||||
},{"./_export":44,"./_task":54}],57:[function(require,module,exports){
|
||||
(function (global){
|
||||
'use strict';
|
||||
var Mutation = global.MutationObserver || global.WebKitMutationObserver;
|
||||
@ -4560,7 +4275,7 @@ function immediate(task) {
|
||||
}
|
||||
|
||||
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
|
||||
},{}],58:[function(require,module,exports){
|
||||
},{}],37:[function(require,module,exports){
|
||||
'use strict';
|
||||
var immediate = require('immediate');
|
||||
|
||||
@ -4587,6 +4302,26 @@ function Promise(resolver) {
|
||||
}
|
||||
}
|
||||
|
||||
Promise.prototype["finally"] = function (callback) {
|
||||
if (typeof callback !== 'function') {
|
||||
return this;
|
||||
}
|
||||
var p = this.constructor;
|
||||
return this.then(resolve, reject);
|
||||
|
||||
function resolve(value) {
|
||||
function yes () {
|
||||
return value;
|
||||
}
|
||||
return p.resolve(callback()).then(yes);
|
||||
}
|
||||
function reject(reason) {
|
||||
function no () {
|
||||
throw reason;
|
||||
}
|
||||
return p.resolve(callback()).then(no);
|
||||
}
|
||||
};
|
||||
Promise.prototype["catch"] = function (onRejected) {
|
||||
return this.then(null, onRejected);
|
||||
};
|
||||
@ -4815,7 +4550,7 @@ function race(iterable) {
|
||||
}
|
||||
}
|
||||
|
||||
},{"immediate":57}],59:[function(require,module,exports){
|
||||
},{"immediate":36}],38:[function(require,module,exports){
|
||||
// Top level file is just a mixin of submodules & constants
|
||||
'use strict';
|
||||
|
||||
@ -4831,7 +4566,7 @@ assign(pako, deflate, inflate, constants);
|
||||
|
||||
module.exports = pako;
|
||||
|
||||
},{"./lib/deflate":60,"./lib/inflate":61,"./lib/utils/common":62,"./lib/zlib/constants":65}],60:[function(require,module,exports){
|
||||
},{"./lib/deflate":39,"./lib/inflate":40,"./lib/utils/common":41,"./lib/zlib/constants":44}],39:[function(require,module,exports){
|
||||
'use strict';
|
||||
|
||||
|
||||
@ -5233,7 +4968,7 @@ exports.deflate = deflate;
|
||||
exports.deflateRaw = deflateRaw;
|
||||
exports.gzip = gzip;
|
||||
|
||||
},{"./utils/common":62,"./utils/strings":63,"./zlib/deflate":67,"./zlib/messages":72,"./zlib/zstream":74}],61:[function(require,module,exports){
|
||||
},{"./utils/common":41,"./utils/strings":42,"./zlib/deflate":46,"./zlib/messages":51,"./zlib/zstream":53}],40:[function(require,module,exports){
|
||||
'use strict';
|
||||
|
||||
|
||||
@ -5653,7 +5388,7 @@ exports.inflate = inflate;
|
||||
exports.inflateRaw = inflateRaw;
|
||||
exports.ungzip = inflate;
|
||||
|
||||
},{"./utils/common":62,"./utils/strings":63,"./zlib/constants":65,"./zlib/gzheader":68,"./zlib/inflate":70,"./zlib/messages":72,"./zlib/zstream":74}],62:[function(require,module,exports){
|
||||
},{"./utils/common":41,"./utils/strings":42,"./zlib/constants":44,"./zlib/gzheader":47,"./zlib/inflate":49,"./zlib/messages":51,"./zlib/zstream":53}],41:[function(require,module,exports){
|
||||
'use strict';
|
||||
|
||||
|
||||
@ -5757,7 +5492,7 @@ exports.setTyped = function (on) {
|
||||
|
||||
exports.setTyped(TYPED_OK);
|
||||
|
||||
},{}],63:[function(require,module,exports){
|
||||
},{}],42:[function(require,module,exports){
|
||||
// String encode/decode helpers
|
||||
'use strict';
|
||||
|
||||
@ -5944,7 +5679,7 @@ exports.utf8border = function (buf, max) {
|
||||
return (pos + _utf8len[buf[pos]] > max) ? pos : max;
|
||||
};
|
||||
|
||||
},{"./common":62}],64:[function(require,module,exports){
|
||||
},{"./common":41}],43:[function(require,module,exports){
|
||||
'use strict';
|
||||
|
||||
// Note: adler32 takes 12% for level 0 and 2% for level 6.
|
||||
@ -5997,7 +5732,7 @@ function adler32(adler, buf, len, pos) {
|
||||
|
||||
module.exports = adler32;
|
||||
|
||||
},{}],65:[function(require,module,exports){
|
||||
},{}],44:[function(require,module,exports){
|
||||
'use strict';
|
||||
|
||||
// (C) 1995-2013 Jean-loup Gailly and Mark Adler
|
||||
@ -6067,7 +5802,7 @@ module.exports = {
|
||||
//Z_NULL: null // Use -1 or null inline, depending on var type
|
||||
};
|
||||
|
||||
},{}],66:[function(require,module,exports){
|
||||
},{}],45:[function(require,module,exports){
|
||||
'use strict';
|
||||
|
||||
// Note: we can't get significant speed boost here.
|
||||
@ -6128,7 +5863,7 @@ function crc32(crc, buf, len, pos) {
|
||||
|
||||
module.exports = crc32;
|
||||
|
||||
},{}],67:[function(require,module,exports){
|
||||
},{}],46:[function(require,module,exports){
|
||||
'use strict';
|
||||
|
||||
// (C) 1995-2013 Jean-loup Gailly and Mark Adler
|
||||
@ -8004,7 +7739,7 @@ exports.deflatePrime = deflatePrime;
|
||||
exports.deflateTune = deflateTune;
|
||||
*/
|
||||
|
||||
},{"../utils/common":62,"./adler32":64,"./crc32":66,"./messages":72,"./trees":73}],68:[function(require,module,exports){
|
||||
},{"../utils/common":41,"./adler32":43,"./crc32":45,"./messages":51,"./trees":52}],47:[function(require,module,exports){
|
||||
'use strict';
|
||||
|
||||
// (C) 1995-2013 Jean-loup Gailly and Mark Adler
|
||||
@ -8064,7 +7799,7 @@ function GZheader() {
|
||||
|
||||
module.exports = GZheader;
|
||||
|
||||
},{}],69:[function(require,module,exports){
|
||||
},{}],48:[function(require,module,exports){
|
||||
'use strict';
|
||||
|
||||
// (C) 1995-2013 Jean-loup Gailly and Mark Adler
|
||||
@ -8411,7 +8146,7 @@ module.exports = function inflate_fast(strm, start) {
|
||||
return;
|
||||
};
|
||||
|
||||
},{}],70:[function(require,module,exports){
|
||||
},{}],49:[function(require,module,exports){
|
||||
'use strict';
|
||||
|
||||
// (C) 1995-2013 Jean-loup Gailly and Mark Adler
|
||||
@ -9969,7 +9704,7 @@ exports.inflateSyncPoint = inflateSyncPoint;
|
||||
exports.inflateUndermine = inflateUndermine;
|
||||
*/
|
||||
|
||||
},{"../utils/common":62,"./adler32":64,"./crc32":66,"./inffast":69,"./inftrees":71}],71:[function(require,module,exports){
|
||||
},{"../utils/common":41,"./adler32":43,"./crc32":45,"./inffast":48,"./inftrees":50}],50:[function(require,module,exports){
|
||||
'use strict';
|
||||
|
||||
// (C) 1995-2013 Jean-loup Gailly and Mark Adler
|
||||
@ -10314,7 +10049,7 @@ module.exports = function inflate_table(type, lens, lens_index, codes, table, ta
|
||||
return 0;
|
||||
};
|
||||
|
||||
},{"../utils/common":62}],72:[function(require,module,exports){
|
||||
},{"../utils/common":41}],51:[function(require,module,exports){
|
||||
'use strict';
|
||||
|
||||
// (C) 1995-2013 Jean-loup Gailly and Mark Adler
|
||||
@ -10348,7 +10083,7 @@ module.exports = {
|
||||
'-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */
|
||||
};
|
||||
|
||||
},{}],73:[function(require,module,exports){
|
||||
},{}],52:[function(require,module,exports){
|
||||
'use strict';
|
||||
|
||||
// (C) 1995-2013 Jean-loup Gailly and Mark Adler
|
||||
@ -11570,7 +11305,7 @@ exports._tr_flush_block = _tr_flush_block;
|
||||
exports._tr_tally = _tr_tally;
|
||||
exports._tr_align = _tr_align;
|
||||
|
||||
},{"../utils/common":62}],74:[function(require,module,exports){
|
||||
},{"../utils/common":41}],53:[function(require,module,exports){
|
||||
'use strict';
|
||||
|
||||
// (C) 1995-2013 Jean-loup Gailly and Mark Adler
|
||||
@ -11619,5 +11354,14 @@ function ZStream() {
|
||||
|
||||
module.exports = ZStream;
|
||||
|
||||
},{}],54:[function(require,module,exports){
|
||||
'use strict';
|
||||
module.exports = typeof setImmediate === 'function' ? setImmediate :
|
||||
function setImmediate() {
|
||||
var args = [].slice.apply(arguments);
|
||||
args.splice(1, 0, 0);
|
||||
setTimeout.apply(null, args);
|
||||
};
|
||||
|
||||
},{}]},{},[10])(10)
|
||||
});
|
File diff suppressed because one or more lines are too long
@ -6,7 +6,9 @@
|
||||
|
||||
This code is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License version 2 only, as
|
||||
published by the Free Software Foundation.
|
||||
published by the Free Software Foundation. Oracle designates this
|
||||
particular file as subject to the "Classpath" exception as provided
|
||||
by Oracle in the LICENSE file that accompanied this code.
|
||||
|
||||
This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
|
@ -1,4 +1,4 @@
|
||||
## JSZip v3.1.5
|
||||
## JSZip v3.2.1
|
||||
|
||||
### MIT License
|
||||
<pre>
|
||||
@ -26,7 +26,7 @@ OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
******************************************
|
||||
|
||||
The JSZip JavaScript Library v3.1.5 also includes pako
|
||||
The JSZip JavaScript Library v3.2.1 also includes pako
|
||||
|
||||
pako includes the following license:
|
||||
|
||||
|
@ -4,7 +4,9 @@
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
|
@ -4,7 +4,9 @@
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
|
@ -69,7 +69,8 @@ s loaded by null classloader.
|
||||
This behavior can be adjusted with "-compilationLevel" and "-compilationNumber" options. First
|
||||
one has self-explaining name, latter sets number of optimization/deoptimozation of each class.
|
||||
- Next aspect is class redefinition.
|
||||
You can enable classes redefinition with "-redefineClasses" flag.
|
||||
You can enable classes redefinition with "-redefineClasses" flag. Valid options are "true" and
|
||||
"false".
|
||||
|
||||
Test implementation details:
|
||||
Test supposed to be ran with G1 gc and -XX:+ExplicitGCProvokesConcurrent option. In the end of exec
|
||||
|
@ -48,6 +48,8 @@ JNIEXPORT jclass JNICALL Java_gc_g1_unloading_classloaders_JNIClassloader_loadTh
|
||||
jbyte * arrayContent = env->GetByteArrayElements(bytecode, NULL);
|
||||
jsize bytecodeLength = env->GetArrayLength(bytecode);
|
||||
jclass returnValue = env->DefineClass(classNameChar, classLoader, arrayContent, bytecodeLength);
|
||||
env->ReleaseByteArrayElements(bytecode, arrayContent, JNI_ABORT);
|
||||
env->ReleaseStringUTFChars(className, classNameChar);
|
||||
if (!returnValue) {
|
||||
printf("ERROR: DefineClass call returned NULL by some reason. Classloading failed.\n");
|
||||
}
|
||||
@ -56,12 +58,12 @@ JNIEXPORT jclass JNICALL Java_gc_g1_unloading_classloaders_JNIClassloader_loadTh
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: gc_g1_unloading_unloading_loading_ClassLoadingThread
|
||||
* Class: gc_g1_unloading_unloading_loading_ClassLoadingHelper
|
||||
* Method: makeRedefinition0
|
||||
* Signature: (ILjava/lang/Class;[B)I
|
||||
*/
|
||||
JNIEXPORT jint JNICALL Java_gc_g1_unloading_loading_ClassLoadingThread_makeRedefinition0(JNIEnv *env,
|
||||
jclass cls, jint fl, jclass redefCls, jbyteArray classBytes) {
|
||||
JNIEXPORT jint JNICALL Java_gc_g1_unloading_loading_ClassLoadingHelper_makeRedefinition0(JNIEnv *env,
|
||||
jclass clazz, jint fl, jclass redefCls, jbyteArray classBytes) {
|
||||
JavaVM * jvm;
|
||||
jvmtiEnv * jvmti;
|
||||
jvmtiError err;
|
||||
@ -99,15 +101,15 @@ JNIEXPORT jint JNICALL Java_gc_g1_unloading_loading_ClassLoadingThread_makeRede
|
||||
classDef.klass = redefCls;
|
||||
classDef.class_byte_count =
|
||||
env->GetArrayLength(classBytes);
|
||||
classDef.class_bytes = (unsigned char *)
|
||||
env->GetByteArrayElements(classBytes,
|
||||
NULL);
|
||||
jbyte * class_bytes = env->GetByteArrayElements(classBytes, NULL);
|
||||
classDef.class_bytes = (unsigned char *)class_bytes;
|
||||
|
||||
if (fl == 2) {
|
||||
printf(">>>>>>>> Invoke RedefineClasses():\n");
|
||||
printf("\tnew class byte count=%d\n", classDef.class_byte_count);
|
||||
}
|
||||
err = jvmti->RedefineClasses(1, &classDef);
|
||||
env->ReleaseByteArrayElements(classBytes, class_bytes, JNI_ABORT);
|
||||
if (err != JVMTI_ERROR_NONE) {
|
||||
printf("%s: Failed to call RedefineClasses():\n", __FILE__);
|
||||
printf("\tthe function returned error %d\n", err);
|
||||
|
@ -53,8 +53,8 @@
|
||||
* -Xlog:gc:gc.log
|
||||
* -XX:-UseGCOverheadLimit
|
||||
* gc.g1.unloading.UnloadingTest
|
||||
* -redefineClasses
|
||||
* -inMemoryCompilation
|
||||
* -redefineClasses true
|
||||
* -inMemoryCompilation true
|
||||
* -keep classloader
|
||||
* -numberOfChecksLimit 4
|
||||
* -stressTime 180
|
||||
|
@ -53,8 +53,8 @@
|
||||
* -Xlog:gc:gc.log
|
||||
* -XX:-UseGCOverheadLimit
|
||||
* gc.g1.unloading.UnloadingTest
|
||||
* -redefineClasses
|
||||
* -inMemoryCompilation
|
||||
* -redefineClasses true
|
||||
* -inMemoryCompilation true
|
||||
* -keep class
|
||||
* -numberOfChecksLimit 4
|
||||
* -stressTime 180
|
||||
|
@ -53,8 +53,8 @@
|
||||
* -Xlog:gc:gc.log
|
||||
* -XX:-UseGCOverheadLimit
|
||||
* gc.g1.unloading.UnloadingTest
|
||||
* -redefineClasses
|
||||
* -inMemoryCompilation
|
||||
* -redefineClasses true
|
||||
* -inMemoryCompilation true
|
||||
* -keep object
|
||||
* -numberOfChecksLimit 4
|
||||
* -stressTime 180
|
||||
|
@ -53,7 +53,7 @@
|
||||
* -Xlog:gc:gc.log
|
||||
* -XX:-UseGCOverheadLimit
|
||||
* gc.g1.unloading.UnloadingTest
|
||||
* -redefineClasses
|
||||
* -redefineClasses true
|
||||
* -keep classloader
|
||||
* -numberOfChecksLimit 4
|
||||
* -stressTime 180
|
||||
|
@ -53,7 +53,7 @@
|
||||
* -Xlog:gc:gc.log
|
||||
* -XX:-UseGCOverheadLimit
|
||||
* gc.g1.unloading.UnloadingTest
|
||||
* -redefineClasses
|
||||
* -redefineClasses true
|
||||
* -keep class
|
||||
* -numberOfChecksLimit 4
|
||||
* -stressTime 180
|
||||
|
@ -53,7 +53,7 @@
|
||||
* -Xlog:gc:gc.log
|
||||
* -XX:-UseGCOverheadLimit
|
||||
* gc.g1.unloading.UnloadingTest
|
||||
* -redefineClasses
|
||||
* -redefineClasses true
|
||||
* -keep object
|
||||
* -numberOfChecksLimit 4
|
||||
* -stressTime 180
|
||||
|
@ -25,7 +25,7 @@
|
||||
* @test
|
||||
* @bug 8022780
|
||||
* @summary Test division of large values
|
||||
* @requires os.maxMemory > 8g
|
||||
* @requires (sun.arch.data.model == "64" & os.maxMemory > 8g)
|
||||
* @run main/othervm -Xshare:off -Xmx8g DivisionOverflow
|
||||
* @author Dmitry Nadezhin
|
||||
*/
|
||||
|
@ -25,7 +25,7 @@
|
||||
* @test
|
||||
* @bug 8021204
|
||||
* @summary Test constructor BigInteger(String val, int radix) on very long string
|
||||
* @requires os.maxMemory > 8g
|
||||
* @requires (sun.arch.data.model == "64" & os.maxMemory > 8g)
|
||||
* @run main/othervm -Xshare:off -Xmx8g StringConstructorOverflow
|
||||
* @author Dmitry Nadezhin
|
||||
*/
|
||||
|
@ -26,7 +26,7 @@
|
||||
* @bug 6910473 8021204 8021203 9005933 8074460 8078672
|
||||
* @summary Test range of BigInteger values (use -Dseed=X to set PRNG seed)
|
||||
* @library /test/lib
|
||||
* @requires os.maxMemory > 8g
|
||||
* @requires (sun.arch.data.model == "64" & os.maxMemory > 8g)
|
||||
* @run main/timeout=180/othervm -Xmx8g SymmetricRangeTests
|
||||
* @author Dmitry Nadezhin
|
||||
* @key randomness
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2017, 2020, 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
|
||||
@ -259,6 +259,8 @@ public class VerifyCACerts {
|
||||
{
|
||||
// Valid until: Tue Jul 09 14:40:36 EDT 2019
|
||||
add("utnuserfirstobjectca [jdk]");
|
||||
// Valid until: Tue May 26 00:00:00 GMT 2020
|
||||
add("keynectisrootca [jdk]");
|
||||
}
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user