Coder Social home page Coder Social logo

kaazing / java.client Goto Github PK

View Code? Open in Web Editor NEW
20.0 47.0 18.0 1.3 MB

Kaazing WebSocket client using RFC-6455 and emulated protocols, plus AMQP protocol client

Home Page: http://kaazing.org

License: Apache License 2.0

Java 99.90% Smalltalk 0.08% HTML 0.02%

java.client's Introduction

java.client

The java.client includes the following projects:

  • ws - a client API that enables developers to build Java applications that communicate with an RFC-6455 endpoint over WebSocket, such as KAAZING Gateway.
  • amqp-0-9-1 - a client API that enables developers to build Java applications that communicate with an AMQP broker using an RFC-6455 endpoint over WebSocket, such as KAAZING Gateway.

java.client's People

Contributors

ahousing avatar andrey-skl avatar chadpowers avatar chao-sun-kaazing avatar davecombs avatar jitsni avatar kaazing-build avatar pkhanal avatar vjwang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

java.client's Issues

org.kaazing.net.impl.util.BlockingQueueImpl : take() and put() can miss done() or reset() and remain blocking

I happened to run across this in code inspection (actually just searching GitHub for occurrences of notifyAll()) to see if I can spot bugs around them in a few minutes, as part of some other silly exercise), so I figured Iโ€™d point it out here in case it matters.

The (sole?) purpose of org.kaazing.net.impl.util.BlockingQueueImpl appears to be to add interrupt and end of stream capability to j.u.c.ArrayBlockingQueue. However, in the implementation, a done() or reset() call may leave threads blocked on a take() or put() until actual contents is added or removed to/from the queue. For example, if done() or reset() are executed right before a thread executes this line of code (but after that thread entered the take() method), the notifyAll() calls in done() or reset(), and the done indication, will have no effect and the thread can remain blocked until further contents arrives on the queue.

A similar situation can happen in the put() implementation here.

WebSocketIT.echoPayloadOverWSE() fails on JDK 8

Following exception is thrown:

org.kaazing.net.ws.WebSocketException: End of stream has reached as the connection has been closed
    at org.kaazing.net.ws.impl.io.WsMessageReaderImpl.getText(WsMessageReaderImpl.java:90)
    at org.kaazing.gateway.client.impl.ws.WebSocketIT.echoPayloadOverWSE(WebSocketIT.java:183)

error during "mvn clean verify"

I had to try building three times before it succeeded. I believe the first two times were the same error:

Running org.kaazing.gateway.client.impl.ws.WebSocketIT
Oct 08, 2015 3:27:43 PM org.kaazing.gateway.client.transport.http.HttpRequestDelegateImpl$StreamReader run2
SEVERE: java.net.SocketException: Unexpected end of file from server
Oct 08, 2015 3:27:43 PM org.kaazing.gateway.client.transport.http.HttpRequestDelegateImpl$StreamReader run2
SEVERE: java.net.SocketException: Connection reset
Oct 08, 2015 3:27:43 PM org.kaazing.gateway.client.transport.http.HttpRequestDelegateImpl$StreamReader run
INFO: WebSocket upstream channel already closed
java.lang.IllegalStateException: WebSocket upstream channel already closed
        at org.kaazing.gateway.client.impl.wseb.WebSocketEmulatedHandler$2.upstreamFailed(WebSocketEmulatedHandler.java:128)
        at org.kaazing.gateway.client.impl.wseb.UpstreamHandlerImpl$3.errorOccurred(UpstreamHandlerImpl.java:125)
        at org.kaazing.gateway.client.impl.http.HttpRequestTransportHandler$2.errorOccurred(HttpRequestTransportHandler.java:94)
        at org.kaazing.gateway.client.impl.http.HttpRequestDelegateHandler$1.errorOccurred(HttpRequestDelegateHandler.java:133)
        at org.kaazing.gateway.client.transport.http.HttpRequestDelegateImpl$StreamReader.run2(HttpRequestDelegateImpl.java:264)
        at org.kaazing.gateway.client.transport.http.HttpRequestDelegateImpl$StreamReader.run(HttpRequestDelegateImpl.java:218)
        at java.lang.Thread.run(Thread.java:745)

Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 5.211 sec <<< FAILURE! - in org.kaazing.gateway.client.impl.ws.WebSocketIT
clientShouldReceiveDataOverLongpollingRequest(org.kaazing.gateway.client.impl.ws.WebSocketIT)  Time elapsed: 5.087 sec  <<< FAILURE!
org.junit.ComparisonFailure: Specified behavior did not match expected:<...der "X-Sequence-No" [${wse:asString(sequence + 1)}

read [0x01 0x30 0x32 0xFF]
read [0x01 0x30 0x31 0xFF]
read closed

write status "200" "OK"
write version "HTTP/1.1"
write header content-length
write close]
> but was:<...der "X-Sequence-No" [[0x32]]
>
        at org.junit.Assert.assertEquals(Assert.java:115)
        at org.kaazing.k3po.junit.rules.SpecificationStatement.evaluate(SpecificationStatement.java:132)
        at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
        at org.junit.rules.RunRules.evaluate(RunRules.java:20)
        at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
        at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
        at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283)
        at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173)
        at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
        at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128)
        at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
        at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
        at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)


