return Status.LegacyIndex.valueOf( error ); case "General": return Status.General.valueOf( error ); case "Statement": return Status.Statement.valueOf( error );
String code = failureMetadata.containsKey( "code" ) ? ((StringValue) failureMetadata.get( "code" )).stringValue() : Status.General.UnknownError.name(); String msg = failureMetadata.containsKey( "message" ) ? ((StringValue) failureMetadata.get( "message" )).stringValue() :
return Status.LegacyIndex.valueOf( error ); case "General": return Status.General.valueOf( error ); case "Statement": return Status.Statement.valueOf( error );
public static Status codeFromString( String codeStr ) { String[] parts = codeStr.split( "\\." ); if ( parts.length != 4 ) { return Status.General.UnknownFailure; } String category = parts[2]; String error = parts[3]; // Note: the input string may contain arbitrary input data, using reflection would open network attack vector switch ( category ) { case "Schema": return Status.Schema.valueOf( error ); case "LegacyIndex": return Status.LegacyIndex.valueOf( error ); case "General": return Status.General.valueOf( error ); case "Statement": return Status.Statement.valueOf( error ); case "Transaction": return Status.Transaction.valueOf( error ); case "Request": return Status.Request.valueOf( error ); case "Network": return Status.Network.valueOf( error ); default: return Status.General.UnknownFailure; } }
return Status.LegacyIndex.valueOf( error ); case "General": return Status.General.valueOf( error ); case "Statement": return Status.Statement.valueOf( error );
private <E extends Exception> void unpackFailureMessage( MessageHandler<E> output ) throws E, IOException { Map<String,Object> map = unpackRawMap(); String codeStr = map.containsKey( "code" ) ? (String) map.get( "code" ) : Status.General.UnknownFailure.name(); String msg = map.containsKey( "message" ) ? (String) map.get( "message" ) : "<No message supplied>"; output.handleFailureMessage( new Neo4jError( codeFromString( codeStr ), msg ) ); }