changeset 10807:dac705cbf5ef

Merge
author kcr
date Tue, 16 Jan 2018 10:22:31 -0800
parents 399ded3c404d 908138d4af2b
children eb72cc1ca5ed 2b4d1ac600a4
files modules/javafx.web/src/main/native/Source/WebCore/bridge/jni/jni_jsobject.mm modules/javafx.web/src/main/native/Source/WebCore/bridge/jni/jni_objc.mm
diffstat 9 files changed, 40 insertions(+), 966 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Fri Jan 12 14:40:32 2018 -0800
+++ b/.hgtags	Tue Jan 16 10:22:31 2018 -0800
@@ -473,6 +473,7 @@
 3932162186a7b4c53945256818eb7723d1b6a71e jdk-10+34
 90773bfb2a58cce7c1aede30cc47f28cb9c53fe6 jdk-10+35
 674513271a88e51bcd2fb598634519d5f5f46270 jdk-10+36
+afed83541a56745884906842049658b84f1c2650 jdk-11+0
 afed83541a56745884906842049658b84f1c2650 jdk-10+37
 14621a723393fd1f6fc79f5445d8d6cdba8917c0 jdk-10+38
 b43e44ecc365e7ed2063bcdbf60152cbd5e28e5a jdk-10+39
--- a/build.properties	Fri Jan 12 14:40:32 2018 -0800
+++ b/build.properties	Tue Jan 16 10:22:31 2018 -0800
@@ -39,7 +39,7 @@
 jfx.release.suffix=-ea
 
 # UPDATE THE FOLLOWING VALUES FOR A NEW RELEASE
-jfx.release.major.version=10
+jfx.release.major.version=11
 jfx.release.minor.version=0
 jfx.release.security.version=0
 jfx.release.patch.version=0
@@ -56,8 +56,8 @@
 
 javadoc.bottom=<small><a href="http://bugreport.java.com/bugreport/">Report a bug or suggest an enhancement</a><br> Copyright &copy; 2008, 2018, Oracle and/or its affiliates. All rights reserved.</small>
 
-javadoc.title=JavaFX 10
-javadoc.header=JavaFX&nbsp;10
+javadoc.title=JavaFX 11
+javadoc.header=JavaFX&nbsp;11
 
 ##############################################################################
 #
--- a/modules/javafx.base/src/test/java/test/com/sun/javafx/runtime/VersionInfoTest.java	Fri Jan 12 14:40:32 2018 -0800
+++ b/modules/javafx.base/src/test/java/test/com/sun/javafx/runtime/VersionInfoTest.java	Tue Jan 16 10:22:31 2018 -0800
@@ -89,7 +89,7 @@
         String version = VersionInfo.getVersion();
         // Need to update major version number when we develop the next
         // major release.
-        assertTrue(version.startsWith("10"));
+        assertTrue(version.startsWith("11"));
         String runtimeVersion = VersionInfo.getRuntimeVersion();
         assertTrue(runtimeVersion.startsWith(version));
     }
--- a/modules/javafx.web/src/main/java/javafx/scene/web/HTMLEditorSkin.java	Fri Jan 12 14:40:32 2018 -0800
+++ b/modules/javafx.web/src/main/java/javafx/scene/web/HTMLEditorSkin.java	Tue Jan 16 10:22:31 2018 -0800
@@ -1029,15 +1029,13 @@
         fgColorButton.setDisable(!isCommandEnabled(FOREGROUND_COLOR.getCommand()));
         String foregroundColorValue = getCommandValue(FOREGROUND_COLOR.getCommand());
         if (foregroundColorValue != null) {
-            Color c = Color.web(rgbToHex((String)foregroundColorValue));
-            fgColorButton.setValue(c);
+            fgColorButton.setValue(getColor(foregroundColorValue));
         }
 
         bgColorButton.setDisable(!isCommandEnabled(BACKGROUND_COLOR.getCommand()));
         String backgroundColorValue = getCommandValue(BACKGROUND_COLOR.getCommand());
         if (backgroundColorValue != null) {
-            Color c = Color.web(rgbToHex((String)backgroundColorValue));
-            bgColorButton.setValue(c);
+            bgColorButton.setValue(getColor(backgroundColorValue));
         }
 
         atomicityCount = atomicityCount == 0 ? 0 : --atomicityCount;
@@ -1119,29 +1117,16 @@
         return webPage.queryCommandValue(command);
     }
 
