Skip to content

Commit

Permalink
fixed feedback - errormessages should show only detail.
Browse files Browse the repository at this point in the history
  • Loading branch information
praveenag committed Sep 4, 2017
1 parent 376fb39 commit 48ed114
Show file tree
Hide file tree
Showing 6 changed files with 36 additions and 35 deletions.
Expand Up @@ -38,7 +38,7 @@ public interface BoltMessageLogger


void serverError( String eventName, String errorMessage ); void serverError( String eventName, String errorMessage );


void serverError( String eventName, Status status, String errorMessage ); void serverError( String eventName, Status status );


void logInit( String userAgent, Map<String,Object> authToken ); void logInit( String userAgent, Map<String,Object> authToken );


Expand All @@ -54,7 +54,7 @@ public interface BoltMessageLogger


void logSuccess( Object metadata ); void logSuccess( Object metadata );


void logFailure( Status status, String errorMessage ); void logFailure( Status status );


void logIgnored(); void logIgnored();
} }
Expand Up @@ -41,7 +41,7 @@
class BoltMessageLoggerImpl implements BoltMessageLogger class BoltMessageLoggerImpl implements BoltMessageLogger
{ {
private static final ObjectMapper jsonObjectMapper = new ObjectMapper(); private static final ObjectMapper jsonObjectMapper = new ObjectMapper();
public static final Supplier<String> PLACEHOLDER_DETAIL_SUPPLIER = () -> "-"; private static final Supplier<String> PLACEHOLDER_DETAIL_SUPPLIER = () -> "-";
private final BoltMessageLog messageLog; private final BoltMessageLog messageLog;


private final String remoteAddress; private final String remoteAddress;
Expand All @@ -67,7 +67,7 @@ public void clientEvent( String eventName )
@Override @Override
public void clientEvent( String eventName, Supplier<String> detailsSupplier ) public void clientEvent( String eventName, Supplier<String> detailsSupplier )
{ {
infoLoggerWithDetails().accept( format( "C: %s", eventName ), detailsSupplier.get() ); infoLogger().accept( format( "C: %s", eventName ), detailsSupplier.get() );
} }


@Override @Override
Expand All @@ -85,7 +85,7 @@ public void serverEvent( String eventName )
@Override @Override
public void serverEvent( String eventName, Supplier<String> detailsSupplier ) public void serverEvent( String eventName, Supplier<String> detailsSupplier )
{ {
infoLoggerWithDetails().accept( format( "S: %s", eventName ), detailsSupplier.get() ); infoLogger().accept( format( "S: %s", eventName ), detailsSupplier.get() );
} }


@Override @Override
Expand All @@ -95,9 +95,9 @@ public void serverError( String eventName, String errorMessage )
} }


@Override @Override
public void serverError( String eventName, Status status, String errorMessage ) public void serverError( String eventName, Status status )
{ {
errorLoggerWithArgs( errorMessage ).accept( format( "S: <%s>", eventName ), status.code().serialize() ); serverError( eventName, status.code().serialize() );
} }


@Override @Override
Expand Down Expand Up @@ -144,9 +144,9 @@ public void logSuccess( Object metadata )
} }


@Override @Override
public void logFailure( Status status, String errorMessage ) public void logFailure( Status status )
{ {
serverEvent( "FAILURE", () -> format( "%s %s", status.code().serialize(), errorMessage ) ); serverEvent( "FAILURE", () -> status.code().serialize() );
} }


@Override @Override
Expand All @@ -164,15 +164,15 @@ private Consumer<String> errorLogger( String errorMessage )


String boltCorrelationId = channel.attr( CORRELATION_ATTRIBUTE_KEY ).get(); String boltCorrelationId = channel.attr( CORRELATION_ATTRIBUTE_KEY ).get();
return formatMessageWithEventName -> return formatMessageWithEventName ->
messageLog.error( remoteAddress, errorMessage, formatMessageWithEventName, boltCorrelationId ); messageLog.error( remoteAddress, boltCorrelationId, formatMessageWithEventName, errorMessage );
} }


private String randomCorrelationIdGenerator() private String randomCorrelationIdGenerator()
{ {
return UUID.randomUUID().toString(); return UUID.randomUUID().toString();
} }


private BiConsumer<String, String> infoLoggerWithDetails() private BiConsumer<String, String> infoLogger()
{ {
if ( !channel.hasAttr( CORRELATION_ATTRIBUTE_KEY ) ) if ( !channel.hasAttr( CORRELATION_ATTRIBUTE_KEY ) )
{ {
Expand Down
Expand Up @@ -68,7 +68,7 @@ public void serverError( String eventName, String errorMessage )
} }


@Override @Override
public void serverError( String eventName, Status status, String errorMessage ) public void serverError( String eventName, Status status )
{ {
} }


Expand Down Expand Up @@ -108,7 +108,7 @@ public void logSuccess( Object metadata )
} }


@Override @Override
public void logFailure( Status status, String errorMessage ) public void logFailure( Status status )
{ {
} }


