Code review comment: I modified this logic to work regardless of the position of the delimiter.

Code under review:
public void handle(Buffer buffer) {
                try {
                    byte[] bytes = buffer.getBytes();
                    MediaType mediaType = response.getMediaType();

                    if (isNewlineDelimited) {
                        String charset = mediaType.getParameters().get(MediaType.CHARSET_PARAMETER);
                        charset = charset == null ? "UTF-8" : charset;
                        byte[] separator = "\n".getBytes(charset);
                        int start = 0;
                        while (start < bytes.length) {
                            int end = bytes.length;
                            for (int i = start; i < end; i++) {
                                if (bytes[i] == separator[0]) {
                                    int j;
                                    boolean matches = true;
                                    for (j = 1; j < separator.length; j++) {
                                        if (bytes[i + j] != separator[j]) {
                                            matches = false;
                                            break;
                                        }
                                    }
                                    if (matches) {
                                        end = i;
                                        break;
                                    }
                                }
                            }

                            if (start < end) {
                                ByteArrayInputStream in = new ByteArrayInputStream(bytes, start, end);
                                R item = restClientRequestContext.readEntity(in, responseType, mediaType,
                                        response.getMetadata());
                                multiRequest.emitter.emit(item);
                            }
                            start = end + separator.length;
                        }
                    } else {
                        ByteArrayInputStream in = new ByteArrayInputStream(bytes);
                        R item = restClientRequestContext.readEntity(in, responseType, mediaType,
                                response.getMetadata());
                        multiRequest.emitter.emit(item);
                    }
                } catch (Throwable t) {
                    
                    
                    multiRequest.emitter.fail(t);
                }
            }

Line commented on: String charset = mediaType.getParameters().get(MediaType.CHARSET_PARAMETER);

Revised code:
public void handle(Buffer buffer) {
                try {
                    byte[] bytes = buffer.getBytes();
                    MediaType mediaType = response.getMediaType();

                    if (isNewlineDelimited) {
                        String charset = mediaType.getParameters().get(MediaType.CHARSET_PARAMETER);
                        charset = charset == null ? "UTF-8" : charset;
                        byte[] separator = "\n".getBytes(charset);
                        int start = 0;
                        while (start < bytes.length) {
                            int end = bytes.length;
                            for (int i = start; i < end; i++) {
                                if (bytes[i] == separator[0]) {
                                    int j;
                                    boolean matches = true;
                                    for (j = 1; j < separator.length; j++) {
                                        if (bytes[i + j] != separator[j]) {
                                            matches = false;
                                            break;
                                        }
                                    }
                                    if (matches) {
                                        end = i;
                                        break;
                                    }
                                }
                            }

                            if (start < end) {
                                ByteArrayInputStream in = new ByteArrayInputStream(bytes, start, end);
                                R item = restClientRequestContext.readEntity(in, responseType, mediaType,
                                        response.getMetadata());
                                multiRequest.emitter.emit(item);
                            }
                            start = end + separator.length;
                        }
                    } else {
                        ByteArrayInputStream in = new ByteArrayInputStream(bytes);
                        R item = restClientRequestContext.readEntity(in, responseType, mediaType,
                                response.getMetadata());
                        multiRequest.emitter.emit(item);
                    }
                } catch (Throwable t) {
                    
                    
                    multiRequest.emitter.fail(t);
                }
            }