Search in sources :

Example 6 with EmptyByteBuf

use of io.netty.buffer.EmptyByteBuf in project activemq-artemis by apache.

the class MQTTPublishManager method sendInternal.

/**
 * Sends a message either on behalf of the client or on behalf of the broker (Will Messages)
 * @param messageId
 * @param topic
 * @param qos
 * @param payload
 * @param retain
 * @param internal if true means on behalf of the broker (skips authorisation) and does not return ack.
 * @throws Exception
 */
void sendInternal(int messageId, String topic, int qos, ByteBuf payload, boolean retain, boolean internal) throws Exception {
    synchronized (lock) {
        Message serverMessage = MQTTUtil.createServerMessageFromByteBuf(session, topic, retain, qos, payload);
        if (qos > 0) {
            serverMessage.setDurable(MQTTUtil.DURABLE_MESSAGES);
        }
        if (qos < 2 || !state.getPubRec().contains(messageId)) {
            if (qos == 2 && !internal)
                state.getPubRec().add(messageId);
            Transaction tx = session.getServerSession().newTransaction();
            try {
                if (internal) {
                    session.getServer().getPostOffice().route(serverMessage, tx, true);
                } else {
                    session.getServerSession().send(tx, serverMessage, true, false);
                }
                if (retain) {
                    boolean reset = payload instanceof EmptyByteBuf || payload.capacity() == 0;
                    session.getRetainMessageManager().handleRetainedMessage(serverMessage, topic, reset, tx);
                }
                tx.commit();
            } catch (Throwable t) {
                logger.warn(t.getMessage(), t);
                tx.rollback();
                throw t;
            }
            createMessageAck(messageId, qos, internal);
        }
    }
}
Also used : ICoreMessage(org.apache.activemq.artemis.api.core.ICoreMessage) Message(org.apache.activemq.artemis.api.core.Message) Transaction(org.apache.activemq.artemis.core.transaction.Transaction) EmptyByteBuf(io.netty.buffer.EmptyByteBuf)

Example 7 with EmptyByteBuf

use of io.netty.buffer.EmptyByteBuf in project reactor-netty by reactor.

the class ChannelOperationsHandler method channelRead.

@Override
public final void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
    if (msg == null || msg == Unpooled.EMPTY_BUFFER || msg instanceof EmptyByteBuf) {
        return;
    }
    try {
        ChannelOperations<?, ?> ops = ChannelOperations.get(ctx.channel());
        if (ops != null) {
            ops.onInboundNext(ctx, msg);
        } else {
            if (log.isDebugEnabled()) {
                String loggingMsg = msg.toString();
                if (msg instanceof HttpResponse) {
                    DecoderResult decoderResult = ((HttpResponse) msg).decoderResult();
                    if (decoderResult.isFailure()) {
                        log.debug("Decoding failed: " + msg + " : ", decoderResult.cause());
                    }
                }
                if (msg instanceof ByteBufHolder) {
                    loggingMsg = ((ByteBufHolder) msg).content().toString(Charset.defaultCharset());
                }
                log.debug("{} No ChannelOperation attached. Dropping: {}", ctx.channel().toString(), loggingMsg);
            }
            ReferenceCountUtil.release(msg);
        }
    } catch (Throwable err) {
        Exceptions.throwIfFatal(err);
        exceptionCaught(ctx, err);
        ReferenceCountUtil.safeRelease(msg);
    }
}
Also used : EmptyByteBuf(io.netty.buffer.EmptyByteBuf) HttpResponse(io.netty.handler.codec.http.HttpResponse) DecoderResult(io.netty.handler.codec.DecoderResult) ByteBufHolder(io.netty.buffer.ByteBufHolder)

Example 8 with EmptyByteBuf

use of io.netty.buffer.EmptyByteBuf in project grpc-java by grpc.

the class NettyServerStreamTest method abortStreamAfterClientHalfCloseShouldCallClose.

@Test
public void abortStreamAfterClientHalfCloseShouldCallClose() {
    Status status = Status.INTERNAL.withCause(new Throwable());
    // Client half-closes. Listener gets halfClosed()
    stream().transportState().inboundDataReceived(new EmptyByteBuf(UnpooledByteBufAllocator.DEFAULT), true);
    verify(serverListener).halfClosed();
    // Abort from the transport layer
    stream().transportState().transportReportStatus(status);
    verify(serverListener).closed(same(status));
    assertNull("no message expected", listenerMessageQueue.poll());
}
Also used : Status(io.grpc.Status) EmptyByteBuf(io.netty.buffer.EmptyByteBuf) Test(org.junit.Test)

Example 9 with EmptyByteBuf

use of io.netty.buffer.EmptyByteBuf in project thingsboard by thingsboard.

the class MqttTransportHandlerTest method getMqttPublishMessage.

MqttPublishMessage getMqttPublishMessage() {
    MqttFixedHeader mqttFixedHeader = new MqttFixedHeader(MqttMessageType.PUBLISH, true, MqttQoS.AT_LEAST_ONCE, false, 123);
    MqttPublishVariableHeader variableHeader = new MqttPublishVariableHeader("v1/gateway/telemetry", packedId.incrementAndGet());
    ByteBuf payload = new EmptyByteBuf(new PooledByteBufAllocator());
    return new MqttPublishMessage(mqttFixedHeader, variableHeader, payload);
}
Also used : MqttFixedHeader(io.netty.handler.codec.mqtt.MqttFixedHeader) EmptyByteBuf(io.netty.buffer.EmptyByteBuf) MqttPublishMessage(io.netty.handler.codec.mqtt.MqttPublishMessage) MqttPublishVariableHeader(io.netty.handler.codec.mqtt.MqttPublishVariableHeader) ByteBuf(io.netty.buffer.ByteBuf) EmptyByteBuf(io.netty.buffer.EmptyByteBuf) PooledByteBufAllocator(io.netty.buffer.PooledByteBufAllocator)

Aggregations

EmptyByteBuf (io.netty.buffer.EmptyByteBuf)9 Test (org.junit.Test)4 ByteBuf (io.netty.buffer.ByteBuf)3 DefaultHttpContent (io.netty.handler.codec.http.DefaultHttpContent)2 HttpContent (io.netty.handler.codec.http.HttpContent)2 SendPlayerToServerPacket (io.gomint.proxprox.network.tcp.protocol.SendPlayerToServerPacket)1 UpdatePingPacket (io.gomint.proxprox.network.tcp.protocol.UpdatePingPacket)1 WrappedMCPEPacket (io.gomint.proxprox.network.tcp.protocol.WrappedMCPEPacket)1 Status (io.grpc.Status)1 ByteBufHolder (io.netty.buffer.ByteBufHolder)1 CompositeByteBuf (io.netty.buffer.CompositeByteBuf)1 PooledByteBufAllocator (io.netty.buffer.PooledByteBufAllocator)1 DecoderResult (io.netty.handler.codec.DecoderResult)1 HttpResponse (io.netty.handler.codec.http.HttpResponse)1 DefaultHttp2Headers (io.netty.handler.codec.http2.DefaultHttp2Headers)1 MqttFixedHeader (io.netty.handler.codec.mqtt.MqttFixedHeader)1 MqttPublishMessage (io.netty.handler.codec.mqtt.MqttPublishMessage)1 MqttPublishVariableHeader (io.netty.handler.codec.mqtt.MqttPublishVariableHeader)1 AsciiString (io.netty.util.AsciiString)1 ByteArrayOutputStream (java.io.ByteArrayOutputStream)1