[2024-11-12T12:41:11,871] [ERROR] [PROJECT] Error during post-compile phase
java.util.concurrent.CompletionException: java.lang.NullPointerException: Cannot invoke "java.util.List.stream()" because "this.annotations" is null
at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture.uniApplyNow(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture.uniApplyStage(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture.thenApply(Unknown Source)
at eu.rssw.openedge.ls.builder.v.run(SourceFile:161)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException: Cannot invoke "java.util.List.stream()" because "this.annotations" is null
at org.prorefactor.core.nodetypes.StatementNode.getAnnotations(StatementNode.java:105)
at eu.rssw.openedge.ls.builder.d.a(SourceFile:114)
at eu.rssw.openedge.ls.builder.d.apply(SourceFile:2056)
... 7 common frames omitted
[2024-11-12T12:41:11,871] [INFO] [PROJECT] Compilation successful: PATH\TO\CLASS\IReportingService.cls
The interface is below (some paths changed).
/*------------------------------------------------------------------------
File : IReportingService
Purpose : Interface for the document reporting service
Syntax :
Description :
Author(s) : pjudge
Created : 2024-11-01
Notes :
----------------------------------------------------------------------*/
block-level on error undo, throw.
using Ccs.Common.*.
using Consultingwerk.*.
using Consultingwerk.SmartFramework.*.
interface Path.To.Class.IReportingService
inherits IService:
/**
* Purpose: The folder into which reports are written.
* Notes:
*/
define public property OutputFolder as character no-undo
get.
/**
* Purpose: The name of a generic 'whoops' error file
* Notes:
*/
define public property GeneralErrorFilename as character no-undo
get.
/**
* Purpose: Prints / creates a PDF of an error message
* Notes:
* @param pcErrorId A unique ID for the error message
* @param poMessage The error messages
* @param pdtErrorTimestamp The timestamp when the error occurred
* @param poErrorContext Any context for the error
* @return The filename containing the error message
*/
method public character ErrorPrint (pcErrorId as character,
poMessage as IMessage,
pdtErrorTimestamp as datetime,
poErrorContext as IJsonSerializable).
/**
* Purpose: Prints / creates a PDF of an error message
* Notes:
* @param pcErrorId A unique ID for the error message
* @param poMessage The error messages
* @param pdtErrorTimestamp The timestamp when the error occurred
* @param poErrorContext Any context for the error
* @param pcOutputFolder An optional folder for the error report
* @return The filename containing the error message
*/
method public character ErrorPrint (pcErrorId as character,
poMessage as IMessage,
pdtErrorTimestamp as datetime,
poErrorContext as IJsonSerializable,
pcOutputFolder as character).
/*------------------------------------------------------------------------------
Purpose: InvoicePrint
Notes:
@param: pcInvoiceNum The Invoice No
------------------------------------------------------------------------------*/
method public void InvoicePrint (pcInvoiceNum as character).
/*------------------------------------------------------------------------------
Purpose: ReceiptPrint
Notes:
@param: poPaymentReceiptParameter PaymentReceiptParameter
------------------------------------------------------------------------------*/
method public void ReceiptPrint (poPaymentReceiptParameter as PaymentReceiptParameter).
/**
* Purpose: Returns the filename for an receipt
* Notes:
* @param pcReceiptId The receipt id
* @return The filename containing the receipt. May be ?
*/
method public character GetReceiptFilename (pcReceiptId as character).
/**
* Purpose: Returns the filename for an invoice
* Notes:
* @param pcRefNum The invoice ID
* @return The filename containing the invoice. May be ?
*/
method public character GetInvoiceFilename (pcRefNum as character).
/**
* Purpose: Returns the filename for an error
* Notes:
* @param pcErrorId The ID for the error
* @return The filename containing the error report. May be ?
*/
method public character GetErrorReportFilename (pcErrorId as character).
end interface.
When compiling an interface, I see the error below. The interface has no ABL annotations in it.
[2024-11-12T12:42:25,886] [INFO] LanguageServerInfo: 1.17.0-535415d -- ClientInfo: Visual Studio Code 1.95.1 -- JVM: Eclipse Adoptium 17.0.13+11
The interface is below (some paths changed).