Skip to content

Commit

Permalink
Remove generic exception from BoltResponseMessageHandler
Browse files Browse the repository at this point in the history
  • Loading branch information
lutovich committed Jul 3, 2018
1 parent e67c4d6 commit 8dc2152
Show file tree
Hide file tree
Showing 15 changed files with 41 additions and 43 deletions.
Expand Up @@ -19,7 +19,6 @@
*/
package org.neo4j.bolt.v1.messaging;

import java.io.IOException;
import java.util.Arrays;
import java.util.List;

Expand All @@ -39,7 +38,7 @@

public class BoltRequestMessageReaderV1 extends BoltRequestMessageReader
{
public BoltRequestMessageReaderV1( BoltConnection connection, BoltResponseMessageHandler<IOException> responseMessageHandler,
public BoltRequestMessageReaderV1( BoltConnection connection, BoltResponseMessageHandler responseMessageHandler,
BoltMessageLogger messageLogger, LogService logService )
{
super( connection,
Expand All @@ -48,7 +47,7 @@ public BoltRequestMessageReaderV1( BoltConnection connection, BoltResponseMessag
messageLogger );
}

private static List<RequestMessageDecoder> buildUnpackers( BoltConnection connection, BoltResponseMessageHandler<IOException> responseMessageHandler,
private static List<RequestMessageDecoder> buildUnpackers( BoltConnection connection, BoltResponseMessageHandler responseMessageHandler,
BoltMessageLogger messageLogger, LogService logService )
{
BoltResponseHandler initHandler = newSimpleResponseHandler( connection, responseMessageHandler, logService );
Expand All @@ -67,7 +66,7 @@ private static List<RequestMessageDecoder> buildUnpackers( BoltConnection connec
}

private static BoltResponseHandler newSimpleResponseHandler( BoltConnection connection,
BoltResponseMessageHandler<IOException> responseMessageHandler, LogService logService )
BoltResponseMessageHandler responseMessageHandler, LogService logService )
{
return new MessageProcessingHandler( responseMessageHandler, connection, internalLog( logService ) );
}
Expand Down
Expand Up @@ -19,28 +19,27 @@
*/
package org.neo4j.bolt.v1.messaging;

import java.io.IOException;

import org.neo4j.cypher.result.QueryResult;
import org.neo4j.kernel.api.exceptions.Status;
import org.neo4j.values.virtual.MapValue;

/**
* Interface defining simple handler methods for each defined
* Bolt response message.
*
* @param <E> an exception that may be thrown by each handler method
*/
// todo: remove generic exception
public interface BoltResponseMessageHandler<E extends Exception>
public interface BoltResponseMessageHandler
{
void onSuccess( MapValue metadata ) throws E;
void onSuccess( MapValue metadata ) throws IOException;

void onRecord( QueryResult.Record item ) throws E;
void onRecord( QueryResult.Record item ) throws IOException;

void onIgnored() throws E;
void onIgnored() throws IOException;

void onFailure( Status status, String errorMessage ) throws E;
void onFailure( Status status, String errorMessage ) throws IOException;

default void onFatal( Status status, String errorMessage ) throws E
default void onFatal( Status status, String errorMessage ) throws IOException
{
onFailure( status, errorMessage );
}
Expand Down
Expand Up @@ -40,7 +40,7 @@
/**
* Writer for Bolt request messages to be sent to a {@link Neo4jPack.Packer}.
*/
public class BoltResponseMessageWriter implements BoltResponseMessageHandler<IOException>
public class BoltResponseMessageWriter implements BoltResponseMessageHandler
{
private final PackOutput output;
private final Neo4jPack.Packer packer;
Expand Down
Expand Up @@ -19,7 +19,6 @@
*/
package org.neo4j.bolt.v1.messaging;

import java.io.IOException;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
Expand All @@ -44,13 +43,12 @@ class MessageProcessingHandler implements BoltResponseHandler

protected final Log log;
protected final BoltConnection connection;
protected final BoltResponseMessageHandler<IOException> handler;
protected final BoltResponseMessageHandler handler;

private Neo4jError error;
private boolean ignored;

MessageProcessingHandler( BoltResponseMessageHandler<IOException> handler, BoltConnection connection,
Log logger )
MessageProcessingHandler( BoltResponseMessageHandler handler, BoltConnection connection, Log logger )
{
this.handler = handler;
this.connection = connection;
Expand Down Expand Up @@ -121,7 +119,7 @@ private void clearState()
metadata.clear();
}

private void publishError( BoltResponseMessageHandler<IOException> out, Neo4jError error )
private void publishError( BoltResponseMessageHandler out, Neo4jError error )
{
try
{
Expand Down
Expand Up @@ -19,8 +19,6 @@
*/
package org.neo4j.bolt.v1.messaging;

import java.io.IOException;

import org.neo4j.bolt.runtime.BoltConnection;
import org.neo4j.bolt.runtime.BoltResult;
import org.neo4j.cypher.result.QueryResult;
Expand All @@ -29,7 +27,7 @@

class ResultHandler extends MessageProcessingHandler
{
ResultHandler( BoltResponseMessageHandler<IOException> handler, BoltConnection connection, Log log )
ResultHandler( BoltResponseMessageHandler handler, BoltConnection connection, Log log )
{
super( handler, connection, log );
}
Expand Down
Expand Up @@ -350,7 +350,7 @@ public void shouldThrowOnUnknownStructType() throws Exception
public void shouldLogContentOfTheMessageOnIOError() throws Exception
{
BoltConnection connection = mock( BoltConnection.class );
BoltResponseMessageHandler<IOException> responseMessageHandler = mock( BoltResponseMessageHandler.class );
BoltResponseMessageHandler responseMessageHandler = mock( BoltResponseMessageHandler.class );

BoltRequestMessageReader requestMessageReader = new BoltRequestMessageReaderV1( connection, responseMessageHandler,
NullBoltMessageLogger.getInstance(), NullLogService.getInstance() );
Expand Down
Expand Up @@ -41,7 +41,7 @@ public BoltResponseMessageReader( Neo4jPack.Unpacker unpacker )
this.unpacker = unpacker;
}

public <E extends Exception> void read( BoltResponseMessageHandler<E> handler ) throws IOException, E
public void read( BoltResponseMessageHandler handler ) throws IOException
{
try
{
Expand Down
Expand Up @@ -31,7 +31,7 @@
import org.neo4j.kernel.api.exceptions.Status;
import org.neo4j.values.virtual.MapValue;

public class BoltResponseMessageRecorder implements BoltResponseMessageHandler<RuntimeException>
public class BoltResponseMessageRecorder implements BoltResponseMessageHandler
{
private final List<ResponseMessage> messages = new ArrayList<>();

Expand Down
Expand Up @@ -21,8 +21,6 @@

import org.junit.Test;

import java.io.IOException;

import org.neo4j.bolt.runtime.BoltConnection;
import org.neo4j.bolt.runtime.Neo4jError;
import org.neo4j.bolt.v1.packstream.PackOutputClosedException;
Expand All @@ -49,7 +47,7 @@ public class MessageProcessingHandlerTest
public void shouldCallHaltOnUnexpectedFailures() throws Exception
{
// Given
BoltResponseMessageHandler<IOException> msgHandler = newResponseHandlerMock();
BoltResponseMessageHandler msgHandler = newResponseHandlerMock();
doThrow( new RuntimeException( "Something went horribly wrong" ) ).when( msgHandler ).onSuccess(
any( MapValue.class ) );

Expand Down Expand Up @@ -134,8 +132,7 @@ private static AssertableLogProvider emulateFailureWritingError( Neo4jError erro
throws Exception
{
AssertableLogProvider logProvider = new AssertableLogProvider();
BoltResponseMessageHandler<IOException> responseHandler =
newResponseHandlerMock( error.isFatal(), errorDuringWrite );
BoltResponseMessageHandler responseHandler = newResponseHandlerMock( error.isFatal(), errorDuringWrite );

MessageProcessingHandler handler =
new MessageProcessingHandler( responseHandler, mock( BoltConnection.class ),
Expand All @@ -147,10 +144,9 @@ private static AssertableLogProvider emulateFailureWritingError( Neo4jError erro
return logProvider;
}

private static BoltResponseMessageHandler<IOException> newResponseHandlerMock( boolean fatalError, Throwable error )
throws Exception
private static BoltResponseMessageHandler newResponseHandlerMock( boolean fatalError, Throwable error ) throws Exception
{
BoltResponseMessageHandler<IOException> handler = newResponseHandlerMock();
BoltResponseMessageHandler handler = newResponseHandlerMock();
if ( fatalError )
{
doThrow( error ).when( handler ).onFatal( any( Status.class ), anyString() );
Expand All @@ -163,7 +159,7 @@ private static BoltResponseMessageHandler<IOException> newResponseHandlerMock( b
}

@SuppressWarnings( "unchecked" )
private static BoltResponseMessageHandler<IOException> newResponseHandlerMock()
private static BoltResponseMessageHandler newResponseHandlerMock()
{
return mock( BoltResponseMessageHandler.class );
}
Expand Down
Expand Up @@ -21,8 +21,6 @@

import org.junit.jupiter.api.Test;

import java.io.IOException;

import org.neo4j.bolt.runtime.BoltConnection;
import org.neo4j.bolt.runtime.BoltResult;
import org.neo4j.bolt.v1.runtime.spi.ImmutableRecord;
Expand All @@ -40,7 +38,7 @@ class ResultHandlerTest
@Test
void shouldPullTheResult() throws Exception
{
BoltResponseMessageHandler<IOException> responseMessageHandler = mock( BoltResponseMessageHandler.class );
BoltResponseMessageHandler responseMessageHandler = mock( BoltResponseMessageHandler.class );
ResultHandler handler = new ResultHandler( responseMessageHandler, mock( BoltConnection.class ), NullLog.getInstance() );

ImmutableRecord record1 = new ImmutableRecord( values( "a", "b", "c" ) );
Expand All @@ -58,7 +56,7 @@ void shouldPullTheResult() throws Exception
@Test
void shouldDiscardTheResult() throws Exception
{
BoltResponseMessageHandler<IOException> responseMessageHandler = mock( BoltResponseMessageHandler.class );
BoltResponseMessageHandler responseMessageHandler = mock( BoltResponseMessageHandler.class );
ResultHandler handler = new ResultHandler( responseMessageHandler, mock( BoltConnection.class ), NullLog.getInstance() );

ImmutableRecord record1 = new ImmutableRecord( values( "a", "b", "c" ) );
Expand Down
Expand Up @@ -19,6 +19,8 @@
*/
package org.neo4j.bolt.v1.messaging.message;

import java.io.IOException;

import org.neo4j.bolt.v1.messaging.BoltResponseMessageHandler;
import org.neo4j.kernel.api.exceptions.Status;

Expand All @@ -44,7 +46,7 @@ public String message()
}

@Override
public <E extends Exception> void dispatch( BoltResponseMessageHandler<E> consumer ) throws E
public void dispatch( BoltResponseMessageHandler consumer ) throws IOException
{
consumer.onFailure( status, message );
}
Expand Down
Expand Up @@ -19,12 +19,14 @@
*/
package org.neo4j.bolt.v1.messaging.message;

import java.io.IOException;

import org.neo4j.bolt.v1.messaging.BoltResponseMessageHandler;

public class IgnoredMessage implements ResponseMessage
{
@Override
public <E extends Exception> void dispatch( BoltResponseMessageHandler<E> consumer ) throws E
public void dispatch( BoltResponseMessageHandler consumer ) throws IOException
{
consumer.onIgnored();
}
Expand Down
Expand Up @@ -19,6 +19,8 @@
*/
package org.neo4j.bolt.v1.messaging.message;

import java.io.IOException;

import org.neo4j.bolt.v1.messaging.BoltResponseMessageHandler;
import org.neo4j.cypher.result.QueryResult;

Expand All @@ -32,7 +34,7 @@ public RecordMessage( QueryResult.Record record )
}

@Override
public <E extends Exception> void dispatch( BoltResponseMessageHandler<E> consumer ) throws E
public void dispatch( BoltResponseMessageHandler consumer ) throws IOException
{
consumer.onRecord( value );
}
Expand Down
Expand Up @@ -19,9 +19,11 @@
*/
package org.neo4j.bolt.v1.messaging.message;

import java.io.IOException;

import org.neo4j.bolt.v1.messaging.BoltResponseMessageHandler;

public interface ResponseMessage
{
<E extends Exception> void dispatch( BoltResponseMessageHandler<E> consumer ) throws E;
void dispatch( BoltResponseMessageHandler consumer ) throws IOException;
}
Expand Up @@ -19,6 +19,8 @@
*/
package org.neo4j.bolt.v1.messaging.message;

import java.io.IOException;

import org.neo4j.bolt.v1.messaging.BoltResponseMessageHandler;
import org.neo4j.values.virtual.MapValue;

Expand All @@ -32,7 +34,7 @@ public SuccessMessage( MapValue metadata )
}

@Override
public <E extends Exception> void dispatch( BoltResponseMessageHandler<E> consumer ) throws E
public void dispatch( BoltResponseMessageHandler consumer ) throws IOException
{
consumer.onSuccess( metadata );
}
Expand Down

0 comments on commit 8dc2152

Please sign in to comment.