Expand Down
Expand Up @@ -97,7 +97,7 @@ public void onIgnored() throws IOException
@Override @Override
public void onFailure( Status status, String errorMessage ) throws IOException public void onFailure( Status status, String errorMessage ) throws IOException
{ {
messageLogger.logFailure( status, errorMessage ); messageLogger.logFailure( status );
packer.packStructHeader( 1, FAILURE.signature() ); packer.packStructHeader( 1, FAILURE.signature() );
packer.packMapHeader( 2 ); packer.packMapHeader( 2 );


Expand All @@ -113,7 +113,7 @@ public void onFailure( Status status, String errorMessage ) throws IOException
@Override @Override
public void onFatal( Status status, String errorMessage ) throws IOException public void onFatal( Status status, String errorMessage ) throws IOException
{ {
messageLogger.serverError( "FATAL", status, errorMessage ); messageLogger.serverError( "FATAL", status);
onFailure( status, errorMessage ); onFailure( status, errorMessage );
flush(); flush();
} }
Expand Down
Expand Up @@ -26,6 +26,9 @@ public class BoltMessageLoggerImplTest


private static final String REMOTE_ADDRESS = "localhost/127.0.0.1:60297"; private static final String REMOTE_ADDRESS = "localhost/127.0.0.1:60297";
private static final String CORRELATION_ID = "Bolt-X-CorrelationId-1234"; private static final String CORRELATION_ID = "Bolt-X-CorrelationId-1234";
private static String errorMessage = "Oh my woes!";
private static Neo4jError error = Neo4jError.from( new DeadlockDetectedException( errorMessage ) );

@Mock @Mock
private Channel channel; private Channel channel;
@Mock @Mock
Expand Down Expand Up @@ -149,23 +152,17 @@ public void logIgnored() throws Exception
@Test @Test
public void logFailure() throws Exception public void logFailure() throws Exception
{ {
// given
String errorMessage = "Oh my woes!";
Neo4jError error = Neo4jError.from( new DeadlockDetectedException( errorMessage ) );
// when // when
boltMessageLogger.logFailure( error.status(), errorMessage ); boltMessageLogger.logFailure( error.status() );
// then // then
verify( boltMessageLog ).info( REMOTE_ADDRESS, CORRELATION_ID, verify( boltMessageLog ).info( REMOTE_ADDRESS, CORRELATION_ID,
"S: FAILURE Neo.TransientError.Transaction.DeadlockDetected Oh my woes!" ); "S: FAILURE Neo.TransientError.Transaction.DeadlockDetected" );


} }


@Test @Test
public void logCorrelationIdClientEvent() throws Exception public void logCorrelationIdClientEvent() throws Exception
{ {
// given
when( channel.hasAttr( CORRELATION_ATTRIBUTE_KEY ) ).thenReturn( true );

// when // when
boltMessageLogger.clientEvent( "TEST" ); boltMessageLogger.clientEvent( "TEST" );


Expand All @@ -184,22 +181,28 @@ public void logCorrelationIdClientErrorWithDetails() throws Exception
boltMessageLogger.clientError( "TEST", "errorMessage", () -> "details" ); boltMessageLogger.clientError( "TEST", "errorMessage", () -> "details" );


// then // then
verify( boltMessageLog ).error( REMOTE_ADDRESS, "errorMessage", "C: <TEST> details", verify( boltMessageLog ).error( REMOTE_ADDRESS, CORRELATION_ID, "C: <TEST> details", "errorMessage" );
CORRELATION_ID );
} }


@Test @Test
public void logCorrelationIdServerError() throws Exception public void logCorrelationIdServerError() throws Exception
{ {
// given
when( channel.hasAttr( CORRELATION_ATTRIBUTE_KEY ) ).thenReturn( true );

// when // when
boltMessageLogger.serverError( "TEST", "errorMessage" ); boltMessageLogger.serverError( "TEST", "errorMessage" );


// then // then
verify( boltMessageLog ).error( REMOTE_ADDRESS, "errorMessage", "S: <TEST>", verify( boltMessageLog ).error( REMOTE_ADDRESS, CORRELATION_ID, "S: <TEST>", "errorMessage" );
CORRELATION_ID ); }

@Test
public void logServerErrorWithStatus() throws Exception
{
// when
boltMessageLogger.serverError( "TEST", error.status() );

// then
verify( boltMessageLog ).error( REMOTE_ADDRESS, CORRELATION_ID, "S: <TEST>",
"Neo.TransientError.Transaction.DeadlockDetected" );
} }


@Test @Test
Expand Down Expand Up @@ -244,7 +247,6 @@ public void createCorrelationIdIfNotAvailableInErrorLogger() throws Exception


// then // then
verify( correlationIdAttribute ).set( anyString() ); verify( correlationIdAttribute ).set( anyString() );
verify( boltMessageLog ).error( REMOTE_ADDRESS, "errorMessage", "S: <TEST>", verify( boltMessageLog ).error( REMOTE_ADDRESS, CORRELATION_ID, "S: <TEST>", "errorMessage" );
CORRELATION_ID );
} }
} }
Expand Up @@ -193,9 +193,8 @@ private Config config()


private Driver newDriver() private Driver newDriver()
{ {
org.neo4j.driver.v1.Config driverConfig = org.neo4j.driver.v1.Config.build(). org.neo4j.driver.v1.Config driverConfig = org.neo4j.driver.v1.Config.build()
withEncryptionLevel( org.neo4j.driver.v1.Config.EncryptionLevel.NONE ) .withoutEncryption().toConfig();
.toConfig();


return GraphDatabase.driver( boltUri(), driverConfig ); return GraphDatabase.driver( boltUri(), driverConfig );
} }
Expand Down

0 comments on commit 48ed114

Please sign in to comment.