Results :

Failed tests:
  WebSocketIT.clientShouldReceiveDataOverLongpollingRequest Specified behavior did not match expected:<...der "X-Sequence-No" [${wse:asString(sequence + 1)}

read [0x01 0x30 0x32 0xFF]
read [0x01 0x30 0x31 0xFF]
read closed

write status "200" "OK"
write version "HTTP/1.1"
write header content-length
write close]
> but was:<...der "X-Sequence-No" [[0x32]]
>

Tests run: 5, Failures: 1, Errors: 0, Skipped: 0

Empty ServiceLoader<SseEventSourceFactory>collection issue

Hi,

Description:
I stumbled across a very weird bug in the App in which I'm working on. I'm working in an Android App. I'm using the compile 'org.kaazing:gateway.client.java:5.1.0.3' version. Basically we only had one report
of this issue in only one device. But we would like to know if you guys know the cause behind this crash. Please let me know if I can give you more info.

Stacktrace:

Fatal Exception: java.util.NoSuchElementException
       at java.util.ServiceLoader$ServiceIterator.next(ServiceLoader.java:210)
       at org.kaazing.net.sse.SseEventSourceFactory.createEventSourceFactory(SseEventSourceFactory.java:51)
       at com.siplay.android_siplay.data.sockets.SSEService.establishConnection(SSEService.java:94)
       at com.siplay.android_siplay.data.sockets.SSEService.access$200(SSEService.java:40)
       at com.siplay.android_siplay.data.sockets.SSEService$2.run(SSEService.java:129)
       at android.os.Handler.handleCallback(Handler.java:733)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:146)
       at android.app.ActivityThread.main(ActivityThread.java:5635)
       at java.lang.reflect.Method.invokeNative(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:515)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
       at dalvik.system.NativeStart.main(NativeStart.java)

Client code:
This is the code that we are using in the App to connect. Is in an Android Service.

public class SSEService extends Service {

    private final int RECONNECT_MILLIS = 30000;

    private final String SSE_ENDPOINT = "/sse/session/";
    private final String JSON_KEY_TYPE = "type";
    private final String JSON_KEY_DATA = "data";
    private final String JSON_VALUE_HEARTBEAT = "heartbeat";
    private final String JSON_VALUE_UPDATE = "update";

    private static boolean mConnected = false;
    private IBinder mBinder = new SSEServiceBinder();

    /**
     * A handler is used to check if we need to reconnect after N seconds without receving a heartbeat
     * value on text changed
     */
    private Handler mHandler = new Handler();

    @Inject
    GetToken mGetToken;

    @Override
    public void onCreate() {
        super.onCreate();

        DaggerViewInjectorComponent.builder()
                .appComponent(SipApplication.getInstance().getComponent())
                .build()
                .inject(this);
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        if (!mConnected) {
            establishConnection();
        }

        return START_NOT_STICKY;
    }

