wurstscript / WurstScript

Programming language and toolkit to create Warcraft III Maps

Home Page:https://wurstlang.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

VersionExtractionException: Failed to extract executable version data

dani906 opened this issue · comments

Describe the bug

  • I created a new wurst-project via the Wurst-Setup
  • I configured my Wc3-executable
  • when I now run wurst: build then the attached Exception is thrown in the languageserver
  • the project does compile however and the map is built into _build as expected

System

  • Wurst is on the latest build (version 1344 by now)
  • my Wc3 is on latest patch 1.36

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

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.

This has been fixed in wc3libs.