wurstscript / WurstScript

Programming language and toolkit to create Warcraft III Maps
https://wurstlang.org
Apache License 2.0
226 stars 28 forks source link

VersionExtractionException: Failed to extract executable version data #1077

Closed dani906 closed 8 months ago

dani906 commented 1 year ago

Describe the bug

System

Any clues?

wurstLanguageServer VSCode output

net.moonlightflower.wc3libs.misc.exeversion.VersionExtractionException: Failed to extract executable version data via 'PEHEADER' for file: F:\Sektor7\Warcraft III\_retail_\x86_64\Warcraft III.exe
    at net.moonlightflower.wc3libs.misc.exeversion.ExeVersionPe.getVersion(ExeVersionPe.java:31)
    at net.moonlightflower.wc3libs.bin.GameExe.getVersionString(GameExe.java:22)
    at net.moonlightflower.wc3libs.bin.GameExe.getVersion(GameExe.java:52)
    at de.peeeq.wurstio.utils.W3InstallationData.lambda$new$0(W3InstallationData.java:54)
    at java.util.Optional.flatMap(Unknown Source)
    at de.peeeq.wurstio.utils.W3InstallationData.<init>(W3InstallationData.java:52)
    at de.peeeq.wurstio.languageserver.requests.MapRequest.getBestW3InstallationData(MapRequest.java:396)
    at de.peeeq.wurstio.languageserver.requests.MapRequest.<init>(MapRequest.java:80)
    at de.peeeq.wurstio.languageserver.requests.BuildMap.<init>(BuildMap.java:31)
    at de.peeeq.wurstio.languageserver.WurstCommands.buildmap(WurstCommands.java:93)
    at de.peeeq.wurstio.languageserver.WurstCommands.execute(WurstCommands.java:61)
    at de.peeeq.wurstio.languageserver.WurstWorkspaceService.executeCommand(WurstWorkspaceService.java:42)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.lsp4j.jsonrpc.services.GenericEndpoint.lambda$null$0(GenericEndpoint.java:65)
    at org.eclipse.lsp4j.jsonrpc.services.GenericEndpoint.request(GenericEndpoint.java:120)
    at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.handleRequest(RemoteEndpoint.java:261)
    at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.consume(RemoteEndpoint.java:190)
    at org.eclipse.lsp4j.jsonrpc.json.StreamMessageProducer.handleMessage(StreamMessageProducer.java:194)
    at org.eclipse.lsp4j.jsonrpc.json.StreamMessageProducer.listen(StreamMessageProducer.java:94)
    at org.eclipse.lsp4j.jsonrpc.json.ConcurrentMessageProcessor.run(ConcurrentMessageProcessor.java:113)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
    at dorkbox.peParser.types.ResourceDirName.<init>(ResourceDirName.java:89)
    at dorkbox.peParser.headers.resources.ResourceDirectoryEntry.<init>(ResourceDirectoryEntry.java:71)
    at dorkbox.peParser.headers.resources.ResourceDirectoryHeader.<init>(ResourceDirectoryHeader.java:62)
    at dorkbox.peParser.PE.fromInputStream(PE.java:156)
    at dorkbox.peParser.PE.<init>(PE.java:76)
    at dorkbox.peParser.PE.getVersion(PE.java:284)
    at net.moonlightflower.wc3libs.misc.exeversion.ExeVersionPe.getVersion(ExeVersionPe.java:24)
    ... 27 more
Error in File MyMapFile.w3x] line 1:
 No war3map.j found in map file.
    at de.peeeq.wurstio.languageserver.requests.MapRequest.processMapScript(MapRequest.java:125)
    at de.peeeq.wurstio.languageserver.requests.MapRequest.compileScript(MapRequest.java:336)
    at de.peeeq.wurstio.languageserver.requests.MapRequest.compileScript(MapRequest.java:375)
    at de.peeeq.wurstio.languageserver.requests.BuildMap.execute(BuildMap.java:63)
    at de.peeeq.wurstio.languageserver.requests.UserRequest.run(UserRequest.java:31)
    at de.peeeq.wurstio.languageserver.LanguageWorker.lambda$getNextWorkItem$2(LanguageWorker.java:187)
    at de.peeeq.wurstio.languageserver.LanguageWorker$Workitem.run(LanguageWorker.java:30)
    at de.peeeq.wurstio.languageserver.LanguageWorker.run(LanguageWorker.java:162)
    at java.lang.Thread.run(Unknown Source)
Jun 08, 2023 12:15:46 PM org.eclipse.lsp4j.jsonrpc.services.GenericEndpoint notify
INFORMATION: Unsupported notification method: $/setTraceNotification
Jun 08, 2023 12:16:12 PM org.eclipse.lsp4j.jsonrpc.services.GenericEndpoint notify
INFORMATION: Unsupported notification method: $/setTraceNotification
Frotty commented 8 months ago

Hi, sorry I missed this. How did you configure your wc3 dir? The error is thrown even with correct dir, due to a bug in the parser lib. However the lib has been updated and it should be fixed via #1080 soon.

Frotty commented 8 months ago

This has been fixed in wc3libs.