-    private static String rgbToHex(String value) {
-        if (value.startsWith("rgba")) {
-            String[] components = value.substring(value.indexOf('(') + 1, value.lastIndexOf(')')).split(",");
-            value = String.format("#%02X%02X%02X%02X",
-                Integer.parseInt(components[0].trim()),
-                Integer.parseInt(components[1].trim()),
-                Integer.parseInt(components[2].trim()),
-                Integer.parseInt(components[3].trim()));
-            // The default background color for WebView, according to the HTML
-            // standard is rgba=#00000000 (black). The canvas background is expected
-            // to be white.
-            if ("#00000000".equals(value)) {
-                return "#FFFFFFFF";
-            }
-        } else if (value.startsWith("rgb")) {
-            String[] components = value.substring(value.indexOf('(') + 1, value.lastIndexOf(')')).split(",");
-            value = String.format("#%02X%02X%02X",
-                Integer.parseInt(components[0].trim()),
-                Integer.parseInt(components[1].trim()),
-                Integer.parseInt(components[2].trim()));
+    private Color getColor(String value) {
+        Color color = Color.web(value);
+        /* The default background color for WebView, according to the HTML
+         * standard is rgba=#00000000 (transparent). The canvas background is expected
+         * to be white.
+         */
+        if (color.equals(Color.TRANSPARENT)) {
+            color = Color.WHITE;
         }
-
-        return value;
+        return color;
     }
 
     private void applyTextFormatting() {
--- a/modules/javafx.web/src/main/native/Source/WebCore/bridge/jni/jni_jsobject.mm	Fri Jan 12 14:40:32 2018 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,695 +0,0 @@
-/*
- * Copyright (C) 2003, 2008 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "jni_jsobject.h"
-
-#if ENABLE(JAVA_BRIDGE)
-
-#include "Frame.h"
-#include "JNIUtility.h"
-#include "JNIUtilityPrivate.h"
-#include "JSDOMBinding.h"
-#include "JavaRuntimeObject.h"
-#include "JavaStringJSC.h"
-#include "Logging.h"
-#include "ScriptController.h"
-#include "StringSourceProvider.h"
-#include "WebCoreFrameView.h"
-#include "runtime_object.h"
-#include "runtime_root.h"
-#include <interpreter/CallFrame.h>
-#include <runtime/Completion.h>
-#include <runtime/JSGlobalObject.h>
-#include <runtime/JSLock.h>
-
-using WebCore::Frame;
-
-using namespace JSC::Bindings;
-using namespace JSC;
-using namespace WebCore;
-
-#define UndefinedHandle 1
-
-static CFRunLoopSourceRef _performJavaScriptSource;
-static CFRunLoopRef _performJavaScriptRunLoop;
-
-// May only be set by dispatchToJavaScriptThread().
-static CFRunLoopSourceRef completionSource;
-
-static void completedJavaScriptAccess (void *i)
-{
-    ASSERT(CFRunLoopGetCurrent() != _performJavaScriptRunLoop);
-
-    JSObjectCallContext *callContext = (JSObjectCallContext *)i;
-    CFRunLoopRef runLoop = (CFRunLoopRef)callContext->originatingLoop;
-
-    ASSERT(CFRunLoopGetCurrent() == runLoop);
-
-    CFRunLoopStop(runLoop);
-}
-
-static pthread_once_t javaScriptAccessLockOnce = PTHREAD_ONCE_INIT;
-static pthread_mutex_t javaScriptAccessLock;
-static int javaScriptAccessLockCount = 0;
-
-static void initializeJavaScriptAccessLock()
-{
-    pthread_mutexattr_t attr;
-
-    pthread_mutexattr_init(&attr);
-    pthread_mutexattr_settype (&attr, PTHREAD_MUTEX_RECURSIVE);
-
-    pthread_mutex_init(&javaScriptAccessLock, &attr);
-}
-
-static inline void lockJavaScriptAccess()
-{
-    // Perhaps add deadlock detection?
-    pthread_once(&javaScriptAccessLockOnce, initializeJavaScriptAccessLock);
-    pthread_mutex_lock(&javaScriptAccessLock);
-    javaScriptAccessLockCount++;
-}
-
-static inline void unlockJavaScriptAccess()
-{
-    javaScriptAccessLockCount--;
-    pthread_mutex_unlock(&javaScriptAccessLock);
-}
-
-static void dispatchToJavaScriptThread(JSObjectCallContext *context)
-{
-    // This lock guarantees that only one thread can invoke
-    // at a time, and also guarantees that completionSource;
-    // won't get clobbered.
-    lockJavaScriptAccess();
-
-    CFRunLoopRef currentRunLoop = CFRunLoopGetCurrent();
-
-    ASSERT(currentRunLoop != _performJavaScriptRunLoop);
-
-    // Setup a source to signal once the invocation of the JavaScript
-    // call completes.
-    //
-    // FIXME:  This could be a potential performance issue.  Creating and
-    // adding run loop sources is expensive.  We could create one source
-    // per thread, as needed, instead.
-    context->originatingLoop = currentRunLoop;
-    CFRunLoopSourceContext sourceContext = {0, context, NULL, NULL, NULL, NULL, NULL, NULL, NULL, completedJavaScriptAccess};
-    completionSource = CFRunLoopSourceCreate(NULL, 0, &sourceContext);
-    CFRunLoopAddSource(currentRunLoop, completionSource, kCFRunLoopDefaultMode);
-
-    // Wakeup JavaScript access thread and make it do its work.
-    CFRunLoopSourceSignal(_performJavaScriptSource);
-    if (CFRunLoopIsWaiting(_performJavaScriptRunLoop))
-        CFRunLoopWakeUp(_performJavaScriptRunLoop);
-
-    // Wait until the JavaScript access thread is done.
-    CFRunLoopRun ();
-
-    CFRunLoopRemoveSource(currentRunLoop, completionSource, kCFRunLoopDefaultMode);
-    CFRelease (completionSource);
-
-    unlockJavaScriptAccess();
-}
-
-static void performJavaScriptAccess(void*)
-{
-    ASSERT(CFRunLoopGetCurrent() == _performJavaScriptRunLoop);
-
-    // Dispatch JavaScript calls here.
-    CFRunLoopSourceContext sourceContext;
-    CFRunLoopSourceGetContext (completionSource, &sourceContext);
-    JSObjectCallContext *callContext = (JSObjectCallContext *)sourceContext.info;
-    CFRunLoopRef originatingLoop = callContext->originatingLoop;
-
-    JavaJSObject::invoke (callContext);
-
-    // Signal the originating thread that we're done.
-    CFRunLoopSourceSignal (completionSource);
-    if (CFRunLoopIsWaiting(originatingLoop))
-        CFRunLoopWakeUp(originatingLoop);
-}
-
-// Must be called from the thread that will be used to access JavaScript.
-void JavaJSObject::initializeJNIThreading() {
-    // Should only be called once.
-    ASSERT(!_performJavaScriptRunLoop);
-
-    // Assume that we can retain this run loop forever.  It'll most
-    // likely (always?) be the main loop.
-    _performJavaScriptRunLoop = (CFRunLoopRef)CFRetain(CFRunLoopGetCurrent());
-
-    // Setup a source the other threads can use to signal the _runLoop
-    // thread that a JavaScript call needs to be invoked.
-    CFRunLoopSourceContext sourceContext = {0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, performJavaScriptAccess};
-    _performJavaScriptSource = CFRunLoopSourceCreate(NULL, 0, &sourceContext);
-    CFRunLoopAddSource(_performJavaScriptRunLoop, _performJavaScriptSource, kCFRunLoopDefaultMode);
-}
-
-static bool isJavaScriptThread()
-{
-    return (_performJavaScriptRunLoop == CFRunLoopGetCurrent());
-}
-
-jvalue JavaJSObject::invoke(JSObjectCallContext *context)
-{
-    jvalue result;
-
-    bzero ((void *)&result, sizeof(jvalue));
-
-    if (!isJavaScriptThread()) {
-        // Send the call context to the thread that is allowed to
-        // call JavaScript.
-        dispatchToJavaScriptThread(context);
-        result = context->result;
-    }
-    else {
-        jlong nativeHandle = context->nativeHandle;
-        if (nativeHandle == UndefinedHandle || nativeHandle == 0) {
-            return result;
-        }
-
-        if (context->type == CreateNative) {
-            result.j = JavaJSObject::createNative(nativeHandle);
-        }
-        else {
-            JSObject *imp = jlong_to_impptr(nativeHandle);
-            if (!findProtectingRootObject(imp)) {
-                LOG_ERROR("Attempt to access JavaScript from destroyed applet, type %d.", context->type);
-                return result;
-            }
-
-            switch (context->type){
-                case Call: {
-                    result.l = JavaJSObject(nativeHandle).call(context->string, context->args);
-                    break;
-                }
-
-                case Eval: {
-                    result.l = JavaJSObject(nativeHandle).eval(context->string);
-                    break;
-                }
-
-                case GetMember: {
-                    result.l = JavaJSObject(nativeHandle).getMember(context->string);
-                    break;
-                }
-
-                case SetMember: {
-                    JavaJSObject(nativeHandle).setMember(context->string, context->value);
-                    break;
-                }
-
-                case RemoveMember: {
-                    JavaJSObject(nativeHandle).removeMember(context->string);
-                    break;
-                }
-
-                case GetSlot: {
-                    result.l = JavaJSObject(nativeHandle).getSlot(context->index);
-                    break;
-                }
-
-                case SetSlot: {
-                    JavaJSObject(nativeHandle).setSlot(context->index, context->value);
-                    break;
-                }
-
-                case ToString: {
-                    result.l = (jobject) JavaJSObject(nativeHandle).toString();
-                    break;
-                }
-
-                case Finalize: {
-                    JavaJSObject(nativeHandle).finalize();
-                    break;
-                }
-
-                default: {
-                    LOG_ERROR("invalid JavaScript call");
-                }
-            }
-        }
-        context->result = result;
-    }
-
-    return result;
-}
-
-
-JavaJSObject::JavaJSObject(jlong nativeJSObject)
-{
-    _imp = jlong_to_impptr(nativeJSObject);
-
-    ASSERT(_imp);
-    _rootObject = findProtectingRootObject(_imp);
-    ASSERT(_rootObject);
-}
-
-RootObject* JavaJSObject::rootObject() const
-{
-    return _rootObject && _rootObject->isValid() ? _rootObject.get() : 0;
-}
-
-jobject JavaJSObject::call(jstring methodName, jobjectArray args) const
-{
-    LOG(LiveConnect, "JavaJSObject::call methodName = %s", JavaString(methodName).utf8());
-
-    RootObject* rootObject = this->rootObject();
-    if (!rootObject)
-        return 0;
-
-    // Lookup the function object.
-    ExecState* exec = rootObject->globalObject()->globalExec();
-    JSLockHolder lock(exec);
-
-    Identifier identifier(exec, JavaString(methodName).impl());
-    JSValue function = _imp->get(exec, identifier);
-    CallData callData;
-    CallType callType = getCallData(function, callData);
-    if (callType == CallTypeNone)
-        return 0;
-
-    // Call the function object.
-    MarkedArgumentBuffer argList;
-    getListFromJArray(exec, args, argList);
-    rootObject->globalObject()->globalData().timeoutChecker.start();
-    JSValue result = JSC::call(exec, function, callType, callData, _imp, argList);
-    rootObject->globalObject()->globalData().timeoutChecker.stop();
-
-    return convertValueToJObject(result);
-}
-
-jobject JavaJSObject::eval(jstring script) const
-{
-    LOG(LiveConnect, "JavaJSObject::eval script = %s", JavaString(script).utf8());
-
-    RootObject* rootObject = this->rootObject();
-    if (!rootObject)
-        return 0;
-
-    JSLockHolder lock(rootObject->globalObject()->globalData());
-
-    rootObject->globalObject()->globalData().timeoutChecker.start();
-    JSValue result = JSC::evaluate(rootObject->globalObject()->globalExec(), rootObject->globalObject()->globalScopeChain(), makeSource(JavaString(script).impl()));
-    rootObject->globalObject()->globalData().timeoutChecker.stop();
-
-    return convertValueToJObject(result);
-}
-
-jobject JavaJSObject::getMember(jstring memberName) const
-{
-    LOG(LiveConnect, "JavaJSObject::getMember (%p) memberName = %s", _imp, JavaString(memberName).utf8());
-
-    RootObject* rootObject = this->rootObject();
-    if (!rootObject)
-        return 0;
-
-    ExecState* exec = rootObject->globalObject()->globalExec();
-
-    JSLockHolder lock(exec);
-    JSValue result = _imp->get(exec, Identifier(exec, JavaString(memberName).impl()));
-
-    return convertValueToJObject(result);
-}
-
-void JavaJSObject::setMember(jstring memberName, jobject value) const
-{
-    LOG(LiveConnect, "JavaJSObject::setMember memberName = %s, value = %p", JavaString(memberName).utf8(), value);
-
-    RootObject* rootObject = this->rootObject();
-    if (!rootObject)
-        return;
-
-    ExecState* exec = rootObject->globalObject()->globalExec();
-
-    JSLockHolder lock(exec);
-    PutPropertySlot slot;
-    _imp->methodTable()->put(_imp, exec, Identifier(exec, JavaString(memberName).impl()), convertJObjectToValue(exec, value), slot);
-}
-
-
-void JavaJSObject::removeMember(jstring memberName) const
-{
-    LOG(LiveConnect, "JavaJSObject::removeMember memberName = %s", JavaString(memberName).utf8());
-
-    RootObject* rootObject = this->rootObject();
-    if (!rootObject)
-        return;
-
-    ExecState* exec = rootObject->globalObject()->globalExec();
-    JSLockHolder lock(exec);
-    _imp->methodTable()->deleteProperty(_imp, exec, Identifier(exec, JavaString(memberName).impl()));
-}
-
-
-jobject JavaJSObject::getSlot(jint index) const
-{
-    LOG(LiveConnect, "JavaJSObject::getSlot index = %ld", static_cast<long>(index));
-
-    RootObject* rootObject = this->rootObject();
-    if (!rootObject)
-        return 0;
-
-    ExecState* exec = rootObject->globalObject()->globalExec();
-
-    JSLockHolder lock(exec);
-    JSValue result = _imp->get(exec, index);
-
-    return convertValueToJObject(result);
-}
-
-
-void JavaJSObject::setSlot(jint index, jobject value) const
-{
-    LOG(LiveConnect, "JavaJSObject::setSlot index = %ld, value = %p", static_cast<long>(index), value);
-
-    RootObject* rootObject = this->rootObject();
-    if (!rootObject)
-        return;
-
-    ExecState* exec = rootObject->globalObject()->globalExec();
-    JSLockHolder lock(exec);
-    _imp->methodTable()->putByIndex(_imp, exec, (unsigned)index, convertJObjectToValue(exec, value), false);
-}
-
-
-jstring JavaJSObject::toString() const
-{
-    LOG(LiveConnect, "JavaJSObject::toString");
-
-    RootObject* rootObject = this->rootObject();
-    if (!rootObject)
-        return 0;
-
-    JSObject *thisObj = const_cast<JSObject*>(_imp);
-    ExecState* exec = rootObject->globalObject()->globalExec();
-    JSLockHolder lock(exec);
-
-    return static_cast<jstring>(convertValueToJValue(exec, rootObject, thisObj, JavaTypeObject, "java.lang.String").l);
-}
-
-void JavaJSObject::finalize() const
-{
-    if (RootObject* rootObject = this->rootObject())
-        rootObject->gcUnprotect(_imp);
-}
-
-static PassRefPtr<RootObject> createRootObject(void* nativeHandle)
-{
-    Frame* frame = 0;
-    for (NSView *view = (NSView *)nativeHandle; view; view = [view superview]) {
-        if ([view conformsToProtocol:@protocol(WebCoreFrameView)]) {
-            NSView<WebCoreFrameView> *webCoreFrameView = static_cast<NSView<WebCoreFrameView>*>(view);
-            frame = [webCoreFrameView _web_frame];
-            break;
-        }
-    }
-    if (!frame)
-        return 0;
-    return frame->script()->createRootObject(nativeHandle);
-}
-
-// We're either creating a 'Root' object (via a call to JavaJSObject.getWindow()), or
-// another JavaJSObject.
-jlong JavaJSObject::createNative(jlong nativeHandle)
-{
-    LOG(LiveConnect, "JavaJSObject::createNative nativeHandle = %d", static_cast<int>(nativeHandle));
-
-    if (nativeHandle == UndefinedHandle)
-        return nativeHandle;
-
-    if (findProtectingRootObject(jlong_to_impptr(nativeHandle)))
-        return nativeHandle;
-
-    RefPtr<RootObject> rootObject = createRootObject(jlong_to_ptr(nativeHandle));
-
-    // If rootObject is !NULL We must have been called via netscape.javascript.JavaJSObject.getWindow(),
-    // otherwise we are being called after creating a JavaJSObject in
-    // JavaJSObject::convertValueToJObject().
-    if (rootObject) {
-        JSObject* globalObject = rootObject->globalObject();
-        // We call gcProtect here to get the object into the root object's "protect set" which
-        // is used to test if a native handle is valid as well as getting the root object given the handle.
-        rootObject->gcProtect(globalObject);
-        return ptr_to_jlong(globalObject);
-    }
-
-    return nativeHandle;
-}
-
-jobject JavaJSObject::convertValueToJObject(JSValue value) const
-{
-    RootObject* rootObject = this->rootObject();
-    if (!rootObject)
-        return 0;
-
-
-    ExecState* exec = rootObject->globalObject()->globalExec();
-    JSLockHolder lock(exec);
-    JNIEnv *env = getJNIEnv();
-    jobject result = 0;
-
-    // See section 22.7 of 'JavaScript:  The Definitive Guide, 4th Edition',
-    // figure 22-5.
-    // number -> java.lang.Double
-    // string -> java.lang.String
-    // boolean -> java.lang.Boolean
-    // Java instance -> Java instance
-    // Everything else -> JavaJSObject
-
-    if (value.isNumber()) {
-        jclass JSObjectClass = env->FindClass ("java/lang/Double");
-        jmethodID constructorID = env->GetMethodID (JSObjectClass, "<init>", "(D)V");
-        if (constructorID != NULL) {
-            result = env->NewObject (JSObjectClass, constructorID, (jdouble)value.toNumber(exec));
-        }
-    } else if (value.isString()) {
-        UString stringValue = value.toString(exec)->value(exec);
-        JNIEnv *env = getJNIEnv();
-        result = env->NewString ((const jchar *)stringValue.characters(), stringValue.length());
-    } else if (value.isBoolean()) {
-        jclass JSObjectClass = env->FindClass ("java/lang/Boolean");
-        jmethodID constructorID = env->GetMethodID (JSObjectClass, "<init>", "(Z)V");
-        if (constructorID != NULL) {
-            result = env->NewObject (JSObjectClass, constructorID, (jboolean)value.toBoolean());
-        }
-    }
-    else {
-        // Create a JavaJSObject.
-        jlong nativeHandle;
-
-        if (value.isObject()) {
-            JSObject* object = asObject(value);
-
-            // We either have a wrapper around a Java instance or a JavaScript
-            // object.  If we have a wrapper around a Java instance, return that
-            // instance, otherwise create a new Java JavaJSObject with the JSObject*
-            // as its nativeHandle.
-            if (object->inherits(&JavaRuntimeObject::s_info)) {
-                JavaRuntimeObject* runtimeObject = static_cast<JavaRuntimeObject*>(object);
-                JavaInstance* runtimeInstance = runtimeObject->getInternalJavaInstance();
-                if (!runtimeInstance)
-                    return 0;
-
-                return runtimeInstance->javaInstance();
-            } else {
-                nativeHandle = ptr_to_jlong(object);
-                rootObject->gcProtect(object);
-            }
-        } else {
-        // All other types will result in an undefined object.
-            nativeHandle = UndefinedHandle;
-        }
-
-        // Now create the Java JavaJSObject.  Look for the JavaJSObject in its new (Tiger)
-        // location and in the original Java 1.4.2 location.
-        jclass JSObjectClass;
-
-        JSObjectClass = env->FindClass ("sun/plugin/javascript/webkit/JSObject");
-        if (!JSObjectClass) {
-            env->ExceptionDescribe();
-            env->ExceptionClear();
-            JSObjectClass = env->FindClass ("apple/applet/JSObject");
-        }
-
-        jmethodID constructorID = env->GetMethodID (JSObjectClass, "<init>", "(J)V");
-        if (constructorID != NULL) {
-            result = env->NewObject (JSObjectClass, constructorID, nativeHandle);
-        }
-    }
-
-    return result;
-}
-
-JSValue JavaJSObject::convertJObjectToValue(ExecState* exec, jobject theObject) const
-{
-    // Instances of netscape.javascript.JSObject get converted back to
-    // JavaScript objects.  All other objects are wrapped.  It's not
-    // possible to pass primitive types from the Java to JavaScript.
-    // See section 22.7 of 'JavaScript:  The Definitive Guide, 4th Edition',
-    // figure 22-4.
-    jobject classOfInstance = callJNIMethod<jobject>(theObject, "getClass", "()Ljava/lang/Class;");
-    if (!classOfInstance) {
-        JSLockHolder lock(exec);
-        return JavaInstance::create(theObject, _rootObject)->createRuntimeObject(exec);
-    }
-
-    // Only the sun.plugin.javascript.webkit.JSObject has a member called nativeJSObject. This class is
-    // created above to wrap internal browser objects. The constructor of this class takes the native
-    // pointer and stores it in this object, so that it can be retrieved below.
-    jstring className = (jstring)callJNIMethod<jobject>(classOfInstance, "getName", "()Ljava/lang/String;");
-    if (!className || (strcmp(JavaString(className).utf8(), "sun.plugin.javascript.webkit.JSObject") != 0)) {
-        JSLockHolder lock(exec);
-        return JavaInstance::create(theObject, _rootObject)->createRuntimeObject(exec);
-    }
-
-    // Pull the nativeJSObject value from the Java instance.  This is a
-    // pointer to the JSObject.
-    JNIEnv *env = getJNIEnv();
-    jfieldID fieldID = env->GetFieldID((jclass)classOfInstance, "nativeJSObject", "J");
-    if (fieldID == NULL)
-        return jsUndefined();
-    jlong nativeHandle = env->GetLongField(theObject, fieldID);
-    if (nativeHandle == UndefinedHandle)
-        return jsUndefined();
-    JSObject *imp = jsCast<JSObject*>(jlong_to_impptr(nativeHandle));
-    return imp;
-}
-
-void JavaJSObject::getListFromJArray(ExecState* exec, jobjectArray jArray, MarkedArgumentBuffer& list) const
-{
-    JNIEnv *env = getJNIEnv();
-    int numObjects = jArray ? env->GetArrayLength(jArray) : 0;
-
-    for (int i = 0; i < numObjects; i++) {
-        jobject anObject = env->GetObjectArrayElement ((jobjectArray)jArray, i);
-        if (anObject) {
-            list.append(convertJObjectToValue(exec, anObject));
-            env->DeleteLocalRef (anObject);
-        }
-        else {
-            env->ExceptionDescribe();
-            env->ExceptionClear();
-        }
-    }
-}
-
-extern "C" {
-
-jlong KJS_JSCreateNativeJSObject (JNIEnv*, jclass, jstring, jlong nativeHandle, jboolean)
-{
-    JSObjectCallContext context;
-    context.type = CreateNative;
-    context.nativeHandle = nativeHandle;
-    return JavaJSObject::invoke (&context).j;
-}
-
-void KJS_JSObject_JSFinalize (JNIEnv*, jclass, jlong nativeHandle)
-{
-    JSObjectCallContext context;
-    context.type = Finalize;
-    context.nativeHandle = nativeHandle;
-    JavaJSObject::invoke (&context);
-}
-
-jobject KJS_JSObject_JSObjectCall (JNIEnv*, jclass, jlong nativeHandle, jstring, jstring methodName, jobjectArray args, jboolean)
-{
-    JSObjectCallContext context;
-    context.type = Call;
-    context.nativeHandle = nativeHandle;
-    context.string = methodName;
-    context.args = args;
-    return JavaJSObject::invoke (&context).l;
-}
-
-jobject KJS_JSObject_JSObjectEval (JNIEnv*, jclass, jlong nativeHandle, jstring, jstring jscript, jboolean)
-{
-    JSObjectCallContext context;
-    context.type = Eval;
-    context.nativeHandle = nativeHandle;
-    context.string = jscript;
-    return JavaJSObject::invoke (&context).l;
-}
-
-jobject KJS_JSObject_JSObjectGetMember (JNIEnv*, jclass, jlong nativeHandle, jstring, jstring jname, jboolean)
-{
-    JSObjectCallContext context;
-    context.type = GetMember;
-    context.nativeHandle = nativeHandle;
-    context.string = jname;
-    return JavaJSObject::invoke (&context).l;
-}
-
-void KJS_JSObject_JSObjectSetMember (JNIEnv*, jclass, jlong nativeHandle, jstring, jstring jname, jobject value, jboolean)
-{
-    JSObjectCallContext context;
-    context.type = SetMember;
-    context.nativeHandle = nativeHandle;
-    context.string = jname;
-    context.value = value;
-    JavaJSObject::invoke (&context);
-}
-
-void KJS_JSObject_JSObjectRemoveMember (JNIEnv*, jclass, jlong nativeHandle, jstring, jstring jname, jboolean)
-{
-    JSObjectCallContext context;
-    context.type = RemoveMember;
-    context.nativeHandle = nativeHandle;
-    context.string = jname;
-    JavaJSObject::invoke (&context);
-}
-
-jobject KJS_JSObject_JSObjectGetSlot (JNIEnv*, jclass, jlong nativeHandle, jstring, jint jindex, jboolean)
-{
-    JSObjectCallContext context;
-    context.type = GetSlot;
-    context.nativeHandle = nativeHandle;
-    context.index = jindex;
-    return JavaJSObject::invoke (&context).l;
-}
-
-void KJS_JSObject_JSObjectSetSlot (JNIEnv*, jclass, jlong nativeHandle, jstring, jint jindex, jobject value, jboolean)
-{
-    JSObjectCallContext context;
-    context.type = SetSlot;
-    context.nativeHandle = nativeHandle;
-    context.index = jindex;
-    context.value = value;
-    JavaJSObject::invoke (&context);
-}
-
-jstring KJS_JSObject_JSObjectToString (JNIEnv*, jclass, jlong nativeHandle)
-{
-    JSObjectCallContext context;
-    context.type = ToString;
-    context.nativeHandle = nativeHandle;
-    return (jstring)JavaJSObject::invoke (&context).l;
-}
-
-}
-
-#endif // ENABLE(JAVA_BRIDGE)
--- a/modules/javafx.web/src/main/native/Source/WebCore/bridge/jni/jni_objc.mm	Fri Jan 12 14:40:32 2018 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-/*
- * Copyright (C) 2004 Apple Computer, Inc.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(JAVA_BRIDGE)
-
-#import <Foundation/Foundation.h>
-#import "JNIUtilityPrivate.h"
-#import "JavaType.h"
-#import "objc_utility.h"
-#include <runtime/JSLock.h>
-
-using namespace JSC::Bindings;
-
-@interface NSObject (WebScriptingPrivate)
-- (jvalue)webPlugInCallJava:(jobject)object method:(jmethodID)method returnType:(JavaType)returnType arguments:(jvalue*)args;
-- (jvalue)webPlugInCallJava:(jobject)object
-                   isStatic:(BOOL)isStatic
-                 returnType:(JavaType)returnType
-                     method:(jmethodID)method
-                  arguments:(jvalue*)args
-                 callingURL:(NSURL *)url
-       exceptionDescription:(NSString **)exceptionString;
-@end
-
-bool JSC::Bindings::dispatchJNICall(ExecState* exec, const void* targetAppletView, jobject obj, bool isStatic, JavaType returnType, jmethodID methodID, jvalue* args, jvalue &result, const char*, JSValue& exceptionDescription)
-{
-    id view = (id)targetAppletView;
-
-    // As JavaTypeArray is not known by the Mac JVM, change it to a compatible type.
-    if (returnType == JavaTypeArray)
-        returnType = JavaTypeObject;
-
-    if ([view respondsToSelector:@selector(webPlugInCallJava:isStatic:returnType:method:arguments:callingURL:exceptionDescription:)]) {
-        NSString *_exceptionDescription = 0;
-
-        // Passing nil as the calling URL will cause the Java plugin to use the URL
-        // of the page that contains the applet. The execution restrictions
-        // implemented in WebCore will guarantee that only appropriate JavaScript
-        // can reference the applet.
-        {
-           JSLock::DropAllLocks dropAllLocks(exec);
-            result = [view webPlugInCallJava:obj isStatic:isStatic returnType:returnType method:methodID arguments:args callingURL:nil exceptionDescription:&_exceptionDescription];
-        }
-
-        if (_exceptionDescription != 0) {
-            exceptionDescription = convertNSStringToString(exec, _exceptionDescription);
-        }
-        return true;
-    }
-    else if ([view respondsToSelector:@selector(webPlugInCallJava:method:returnType:arguments:)]) {
-        JSLock::DropAllLocks dropAllLocks(exec);
-        result = [view webPlugInCallJava:obj method:methodID returnType:returnType arguments:args];
-        return true;
-    }
-
-    bzero (&result, sizeof(jvalue));
-    return false;
-}
-
-#endif // ENABLE(JAVA_BRIDGE)
--- a/modules/javafx.web/src/main/native/Source/WebCore/bridge/jni/jsc/BridgeUtils.cpp	Fri Jan 12 14:40:32 2018 -0800
+++ b/modules/javafx.web/src/main/native/Source/WebCore/bridge/jni/jsc/BridgeUtils.cpp	Tue Jan 16 10:22:31 2018 -0800
@@ -1,5 +1,26 @@
 /*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
  */
 
 #include "config.h"
@@ -258,8 +279,6 @@
     switch (peer_type) {
     case com_sun_webkit_dom_JSObject_JS_CONTEXT_OBJECT:
         {
-            //based on [JavaJSObject] implementation
-            //[Source/WebCore/bridge/jni/jni_jsobject.mm]
             object = static_cast<JSObjectRef>(jlong_to_ptr(peer));
             rootObject = JSC::Bindings::findProtectingRootObject(reinterpret_cast<JSC::JSObject*>(object));
             if (rootObject) {
--- a/modules/javafx.web/src/test/java/test/com/sun/webkit/SharedBufferTest.java	Fri Jan 12 14:40:32 2018 -0800
+++ b/modules/javafx.web/src/test/java/test/com/sun/webkit/SharedBufferTest.java	Tue Jan 16 10:22:31 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2018, 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
@@ -33,7 +33,6 @@
 import java.util.Random;
 import org.junit.After;
 import org.junit.BeforeClass;
-import org.junit.Ignore;
 import org.junit.Test;
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
@@ -124,14 +123,6 @@
                 getSomeData(SEGMENT_SIZE - 10, 10));
     }
 
-    @Test @Ignore
-    public void testGetSomeDataFirstSegmentLastTenBytesWithTruncation() {
-        append(SEGMENT_SIZE * 2.5);
-        assertArrayEquals(
-                g(SEGMENT_SIZE - 5, 5),
-                getSomeData(SEGMENT_SIZE - 5, 10));
-    }
-
     @Test
     public void testGetSomeDataInteriorSegmentFirstTenBytes() {
         append(SEGMENT_SIZE * 2.5);
@@ -154,14 +145,6 @@
                 getSomeData(SEGMENT_SIZE * 2 - 10, 10));
     }
 
-    @Test @Ignore
-    public void testGetSomeDataInteriorSegmentLastTenBytesWithTruncation() {
-        append(SEGMENT_SIZE * 2.5);
-        assertArrayEquals(
-                g(SEGMENT_SIZE * 2 - 5, 5),
-                getSomeData(SEGMENT_SIZE * 2 - 5, 10));
-    }
-
     @Test
     public void testGetSomeDataLastSegmentFirstTenBytes() {
         append(SEGMENT_SIZE * 2.5);
@@ -211,14 +194,6 @@
         assertArrayEquals(g(0, SEGMENT_SIZE), getSomeData(0, SEGMENT_SIZE));
     }
 
-    @Test @Ignore
-    public void testGetSomeDataFirstSegmentWithTruncation() {
-        append(SEGMENT_SIZE * 2.5);
-        assertArrayEquals(
-                g(SEGMENT_SIZE * 0.5, SEGMENT_SIZE - SEGMENT_SIZE * 0.5),
-                getSomeData(SEGMENT_SIZE * 0.5, SEGMENT_SIZE));
-    }
-
     @Test
     public void testGetSomeDataInteriorSegment() {
         append(SEGMENT_SIZE * 2.5);
@@ -227,14 +202,6 @@
                 getSomeData(SEGMENT_SIZE, SEGMENT_SIZE));
     }
 
-    @Test @Ignore
-    public void testGetSomeDataInteriorSegmentWithTruncation() {
-        append(SEGMENT_SIZE * 2.5);
-        assertArrayEquals(
-                g(SEGMENT_SIZE * 1.5, SEGMENT_SIZE - SEGMENT_SIZE * 0.5),
-                getSomeData(SEGMENT_SIZE * 1.5, SEGMENT_SIZE));
-    }
-
     @Test
     public void testGetSomeDataLastSegment() {
         append(SEGMENT_SIZE * 2.5);
@@ -389,41 +356,6 @@
         assertSharedBufferContains(g(0, SEGMENT_SIZE));
     }
 
-    @Test @Ignore
-    public void testAppendThreeSegments() {
-        append(g(0, SEGMENT_SIZE * 3));
-        assertSharedBufferContains(
-                g(0, SEGMENT_SIZE),
-                g(SEGMENT_SIZE, SEGMENT_SIZE),
-                g(SEGMENT_SIZE * 2, SEGMENT_SIZE));
-    }
-
-    @Test @Ignore
-    public void testAppendThreeSegmentsPlusSegmentPlusTenBytes() {
-        append(g(0, SEGMENT_SIZE * 3));
-        append(g(0, SEGMENT_SIZE));
-        append(g(0, 10));
-        assertSharedBufferContains(
-                g(0, SEGMENT_SIZE),
-                g(SEGMENT_SIZE, SEGMENT_SIZE),
-                g(SEGMENT_SIZE * 2, SEGMENT_SIZE),
-                g(0, SEGMENT_SIZE),
-                g(0, 10));
-    }
-
-    @Test @Ignore
-    public void testAppendTenBytesPlusSegmentPlusThreeSegments() {
-        append(g(0, 10));
-        append(g(0, SEGMENT_SIZE));
-        append(g(0, SEGMENT_SIZE * 3));
-        assertSharedBufferContains(
-                g(0, 10),
-                g(0, SEGMENT_SIZE),
-                g(0, SEGMENT_SIZE),
-                g(SEGMENT_SIZE, SEGMENT_SIZE),
-                g(SEGMENT_SIZE * 2, SEGMENT_SIZE));
-    }
-
     @Test
     public void testAppendZeroBytes() {
         append(new byte[0]);
--- a/modules/javafx.web/src/test/java/test/com/sun/webkit/SimpleSharedBufferInputStreamTest.java	Fri Jan 12 14:40:32 2018 -0800
+++ b/modules/javafx.web/src/test/java/test/com/sun/webkit/SimpleSharedBufferInputStreamTest.java	Tue Jan 16 10:22:31 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2018, 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
@@ -33,7 +33,6 @@
 import java.util.Random;
 import org.junit.After;
 import org.junit.BeforeClass;
-import org.junit.Ignore;
 import org.junit.Test;
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
@@ -166,13 +165,6 @@
         assertArrayEquals(g(SEGMENT_SIZE - 10, 10), read(10));
     }
 
-    @Test @Ignore
-    public void testRead3FirstSegmentLastTenBytesWithTruncation() {
-        append(SEGMENT_SIZE * 2.5);
-        readOut(SEGMENT_SIZE - 5);
-        assertArrayEquals(g(SEGMENT_SIZE - 5, 5), read(10));
-    }
-
     @Test
     public void testRead3InteriorSegmentFirstTenBytes() {
         append(SEGMENT_SIZE * 2.5);
@@ -194,13 +186,6 @@
         assertArrayEquals(g(SEGMENT_SIZE * 2 - 10, 10), read(10));
     }
 
-    @Test @Ignore
-    public void testRead3InteriorSegmentLastTenBytesWithTruncation() {
-        append(SEGMENT_SIZE * 2.5);
-        readOut(SEGMENT_SIZE * 2 - 5);
-        assertArrayEquals(g(SEGMENT_SIZE * 2 - 5, 5), read(10));
-    }
-
     @Test
     public void testRead3LastSegmentFirstTenBytes() {
         append(SEGMENT_SIZE * 2.5);
@@ -247,15 +232,6 @@
         assertArrayEquals(g(0, SEGMENT_SIZE), read(SEGMENT_SIZE));
     }
 
-    @Test @Ignore
-    public void testRead3FirstSegmentWithTruncation() {
-        append(SEGMENT_SIZE * 2.5);
-        readOut(SEGMENT_SIZE * 0.5);
-        assertArrayEquals(
-                g(SEGMENT_SIZE * 0.5, SEGMENT_SIZE - SEGMENT_SIZE * 0.5),
-                read(SEGMENT_SIZE));
-    }
-
     @Test
     public void testRead3InteriorSegment() {
         append(SEGMENT_SIZE * 2.5);
@@ -263,15 +239,6 @@
         assertArrayEquals(g(SEGMENT_SIZE, SEGMENT_SIZE), read(SEGMENT_SIZE));
     }
 
-    @Test @Ignore
-    public void testRead3InteriorSegmentWithTruncation() {
-        append(SEGMENT_SIZE * 2.5);
-        readOut(SEGMENT_SIZE * 1.5);
-        assertArrayEquals(
-                g(SEGMENT_SIZE * 1.5, SEGMENT_SIZE - SEGMENT_SIZE * 0.5),
-                read(SEGMENT_SIZE));
-    }
-
     @Test
     public void testRead3LastSegment() {
         append(SEGMENT_SIZE * 2.5);
@@ -381,30 +348,6 @@
         } catch (IndexOutOfBoundsException expected) {}
     }
 
-    @Test @Ignore
-    public void testRead3StandardUse() {
-        int streamSize = 24700;
-        append(streamSize);
-        int numberOfReads = streamSize / SEGMENT_SIZE + 1;
-        for (int i = 0; i < numberOfReads; i++) {
-            byte[] buffer = new byte[8192];
-            int len = is.read(buffer, 0, buffer.length);
-            int expectedLen = i == numberOfReads - 1
-                    ? streamSize % SEGMENT_SIZE : SEGMENT_SIZE;
-            assertEquals(expectedLen, len);
-            byte[] expectedBuffer = new byte[8192];
-            System.arraycopy(g(SEGMENT_SIZE * i, SEGMENT_SIZE), 0,
-                             expectedBuffer, 0,
-                             len);
-            assertArrayEquals(expectedBuffer, buffer);
-        }
-
-        byte[] buffer = new byte[8192];
-        int len = is.read(buffer, 0, buffer.length);
-        assertEquals(-1, len);
-        assertArrayEquals(new byte[8192], buffer);
-    }
-
     private void testSkipSmallNumberOfBytes(long skip) {
         int streamSize = (int) (SEGMENT_SIZE * 2.5);
         int skipCount = streamSize / SEGMENT_SIZE + 1;
@@ -420,16 +363,6 @@
         }
     }
 
