|
|
|
My ProcessingItem.getFile() returns a VirtualFile that points to the Java source file that produces the class files to be instrumented. This is the same the NotNullVerifyingCompiler does, and which also seems to still suffer from this problem in #6043.
Yes, this is what I noticed as well and which resulted in duplicate instrumentation which was even worse BTW: You can find the complete code in the IntelliLang plugin Sascha ProcessingItem.getFile() should return class file (the file that will be instrumented). I've updated the NotNullVerifier accordingly.
In this case IDEA's make will check timestamp of the class file (which changes) and not of the source file (which remans unchenged in this scenario). However, if the file is instrumented by several instrumenters, each of them will change the file timestamp and make will record a different timestamp for every instrumenter. This will lead to another problem: the file will be re-instrimented on every invocation of make. So another fix that has been implemented is to keep the timestamp of the class file the same as it was when the file was generated by javac, no matter how many instrumenters are applied to it. Ah, that's what I already suspected. Thanks for the details!
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
Concerning ValidityState that always is not equalsTo() : that way your files will be be compiled always, no matter were there changes or not, so this is not a solution