    /**
     * Establish a connection with the SSE server
     */
    private void establishConnection() {

        String mToken = mGetToken.get();

        if (!TextUtils.isEmpty(mToken)) {

            mConnected = true;

            try {

                final SseEventSourceFactory sseEventSourceFactory = SseEventSourceFactory.createEventSourceFactory();
                final SseEventSource sseEventSource = sseEventSourceFactory.createEventSource(new URI(BuildConfig.HOST + SSE_ENDPOINT + mToken));

                Thread t = new Thread(new Runnable() {
                    @Override
                    public void run() {
                        try {
                            sseEventSource.connect();
                            mConnected = true;
                            listen(sseEventSource.getEventReader());
                        }catch (IOException e) {
                            e.printStackTrace();
                            mConnected = false;
                        }
                    }
                });

                t.start();

            } catch (URISyntaxException e) {
                e.printStackTrace();
                mConnected = false;
            } catch (Exception e) {
                Crashlytics.logException(e);
            }
        }

    }

    /**
     * This task will reconnect the service
     */
    Runnable mReconnectTask = new Runnable() {

        @Override
        public void run() {
            mConnected = false;
            establishConnection();
        }
    };

    /**
     * Keeps listening for events
     * @param sseEventReader
     * @throws IOException
     */
    private void listen(SseEventReader sseEventReader) throws IOException {

        SseEventType type = sseEventReader.next();

        mHandler.postDelayed(mReconnectTask, RECONNECT_MILLIS);

        while (type != SseEventType.EOS && mConnected) {
            if (type != null && type.equals(SseEventType.DATA)) {
                CharSequence dataString = sseEventReader.getData();

                try {
                    JSONObject message = new JSONObject(dataString.toString());
                    String messageType = message.getString(JSON_KEY_TYPE);

                    if (messageType.equals(JSON_VALUE_HEARTBEAT)) {
                        mHandler.removeCallbacks(mReconnectTask);
                        mHandler.postDelayed(mReconnectTask, RECONNECT_MILLIS);
                    }

                    if (messageType.equals(JSON_VALUE_UPDATE)) {
                        JSONObject data = message.getJSONObject(JSON_KEY_DATA);
                        new SocketMessageHandler().handleMessage(data);
                    }

                }catch (JsonSyntaxException e) {
                    // Do Nothing with this message
                }catch (JSONException e) {
                    // Do Nothing with this message
                }
            }

            type = sseEventReader.next();
        }

        mConnected = false;
    }

    @Override
    public IBinder onBind(Intent intent) {
        return mBinder;
    }

    @Override
    public boolean onUnbind(Intent intent){
        return false;
    }

    /**
     * Binder for communicating the service with the activity
     */
    public class SSEServiceBinder extends Binder {
        public SSEService getService() {
            return SSEService.this;
        }
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        mConnected = false;
        mHandler.removeCallbacks(mReconnectTask);
    }

}

Ubuntu / Java 8 Build error

I tried to build this repo but ran into some problems, basically it fails on some tests.
I ran the command from the readme(mvn clean install) on an ubuntu 14.04 VM with Java 1.8.0_45 and maven 3.0.5 while connected to the Kaazing VPN.
Please advise on this matter(I am not sure if this is a bug or if I am missing any settings).
Below you can find the console output describing the problem.

Results :

