Update forbiddenapis to 2.2 and fix painless tests

This commit is contained in:
Uwe Schindler 2016-06-19 20:16:53 +02:00
parent 8f96dd53aa
commit 5475e18ad0
4 changed files with 11 additions and 5 deletions

View File

@ -84,7 +84,7 @@ dependencies {
compile 'com.netflix.nebula:gradle-info-plugin:3.0.3'
compile 'org.eclipse.jgit:org.eclipse.jgit:3.2.0.201312181205-r'
compile 'com.perforce:p4java:2012.3.551082' // THIS IS SUPPOSED TO BE OPTIONAL IN THE FUTURE....
compile 'de.thetaphi:forbiddenapis:2.1'
compile 'de.thetaphi:forbiddenapis:2.2'
compile 'com.bmuschko:gradle-nexus-plugin:2.3.1'
compile 'org.apache.rat:apache-rat:0.11'
}

View File

@ -32,7 +32,7 @@ org.apache.lucene.index.IndexReader#getCombinedCoreAndDeletesKey()
@defaultMessage Soon to be removed
org.apache.lucene.document.FieldType#numericType()
@defaultMessage Don't use MethodHandles in slow ways, dont be lenient in tests.
# unfortunately, invoke() cannot be banned, because forbidden apis does not support signature polymorphic methods
@defaultMessage Don't use MethodHandles in slow ways, don't be lenient in tests.
java.lang.invoke.MethodHandle#invoke(java.lang.Object[])
java.lang.invoke.MethodHandle#invokeWithArguments(java.lang.Object[])
java.lang.invoke.MethodHandle#invokeWithArguments(java.util.List)

View File

@ -19,6 +19,9 @@
package org.elasticsearch.painless;
import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodType;
/** Tests for or operator across all types */
public class ArrayTests extends ScriptTestCase {
@ -36,7 +39,10 @@ public class ArrayTests extends ScriptTestCase {
}
private void assertArrayLength(int length, Object array) throws Throwable {
assertEquals(length, (int) Def.arrayLengthGetter(array.getClass()).invoke(array));
final MethodHandle mh = Def.arrayLengthGetter(array.getClass());
assertSame(array.getClass(), mh.type().parameterType(0));
assertEquals(length, (int) mh.asType(MethodType.methodType(int.class, Object.class))
.invokeExact(array));
}
public void testArrayLoadStoreInt() {

View File

@ -139,7 +139,7 @@ public class DefBootstrapTests extends ESTestCase {
DefBootstrap.BINARY_OPERATOR, DefBootstrap.OPERATOR_ALLOWS_NULL);
MethodHandle handle = site.dynamicInvoker();
assertEquals(2, (Object)handle.invokeExact((Object)1, (Object)1));
assertEquals("nulltest", (Object)handle.invoke((Object)null, (Object)"test"));
assertEquals("nulltest", (Object)handle.invokeExact((Object)null, (Object)"test"));
}
public void testNullGuardEq() throws Throwable {