Skip to content

Commit

Permalink
Merge pull request #86 from centic9/add_bundle_reflection
Browse files Browse the repository at this point in the history
Add a bundle 'jdk-reflection'
  • Loading branch information
uschindler committed Nov 14, 2015
2 parents c3a412d + 5eecb18 commit b9ea33e
Show file tree
Hide file tree
Showing 5 changed files with 92 additions and 1 deletion.
3 changes: 2 additions & 1 deletion build.xml
Original file line number Diff line number Diff line change
Expand Up @@ -477,6 +477,7 @@
<bundledsignatures name="jdk-unsafe-${build.java.runtime}"/>
<bundledsignatures name="jdk-deprecated-${build.java.runtime}"/>
<bundledsignatures name="jdk-system-out"/>
<bundledsignatures name="jdk-reflection"/>
</forbiddenapis>
</target>

Expand Down Expand Up @@ -649,4 +650,4 @@
</target>

<target name="jenkins" depends="clean,dist,test,documentation,-stage.snapshots" description="Runs Jenkins Nightly"/>
</project>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# (C) Copyright Uwe Schindler (Generics Policeman) and others.
# Parts of this work are licensed to the Apache Software Foundation (ASF)
# under one or more contributor license agreements.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

java.lang.reflect.AccessibleObject#setAccessible(java.lang.reflect.AccessibleObject[], boolean) @ Reflection usage fails with SecurityManagers and likely will not work any more in Java 9
java.lang.reflect.AccessibleObject#setAccessible(boolean) @ Reflection usage fails with SecurityManagers and likely will not work any more in Java 9
Binary file added src/test/antunit/Java6Reflection.class
Binary file not shown.
42 changes: 42 additions & 0 deletions src/test/antunit/Java6Reflection.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
/*
* (C) Copyright Uwe Schindler (Generics Policeman) and others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

/* The binary class file is packaged together with the source distribution.
*/

import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.*;

class Java6Reflection {
static Field test() throws Exception {
Class c = Java6Reflection.class;
Field f = c.getDeclaredField("field1");
f.setAccessible(true);

Method m = c.getDeclaredMethod("testMethod");
m.setAccessible(true);
m.invoke(new Java6Reflection());

return f;
}

private Integer field1;

private void testMethod() {
// nothing to do here
}
}
30 changes: 30 additions & 0 deletions src/test/antunit/TestJava6Reflection.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
* (C) Copyright Uwe Schindler (Generics Policeman) and others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
-->
<project xmlns:au="antlib:org.apache.ant.antunit">

<target name="testReflection">
<au:expectfailure expectedMessage="Check for forbidden API calls failed, see log">
<forbiddenapis>
<bundledsignatures name="jdk-reflection"/>
<file file="OracleReflection.class"/>
</forbiddenapis>
</au:expectfailure>
<au:assertLogContains level="error" text="java.lang.reflect.AccessibleObject#setAccessible(boolean) [Reflection usage fails with SecurityManagers"/>
<au:assertLogContains level="error" text=" 2 error(s)"/>
</target>

</project>

0 comments on commit b9ea33e

Please sign in to comment.