Tests in error:
testRequestReady(org.kaazing.gateway.client.impl.wseb.CreateHandlerTest): unexpected invocation
testRequestClosed(org.kaazing.gateway.client.impl.wseb.CreateHandlerTest): Could not initialize class org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandler
testRequestLoaded(org.kaazing.gateway.client.impl.wseb.CreateHandlerTest): Could not initialize class org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandler
testRequestProgressed(org.kaazing.gateway.client.impl.wseb.CreateHandlerTest): Could not initialize class org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandler
testProcessOpen(org.kaazing.gateway.client.impl.wseb.CreateHandlerTest): Could not initialize class org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandler
testErrorOccured(org.kaazing.gateway.client.impl.wseb.CreateHandlerTest): Could not initialize class org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandler
testProcessOpenWithProtocol(org.kaazing.gateway.client.impl.wseb.CreateHandlerTest): Could not initialize class org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandler
testRequestAborted(org.kaazing.gateway.client.impl.wseb.CreateHandlerTest): Could not initialize class org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandler
testProcessOpenWithMultipleProtocols(org.kaazing.gateway.client.impl.wseb.CreateHandlerTest): Could not initialize class org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandler
testExtendedHandshakeWith401(org.kaazing.gateway.client.impl.wsn.WebSocketNativeHandshakeHandlerTest): Could not initialize class org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandler
testProcessConnect(org.kaazing.gateway.client.impl.wsn.WebSocketNativeHandshakeHandlerTest): Could not initialize class org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandler
testExtendedHandshakeFailed(org.kaazing.gateway.client.impl.wsn.WebSocketNativeHandshakeHandlerTest): Could not initialize class org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandler
testProcessAuthorize(org.kaazing.gateway.client.impl.wsn.WebSocketNativeHandshakeHandlerTest): Could not initialize class org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandler
testExtendedHandshakeSuccess(org.kaazing.gateway.client.impl.wsn.WebSocketNativeHandshakeHandlerTest): Could not initialize class org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandler
testProcessAuthorizeWithoutChallengeHandler(org.kaazing.gateway.client.impl.wsn.WebSocketNativeAuthenticationHandlerTest): Could not initialize class org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandler
testProcessConnect(org.kaazing.gateway.client.impl.wsn.WebSocketNativeAuthenticationHandlerTest): Could not initialize class org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandler
testProcessAuthorizeWithChallengeHandler(org.kaazing.gateway.client.impl.wsn.WebSocketNativeAuthenticationHandlerTest): Could not initialize class org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandler
testProcessBalancerMessage(org.kaazing.gateway.client.impl.wsn.WebSocketNativeBalancingHandlerTest): Could not initialize class org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandler
testProcessBinaryMessage(org.kaazing.gateway.client.impl.wsn.WebSocketNativeBalancingHandlerTest): Could not initialize class org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandler
testProcessTextMessage(org.kaazing.gateway.client.impl.wsn.WebSocketNativeBalancingHandlerTest): Could not initialize class org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandler
testProcessBalancerRedirectMessage(org.kaazing.gateway.client.impl.wsn.WebSocketNativeBalancingHandlerTest): Could not initialize class org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandler
testWssFallback(org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandlerTest): Could not initialize class org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandler
testJavaWseSsl(org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandlerTest): Could not initialize class org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandler
testJavaWseFailed(org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandlerTest): Could not initialize class org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandler
testInvalidScheme(org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandlerTest): Unexpected exception, expected<java.net.URISyntaxException> but was<java.lang.NoClassDefFoundError>
testJavaWsFailed(org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandlerTest): Could not initialize class org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandler
testWsFallback(org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandlerTest): Could not initialize class org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandler
testJavaWs(org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandlerTest): Could not initialize class org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandler
testJavaWse(org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandlerTest): Could not initialize class org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandler
testJavaWss(org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandlerTest): Could not initialize class org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandler
testWseFallback(org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandlerTest): Could not initialize class org.kaazing.gateway.client.impl.ws.WebSocketCompositeHandler

Tests run: 247, Failures: 0, Errors: 31, Skipped: 3

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Kaazing Java Clients .............................. SUCCESS [4.325s]
[INFO] Kaazing Java Client - Net API ..................... SUCCESS [3.299s]
[INFO] Kaazing Java Client - Transport ................... SUCCESS [14.346s]
[INFO] Kaazing Java Client - Bridge ...................... SUCCESS [3.498s]
[INFO] Kaazing Java Client - WebSocket Common ............ SUCCESS [0.160s]
[INFO] Kaazing Java Client - WebSocket RFC-6455 .......... FAILURE [28.660s]
[INFO] Kaazing Java Client - WebSocket Demo .............. SKIPPED
[INFO] Kaazing Java Client - AMQP 0-9-1 Common ........... SKIPPED
[INFO] Kaazing Java Client - AMQP 0-9-1 Library .......... SKIPPED
[INFO] Kaazing Java Client - AMQP 0-9-1 Demo ............. SKIPPED
[INFO] Kaazing Java Client - API Documentation ........... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 55.008s
[INFO] Finished at: Fri May 22 18:01:30 EEST 2015
[INFO] Final Memory: 56M/136M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.10:test (default-test) on project gateway.client.java: There are test failures.