-    @Test @Ignore
-    public void testSkipOneByte() {
-        testSkipSmallNumberOfBytes(1);
-    }
-
-    @Test @Ignore
-    public void testSkipTenBytes() {
-        testSkipSmallNumberOfBytes(10);
-    }
-
     @Test
     public void testSkipZeroBytes() {
         testSkipSmallNumberOfBytes(0);
@@ -573,23 +506,6 @@
         assertArrayEquals(g(0, SEGMENT_SIZE), read(SEGMENT_SIZE));
     }
 
-    @Test @Ignore
-    public void testCloseBeforeSubsequentRead() throws IOException {
-        append(SEGMENT_SIZE * 2.5);
-        assertArrayEquals(g(0, 10), read(10));
-        is.close();
-        assertArrayEquals(g(10, SEGMENT_SIZE - 10), read(SEGMENT_SIZE));
-    }
-
-    @Test @Ignore
-    public void testDoubleClose() throws IOException {
-        append(SEGMENT_SIZE * 2.5);
-        assertArrayEquals(g(0, 10), read(10));
-        is.close();
-        is.close();
-        assertArrayEquals(g(10, SEGMENT_SIZE - 10), read(SEGMENT_SIZE));
-    }
-
     @Test
     public void testCloseEmptyBuffer() throws IOException {
         is.close();