flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FLINK-4053) Return value from Connection should be checked against null
Date Fri, 24 Jun 2016 14:43:16 GMT

    [ https://issues.apache.org/jira/browse/FLINK-4053?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15348364#comment-15348364
] 

ASF GitHub Bot commented on FLINK-4053:
---------------------------------------

Github user zentol commented on a diff in the pull request:

    https://github.com/apache/flink/pull/2128#discussion_r68408173
  
    --- Diff: flink-streaming-connectors/flink-connector-rabbitmq/src/test/java/org/apache/flink/streaming/connectors/rabbitmq/common/RMQSinkTest.java
---
    @@ -0,0 +1,125 @@
    +/*
    + * Licensed to the Apache Software Foundation (ASF) under one or more
    + * contributor license agreements.  See the NOTICE file distributed with
    + * this work for additional information regarding copyright ownership.
    + * The ASF licenses this file to You under the Apache License, Version 2.0
    + * (the "License"); you may not use this file except in compliance with
    + * the License.  You may obtain a copy of the License at
    + *
    + *    http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +
    +package org.apache.flink.streaming.connectors.rabbitmq.common;
    +
    +import com.rabbitmq.client.Channel;
    +import com.rabbitmq.client.Connection;
    +import com.rabbitmq.client.ConnectionFactory;
    +import org.apache.flink.configuration.Configuration;
    +import org.apache.flink.streaming.connectors.rabbitmq.RMQSink;
    +import org.apache.flink.streaming.util.serialization.SerializationSchema;
    +import org.junit.Before;
    +import org.junit.Test;
    +
    +import java.io.IOException;
    +
    +import static org.junit.Assert.assertEquals;
    +import static org.mockito.Mockito.*;
    +
    +public class RMQSinkTest {
    +
    +	private static final String QUEUE_NAME = "queue";
    +	private static final String MESSAGE_STR = "msg";
    +	private static final byte[] MESSAGE = new byte[1];
    +
    +	private RMQConnectionConfig rmqConnectionConfig;
    +	private ConnectionFactory connectionFactory;
    +	private Connection connection;
    +	private Channel channel;
    +	private SerializationSchema<String> serializationSchema;
    +
    +
    +	@Before
    +	public void before() throws Exception {
    +		serializationSchema = spy(new DummySerializationSchema());
    +		rmqConnectionConfig = mock(RMQConnectionConfig.class);
    +		connectionFactory = mock(ConnectionFactory.class);
    +		connection = mock(Connection.class);
    +		channel = mock(Channel.class);
    +
    +		when(rmqConnectionConfig.getConnectionFactory()).thenReturn(connectionFactory);
    +		when(connectionFactory.newConnection()).thenReturn(connection);
    +		when(connection.createChannel()).thenReturn(channel);
    +	}
    +
    +	@Test
    +	public void openCallDeclaresQueue() throws Exception {
    +		createRMQSink();
    +
    +		verify(channel).queueDeclare(QUEUE_NAME, false, false, false, null);
    +	}
    +
    +	@Test
    +	public void throwExceptionIfChannenIsNull() throws Exception {
    +		when(connection.createChannel()).thenReturn(null);
    +		try {
    +			createRMQSink();
    +		} catch (RuntimeException ex) {
    +			assertEquals("RabbitMQ connection returned null channel", ex.getMessage());
    +		}
    +	}
    +
    +	private RMQSink<String> createRMQSink() throws Exception {
    +		RMQSink rmqSink = new RMQSink<String>(rmqConnectionConfig, QUEUE_NAME, serializationSchema);
    +		rmqSink.open(new Configuration());
    +		return rmqSink;
    +	}
    +
    +	@Test
    +	public void invokePublishBytesToQueue() throws Exception {
    +		RMQSink<String> rmqSink = createRMQSink();
    +
    +		rmqSink.invoke(MESSAGE_STR);
    +		verify(serializationSchema).serialize(MESSAGE_STR);
    +		verify(channel).basicPublish("", QUEUE_NAME, null, MESSAGE);
    +	}
    +
    +	@Test(expected = RuntimeException.class)
    +	public void exceptionDuringPublishingIfNotIgnoredError() throws Exception {
    --- End diff --
    
    should this be called "exceptionDuringPublishingIsNotIgnored"?


> Return value from Connection should be checked against null
> -----------------------------------------------------------
>
>                 Key: FLINK-4053
>                 URL: https://issues.apache.org/jira/browse/FLINK-4053
>             Project: Flink
>          Issue Type: Bug
>            Reporter: Ted Yu
>            Assignee: Ivan Mushketyk
>            Priority: Minor
>
> In RMQSource.java and RMQSink.java, there is code in the following pattern:
> {code}
>       connection = factory.newConnection();
>       channel = connection.createChannel();
> {code}
> According to https://www.rabbitmq.com/releases/rabbitmq-java-client/current-javadoc/com/rabbitmq/client/Connection.html#createChannel()
:
> {code}
> Returns:
> a new channel descriptor, or null if none is available
> {code}
> The return value should be checked against null.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message