-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Description
Bug report
Reproduction of the problem
Dojo:
https://dojo.telerik.com/amSOzNjP
Click the load file button. The standard error message is displayed. Close the info box.
Click the load file button again. An error is thrown in the console and nothing happens. You can't even open a file using the standard open file command.
Using an MVC/Core project:
- Initialize a PDFViewer and add a button that calls a controller action on click.
<div id="pdfViewer">
</div>
<script type="text/javascript">
$("#pdfViewer").kendoPDFViewer({
pdfjsProcessing: {
file: ""
}
});
function loadFile() {
$("#pdfViewer").data("kendoPDFViewer").fromFile("@Url.Action("GetPDF", "Home")");
}
</script>
- Implement an action that returns a .pdf file or occasionally returns HttpNotFoundResult:
public ActionResult GetPDF()
{
var name = "sample.pdf";
string path = Server.MapPath("/Content/pdf/sample.pdf");
//generate a random boolean:
Random rng = new Random();
bool randomBool = rng.Next(0, 2) > 0;
if (randomBool)
{
byte[] fileBytes = System.IO.File.ReadAllBytes(path);
return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, name);
}
else
{
return new HttpNotFoundResult("File not found.");
}
}
Current behavior
In the case where the request returns HttpNotFoundResult, a number of js errors are thrown:
util.js:417 Uncaught (in promise)
The user loses the ability to load a file, because subsequent attempts to load a file by clicking the button result in another js exception:
api.js:1114 Uncaught TypeError: Cannot read properties of null (reading 'sendWithStream')
Expected/desired behavior
The component should show a message that a file is not found, without throwing js exceptions and should not become unusable after a failed attempt to load a file.
Environment
- Kendo UI version: 2024.1.319
- jQuery version: x.y
- Browser: [all]