From 7505f07f2fb7f9972e31f445fcd078590f1f0481 Mon Sep 17 00:00:00 2001 From: Joachim Van Herwegen Date: Tue, 25 Jul 2023 14:24:45 +0200 Subject: [PATCH] fix: Add missing error causes --- src/http/input/body/N3PatchBodyParser.ts | 2 +- src/server/notifications/NotificationSubscriber.ts | 3 ++- src/util/FetchUtil.ts | 3 ++- src/util/locking/FileSystemResourceLocker.ts | 6 ++++-- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/http/input/body/N3PatchBodyParser.ts b/src/http/input/body/N3PatchBodyParser.ts index d6a1ccfd0..51d74f81b 100644 --- a/src/http/input/body/N3PatchBodyParser.ts +++ b/src/http/input/body/N3PatchBodyParser.ts @@ -32,7 +32,7 @@ export class N3PatchBodyParser extends BodyParser { try { store = new Store(parser.parse(n3)); } catch (error: unknown) { - throw new BadRequestHttpError(`Invalid N3: ${createErrorMessage(error)}`); + throw new BadRequestHttpError(`Invalid N3: ${createErrorMessage(error)}`, { cause: error }); } // Solid, ยง5.3.1: "A patch resource MUST contain a triple ?patch rdf:type solid:InsertDeletePatch." diff --git a/src/server/notifications/NotificationSubscriber.ts b/src/server/notifications/NotificationSubscriber.ts index d5720f06b..4cbcbfb5b 100644 --- a/src/server/notifications/NotificationSubscriber.ts +++ b/src/server/notifications/NotificationSubscriber.ts @@ -100,7 +100,8 @@ export class NotificationSubscriber extends OperationHttpHandler { }); channel = await this.channelType.initChannel(await readableToQuads(quadStream.data), credentials); } catch (error: unknown) { - throw new UnprocessableEntityHttpError(`Unable to process notification channel: ${createErrorMessage(error)}`); + throw new UnprocessableEntityHttpError(`Unable to process notification channel: ${createErrorMessage(error)}`, + { cause: error }); } if (this.maxDuration) { diff --git a/src/util/FetchUtil.ts b/src/util/FetchUtil.ts index 028f77602..033d18574 100644 --- a/src/util/FetchUtil.ts +++ b/src/util/FetchUtil.ts @@ -25,7 +25,8 @@ export async function fetchDataset(url: string): Promise { const quadArray = await arrayifyStream(quadStream); return new BasicRepresentation(quadArray, { path: url }, INTERNAL_QUADS, false); } catch (error: unknown) { - throw new BadRequestHttpError(`Could not parse resource at URL (${url})! ${createErrorMessage(error)}`); + throw new BadRequestHttpError(`Could not parse resource at URL (${url})! ${createErrorMessage(error)}`, + { cause: error }); } })(); } diff --git a/src/util/locking/FileSystemResourceLocker.ts b/src/util/locking/FileSystemResourceLocker.ts index 6ad8018cd..30c475b51 100644 --- a/src/util/locking/FileSystemResourceLocker.ts +++ b/src/util/locking/FileSystemResourceLocker.ts @@ -112,7 +112,8 @@ export class FileSystemResourceLocker implements ResourceLocker, Initializable, this.attemptSettings, ); } catch (err: unknown) { - throw new InternalServerError(`Error trying to acquire lock for ${path}. ${createErrorMessage(err)}`); + throw new InternalServerError(`Error trying to acquire lock for ${path}. ${createErrorMessage(err)}`, + { cause: err }); } } @@ -126,7 +127,8 @@ export class FileSystemResourceLocker implements ResourceLocker, Initializable, this.attemptSettings, ); } catch (err: unknown) { - throw new InternalServerError(`Error trying to release lock for ${path}. ${createErrorMessage(err)}`); + throw new InternalServerError(`Error trying to release lock for ${path}. ${createErrorMessage(err)}`, + { cause: err }); } }