maven artifact signing issue

I'm getting an error when trying to push a component to artifactory:

[INFO] --- maven-gpg-plugin:1.5:sign (default) @ test.release.java.client ---
gpg: no default secret key: No secret key
gpg: signing failed: No secret key
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 03:23 min
[INFO] Finished at: 2015-06-24T12:16:32+00:00
[INFO] Final Memory: 21M/51M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-gpg-plugin:1.5:sign (default) on project test.release.java.client: Exit code: 2 -> [Help 1]

We need to update jenkins with the credentials key. This is blocking the CE java client and gateway QA release stories

Java itests failures using java.client

Under WSE, Gateway 5.0.1.19 is not sending CLOSE(0x30, 0x31) when the client closes the connection. It is likely that the next release of Gateway 5.0(scheduled for later today) has the fixes that were forward ported to address this issue.

To reproduce this issue, one can do the following:

  1. Start Gateway 5.0.1.19
  2. git clone https://github.com/kaazing/java.client.git
  3. cd java.client
  4. mvn clean verify
  5. cd ws/demo/target
  6. java -cp . -jar gateway.client.java.demo-develop-SNAPSHOT.jar
  7. In the location field, enter java:wse://localhost:8001/echo
  8. Press Connect button
  9. Press Close button to see the exception below.
Tests run: 392, Failures: 0, Errors: 82, Skipped: 0

org.kaazing.net.ws.WebSocketException: java.lang.Exception: Connection closed abruptly
        at org.kaazing.net.ws.impl.WebSocketImpl.close(WebSocketImpl.java:261)
        at org.kaazing.net.ws.impl.WebSocketImpl.close(WebSocketImpl.java:182)
        at com.kaazing.itests.net.ws.auth.WebSocketAuthTestBase.testAuthAndText(WebSocketAuthTestBase.java:484)
        at com.kaazing.itests.net.ws.auth.WebSocketAuthTestBase.testWebSocketAuthPrimaryPort(WebSocketAuthTestBase.java:97)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:59)
        at org.junit.internal.runners.MethodRoadie.runTestMethod(MethodRoadie.java:98)
        at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:79)
        at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:87)
        at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:77)
        at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42)
        at org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4ClassRunner.java:88)
        at org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51)
        at org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44)
        at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:27)
        at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:37)
        at org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42)
        at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53)
        at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:123)
        at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:104)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164)
        at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110)
        at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:172)
        at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:104)
        at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:70)
Caused by: java.lang.Exception: Connection closed abruptly
        at org.kaazing.gateway.client.impl.wseb.DownstreamHandlerImpl.reconnectIfNecessary(DownstreamHandlerImpl.java:157)
        at org.kaazing.gateway.client.impl.wseb.DownstreamHandlerImpl.access$1200(DownstreamHandlerImpl.java:54)
        at org.kaazing.gateway.client.impl.wseb.DownstreamHandlerImpl$6.requestLoaded(DownstreamHandlerImpl.java:364)
        at org.kaazing.gateway.client.impl.http.HttpRequestTransportHandler$2.requestLoaded(HttpRequestTransportHandler.java:85)
        at org.kaazing.gateway.client.impl.http.HttpRequestDelegateHandler$1.loaded(HttpRequestDelegateHandler.java:125)
        at org.kaazing.gateway.client.transport.http.HttpRequestDelegateImpl$StreamReader.run2(HttpRequestDelegateImpl.java:326)
        at org.kaazing.gateway.client.transport.http.HttpRequestDelegateImpl$StreamReader.run(HttpRequestDelegateImpl.java:224)
        at java.lang.Thread.run(Thread.java:744)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.