[ https://issues.apache.org/jira/browse/LUCENE-6964?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Uwe Schindler resolved LUCENE-6964. ----------------------------------- Resolution: Fixed > Small changes in expressions module > ----------------------------------- > > Key: LUCENE-6964 > URL: https://issues.apache.org/jira/browse/LUCENE-6964 > Project: Lucene - Core > Issue Type: Improvement > Components: modules/expressions > Affects Versions: 5.4 > Reporter: Uwe Schindler > Assignee: Uwe Schindler > Fix For: 5.5, Trunk > > Attachments: LUCENE-6964.patch > > > This patch is not really worth an issue, but it has 2 small changes in > expression's JavaScriptCompiler: > - On the OpenJDK mailinglists from time to time people want to have "nice > stack traces" (this got worse with Lambda expressions). Since Java 8u60 they > now hide some stack frames automatically. Under discussion was to use the > "synthetic" bytecode attribute for that. They did not do that; instead they > have a new annotation ({{@LambdaForm.Hidden}}). In any case, I will remove > the synthetic annotation from the generated class file, because it is not > really applicable (and also brings nothing): "A class member that does not > appear in the source code must be marked using a Synthetic attribute, or else > it must have its ACC_SYNTHETIC flag set. The only exceptions to this > requirement are compiler-generated methods which are not considered > implementation artifacts, namely the instance initialization method > representing a default constructor of the Java programming language (§2.9), > the class initialization method (§2.9), and the Enum.values() and > Enum.valueOf() methods.". In our case the expressions class has source code > (just not Java), so we should not make it synthetic. So there is also no risk > that the stack frames get hidden in future (if OpenJDK thinks different). > - The code has currently some string-based method signatures. They tend to > get broken because we have no compile-time checks. I replaced those with > compile-time class constants using Java 7's MethodType to create the > descriptor. For me the code is more readable. The change is a no-op as its > constants only. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org