Exibir imagem p: fileupload na visualização p: graphicImage sem salvá-la

Estou usando o PrimeFaces 5.3<p:fileUpload> para enviar uma imagem PNG e eu gostaria de mostrar uma prévia dela em<p:graphicImage> antes de salvar no banco de dados.

Aqui está um MCVE:

<h:form enctype="multipart/form-data">
    <p:fileUpload value="#{bean.uploadedFile}" mode="simple" />
    <p:graphicImage value="#{bean.image}" />
    <p:commandButton action="#{bean.preview}" ajax="false" value="Preview" />
</h:form>

private UploadedFile uploadedFile;

public UploadedFile getUploadedFile() {
    return uploadedFile;
}

public void setUploadedFile(UploadedFile uploadedFile) {
    this.uploadedFile = uploadedFile;
}

public void preview() {
    // NOOP for now.
}

public StreamedContent getImage() {
    if (uploadedFile == null) {
        return new DefaultStreamedContent(); 
    } else {
        return new DefaultStreamedContent(new ByteArrayInputStream(uploadedFile.getContents()), "image/png"); 
    }
}

Não ocorreu nenhum erro no bean de backup e a imagem não será carregada e exibida no front-end. O cliente menciona que a imagem retornou um erro 404 não encontrado.

questionAnswers(1)

yourAnswerToTheQuestion