-
Notifications
You must be signed in to change notification settings - Fork 17
Cant figure out the proper configuration #58
Comments
@GeremyHamlett |
@GeremyHamlett thank you for posting that error. I think this issue may be related to #38 and is currently under investigation. May i ask you if you are using any additional parameters or classpath-configurations? |
@steelbrain Thanks for the info. My atom is up to date. I will try to see if I can shorten the paths. Maybe a quick test on a small project at the root of the FS would be good. @florianb I would probably be using some but at this point I'm just trying to get it to recognize Javac. I looked at issue 38 and thought the same thing but the error looked different enough where I thought I would go ahead and ask. Thanks for the input guys. I'll keep digging and add any info I find. |
@GeremyHamlett It would be very helpful if you would tell us the executablePath by adding a |
@steelbrain
Just to complicate things, when I test against a single java file at a very short system path (c:\temp) i get a completely different error
|
@GeremyHamlett From your debug output, I see |
Same results. No changes in the errors at all. Either from the shorter path or longer. |
This bug is considered as being untestable. I'd like to try to create a quick-patch for the next milestone but it will be resolved at least with the next upcoming major-release #76 - thank you all for your patience. |
@GeremyHamlett currently we have here several issues. ENAMETOOLONG
I tell you how this may happen, so you can probably find a way fixing this for your own. Currently the linter call is built by concatenating the Javac-executable-path (defaults to simply The option are headed by Then there come the source-files. And that's what is troubling the most at the moment - i guess. With #32 there was a mechanism introduced sending all java-file-paths from the repository your current file resides to the compiler. This was done to allow the linter checking cross-dependencies between java-files. Since every file gets appended with its full path, the current limit of the windows-command line of 8.191 characters may get easily exceeded if you have ~140 java-files in your repository. Not to speak about the case if you use deep directories to bunker your java-files. ENOTDIRIt seems that we're treating a fs-node as directory although it isn't. It may be that the entire directory is missing or the temp-dirctory is a symlink. To quickly solve that, ensure there's no symbolic folder in the path. I think......both issues are caused by a suboptimal implementation. I am thankful we're now aware of them so we will put efforts into avoiding them in the upcoming major-release #76. Thank you so far! 🍬 For now, i will try to find a quick patch (probably just limiting the source-collector). If you want to help, you are very welcome to proove my thesis and verify both error-appearances. |
I added a quick and 💩 fix which ensures, that the assembled lint-command does not exceed the assumed limit of your current platform. Which is in that implementation 7.900 characters for If the limiter takes action it leaves an information in the console on how many sourcefiles aren't recognized by that run. As a result, some references may not be resolved - ending up in showing an error for these names. We could consider disabling reference-errors in that case. That would be at least less annoying. I am closing this for now - feel free to leave any notes. |
quick fix AtomLinter#58 by cutting off source files
@florianb The quick and easy fix does not work for me. With a big .classspath, the linter doesn't work and errors with ENAMETOOLONG in the console. |
Pinging @Arcanemagus as the most recent contributor. |
I don't personally use this linter, and don't have a good enough understanding of Java to suggest a fix. From the look of the rest of the discussion here it seems like this is a result of yet another terrible decision by the Java language designers. If you can come up with a solution and send in a PR (hopefully with tests!) I would be happy to merge it so everyone can benefit. |
I now get
|
This is just a normal sized classpath. |
This is the only java linter for atom, and I can't use it because of this. |
Note that I'm on Windows 10. |
If you want help - open a new issue and ask for help. Use the verbose logging setting and attach the log. I am going to lock this conversation. |
No matter what I try I receive this error. I have tried moving my JDK to a path thats shorter assuming it was the path length. Any one have a clue what might be the issue here?
This is the error thrown everytime I save a java file. Below is the lines of the coffee script. I'm fairly certine it has something to do with my javac path but nothing I try seems to work.
init.coffee : lines 67-71
# Execute javac
helpers.exec(@javaExecutablePath, args, {stream: 'stderr', cwd: wd})
.then (val) =>
@parse(val, textEditor)
The text was updated successfully, but these errors were encountered: