You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@flink.apache.org by Zahid Rahman <za...@gmail.com> on 2020/04/20 22:27:34 UTC
Suppressing illegal Access Warnings
Hi,
*I was getting these warnings, I think these are due to certain version of
Maven libraries which is impacting Java frameworks every where.*
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by
org.jboss.netty.util.internal.ByteBufferUtil
(file:/home/kub19/.m2/repository/io/netty/netty/3.10.6.Final/netty-3.10.6.Final.jar)
to method java.nio.DirectByteBuffer.cleaner()
WARNING: Please consider reporting this to the maintainers of
org.jboss.netty.util.internal.ByteBufferUtil
WARNING: Use --illegal-access=warn to enable warnings of further illegal
reflective access operations
WARNING: All illegal access operations will be denied in a future release
*I used the following code , Can you see any conflict or unwanted impact
with any Flink functionality ?*
* new DisableAccessWarning().disableAccessWarnings();*
/**
* Implements the "WordCount" program that computes a simple word
occurrence histogram
* over text files.
*
* <p>The input is a plain text file with lines separated by newline characters.
*
* <p>Usage: <code>WordCount --input <path> --output
<path></code><br>
* If no parameters are provided, the program is run with default data
from {@link WordCountData}.
*
* <p>This example shows how to:
* <ul>
* <li>write a simple Flink program.
* <li>use Tuple data types.
* <li>write and use user-defined functions.
* </ul>
*
*/
public class WordCount {
// *************************************************************************
// PROGRAM
// *************************************************************************
public static void main(String[] args) throws Exception {
// disable illegal access warnings
new DisableAccessWarning().disableAccessWarnings();
final class DisableAccessWarning {
public static void disableAccessWarnings() {
try {
Class unsafeClass = Class.forName("sun.misc.Unsafe");
Field field = unsafeClass.getDeclaredField("theUnsafe");
field.setAccessible(true);
Object unsafe = field.get(null);
Method putObjectVolatile =
unsafeClass.getDeclaredMethod("putObjectVolatile", Object.class,
long.class, Object.class);
Method staticFieldOffset =
unsafeClass.getDeclaredMethod("staticFieldOffset", Field.class);
Class loggerClass =
Class.forName("jdk.internal.module.IllegalAccessLogger");
Field loggerField = loggerClass.getDeclaredField("logger");
Long offset = (Long) staticFieldOffset.invoke(unsafe, loggerField);
putObjectVolatile.invoke(unsafe, loggerClass, offset, null);
} catch (Exception ignored) {
}
}
}
Backbutton.co.uk
¯\_(ツ)_/¯
♡۶Java♡۶RMI ♡۶
Make Use Method {MUM}
makeuse.org
<http://www.backbutton.co.uk>
Re: Suppressing illegal Access Warnings
Posted by Chesnay Schepler <ch...@apache.org>.
My bad, should've scrolled down further.
While this probably doesn't affect Flink, I would generally recommend to
not do this kind of reflection stuff in general.
On 21/04/2020 10:55, Zahid Rahman wrote:
>
> I have included source code for the class and method as I have used
> it in WordCount.java already in the email. Here is an other copy.
> import java.lang.reflect.Field; import java.lang.reflect.Method;
> final class DisableAccessWarning {
> public static void disableAccessWarnings() {
> try {
> Class unsafeClass = Class.forName("sun.misc.Unsafe"); Field field = unsafeClass.getDeclaredField("theUnsafe"); field.setAccessible(true); Object unsafe = field.get(null); Method putObjectVolatile = unsafeClass.getDeclaredMethod("putObjectVolatile", Object.class, long.class, Object.class); Method staticFieldOffset = unsafeClass.getDeclaredMethod("staticFieldOffset", Field.class); Class loggerClass = Class.forName("jdk.internal.module.IllegalAccessLogger"); Field loggerField = loggerClass.getDeclaredField("logger"); Long offset = (Long) staticFieldOffset.invoke(unsafe, loggerField); putObjectVolatile.invoke(unsafe, loggerClass, offset, null); }catch (Exception ignored) {
> //ignore }
> }
> }
>
>
>
> Backbutton.co.uk <http://Backbutton.co.uk>
> ¯\_(ツ)_/¯
> ♡۶Java♡۶RMI ♡۶
> Make Use Method {MUM}
> makeuse.org <http://makeuse.org>
> <http://www.backbutton.co.uk>
>
>
> On Tue, 21 Apr 2020 at 09:04, Chesnay Schepler <chesnay@apache.org
> <ma...@apache.org>> wrote:
>
> I do not know where this function comes from
> (DisableAccessWarning().disableAccessWarnings()),**so we can't be
> sure.
>
> On 21/04/2020 00:27, Zahid Rahman wrote:
>> Hi,
>>
>> *I was getting these warnings, I think these are due to certain
>> version of Maven libraries which is impacting Java frameworks
>> every where.*
>>
>> WARNING: An illegal reflective access operation has occurred
>> WARNING: Illegal reflective access by
>> org.jboss.netty.util.internal.ByteBufferUtil
>> (file:/home/kub19/.m2/repository/io/netty/netty/3.10.6.Final/netty-3.10.6.Final.jar)
>> to method java.nio.DirectByteBuffer.cleaner()
>> WARNING: Please consider reporting this to the maintainers of
>> org.jboss.netty.util.internal.ByteBufferUtil
>> WARNING: Use --illegal-access=warn to enable warnings of further
>> illegal reflective access operations
>> WARNING: All illegal access operations will be denied in a future
>> release
>>
>> *I used the following code , Can you see any conflict or unwanted
>> impact with any Flink functionality ?
>> *
>> *new DisableAccessWarning().disableAccessWarnings();*
>> /** * Implements the "WordCount" program that computes a simple
>> word occurrence histogram * over text files. * * <p>The input is
>> a plain text file with lines separated by newline characters. * *
>> <p>Usage: <code>WordCount --input <path> --output
>> <path></code><br> * If no parameters are provided, the
>> program is run with default data from {@link WordCountData}. * *
>> <p>This example shows how to: * <ul> * <li>write a simple Flink
>> program. * <li>use Tuple data types. * <li>write and use
>> user-defined functions. * </ul> * */ public class WordCount {
>>
>> //
>> *************************************************************************
>> // PROGRAM //
>> *************************************************************************
>> public static void main(String[] args)throws Exception {
>>
>> // disable illegal access warnings new DisableAccessWarning().disableAccessWarnings();
>>
>> final class DisableAccessWarning {
>> public static void disableAccessWarnings() {
>> try {
>> Class unsafeClass = Class.forName("sun.misc.Unsafe"); Field field = unsafeClass.getDeclaredField("theUnsafe"); field.setAccessible(true); Object unsafe = field.get(null); Method putObjectVolatile = unsafeClass.getDeclaredMethod("putObjectVolatile", Object.class, long.class, Object.class); Method staticFieldOffset = unsafeClass.getDeclaredMethod("staticFieldOffset", Field.class); Class loggerClass = Class.forName("jdk.internal.module.IllegalAccessLogger"); Field loggerField = loggerClass.getDeclaredField("logger"); Long offset = (Long) staticFieldOffset.invoke(unsafe, loggerField); putObjectVolatile.invoke(unsafe, loggerClass, offset, null); }catch (Exception ignored) {
>> }
>> }
>> }
>>
>> Backbutton.co.uk <http://Backbutton.co.uk>
>> ¯\_(ツ)_/¯
>> ♡۶Java♡۶RMI ♡۶
>> Make Use Method {MUM}
>> makeuse.org <http://makeuse.org>
>> <http://www.backbutton.co.uk>
>
>
Re: Suppressing illegal Access Warnings
Posted by Zahid Rahman <za...@gmail.com>.
I have included source code for the class and method as I have used it in
WordCount.java already in the email. Here is an other copy.
import java.lang.reflect.Field;
import java.lang.reflect.Method;
final class DisableAccessWarning {
public static void disableAccessWarnings() {
try {
Class unsafeClass = Class.forName("sun.misc.Unsafe");
Field field = unsafeClass.getDeclaredField("theUnsafe");
field.setAccessible(true);
Object unsafe = field.get(null);
Method putObjectVolatile =
unsafeClass.getDeclaredMethod("putObjectVolatile", Object.class,
long.class, Object.class);
Method staticFieldOffset =
unsafeClass.getDeclaredMethod("staticFieldOffset", Field.class);
Class loggerClass =
Class.forName("jdk.internal.module.IllegalAccessLogger");
Field loggerField = loggerClass.getDeclaredField("logger");
Long offset = (Long) staticFieldOffset.invoke(unsafe, loggerField);
putObjectVolatile.invoke(unsafe, loggerClass, offset, null);
} catch (Exception ignored) {
//ignore
}
}
}
Backbutton.co.uk
¯\_(ツ)_/¯
♡۶Java♡۶RMI ♡۶
Make Use Method {MUM}
makeuse.org
<http://www.backbutton.co.uk>
On Tue, 21 Apr 2020 at 09:04, Chesnay Schepler <ch...@apache.org> wrote:
> I do not know where this function comes from (DisableAccessWarning().
> disableAccessWarnings()), so we can't be sure.
>
> On 21/04/2020 00:27, Zahid Rahman wrote:
>
> Hi,
>
> *I was getting these warnings, I think these are due to certain version of
> Maven libraries which is impacting Java frameworks every where.*
>
> WARNING: An illegal reflective access operation has occurred
> WARNING: Illegal reflective access by
> org.jboss.netty.util.internal.ByteBufferUtil (
> file:/home/kub19/.m2/repository/io/netty/netty/3.10.6.Final/netty-3.10.6.Final.jar)
> to method java.nio.DirectByteBuffer.cleaner()
> WARNING: Please consider reporting this to the maintainers of
> org.jboss.netty.util.internal.ByteBufferUtil
> WARNING: Use --illegal-access=warn to enable warnings of further illegal
> reflective access operations
> WARNING: All illegal access operations will be denied in a future release
>
>
> *I used the following code , Can you see any conflict or unwanted impact
> with any Flink functionality ? *
> * new DisableAccessWarning().disableAccessWarnings();*
>
> /** * Implements the "WordCount" program that computes a simple word occurrence histogram * over text files. * * <p>The input is a plain text file with lines separated by newline characters. * * <p>Usage: <code>WordCount --input <path> --output <path></code><br> * If no parameters are provided, the program is run with default data from {@link WordCountData}. * * <p>This example shows how to: * <ul> * <li>write a simple Flink program. * <li>use Tuple data types. * <li>write and use user-defined functions. * </ul> * */public class WordCount {
>
> // ************************************************************************* // PROGRAM // ************************************************************************* public static void main(String[] args) throws Exception {
>
> // disable illegal access warnings new DisableAccessWarning().disableAccessWarnings();
>
>
> final class DisableAccessWarning {
> public static void disableAccessWarnings() {
> try {
> Class unsafeClass = Class.forName("sun.misc.Unsafe"); Field field = unsafeClass.getDeclaredField("theUnsafe"); field.setAccessible(true); Object unsafe = field.get(null); Method putObjectVolatile = unsafeClass.getDeclaredMethod("putObjectVolatile", Object.class, long.class, Object.class); Method staticFieldOffset = unsafeClass.getDeclaredMethod("staticFieldOffset", Field.class); Class loggerClass = Class.forName("jdk.internal.module.IllegalAccessLogger"); Field loggerField = loggerClass.getDeclaredField("logger"); Long offset = (Long) staticFieldOffset.invoke(unsafe, loggerField); putObjectVolatile.invoke(unsafe, loggerClass, offset, null); } catch (Exception ignored) {
> }
> }
> }
>
>
> Backbutton.co.uk
> ¯\_(ツ)_/¯
> ♡۶Java♡۶RMI ♡۶
> Make Use Method {MUM}
> makeuse.org
> <http://www.backbutton.co.uk>
>
>
>
Re: Suppressing illegal Access Warnings
Posted by Chesnay Schepler <ch...@apache.org>.
I do not know where this function comes from
(DisableAccessWarning().disableAccessWarnings()),**so we can't be sure.
**
On 21/04/2020 00:27, Zahid Rahman wrote:
> Hi,
>
> *I was getting these warnings, I think these are due to certain
> version of Maven libraries which is impacting Java frameworks every
> where.*
>
> WARNING: An illegal reflective access operation has occurred
> WARNING: Illegal reflective access by
> org.jboss.netty.util.internal.ByteBufferUtil
> (file:/home/kub19/.m2/repository/io/netty/netty/3.10.6.Final/netty-3.10.6.Final.jar)
> to method java.nio.DirectByteBuffer.cleaner()
> WARNING: Please consider reporting this to the maintainers of
> org.jboss.netty.util.internal.ByteBufferUtil
> WARNING: Use --illegal-access=warn to enable warnings of further
> illegal reflective access operations
> WARNING: All illegal access operations will be denied in a future release
>
> *I used the following code , Can you see any conflict or unwanted
> impact with any Flink functionality ?
> *
> *new DisableAccessWarning().disableAccessWarnings();*
> /** * Implements the "WordCount" program that computes a simple word
> occurrence histogram * over text files. * * <p>The input is a plain
> text file with lines separated by newline characters. * * <p>Usage:
> <code>WordCount --input <path> --output <path></code><br>
> * If no parameters are provided, the program is run with default data
> from {@link WordCountData}. * * <p>This example shows how to: * <ul> *
> <li>write a simple Flink program. * <li>use Tuple data types. *
> <li>write and use user-defined functions. * </ul> * */ public class WordCount {
>
> //
> *************************************************************************
> // PROGRAM //
> *************************************************************************
> public static void main(String[] args)throws Exception {
>
> // disable illegal access warnings new DisableAccessWarning().disableAccessWarnings();
>
> final class DisableAccessWarning {
> public static void disableAccessWarnings() {
> try {
> Class unsafeClass = Class.forName("sun.misc.Unsafe"); Field field = unsafeClass.getDeclaredField("theUnsafe"); field.setAccessible(true); Object unsafe = field.get(null); Method putObjectVolatile = unsafeClass.getDeclaredMethod("putObjectVolatile", Object.class, long.class, Object.class); Method staticFieldOffset = unsafeClass.getDeclaredMethod("staticFieldOffset", Field.class); Class loggerClass = Class.forName("jdk.internal.module.IllegalAccessLogger"); Field loggerField = loggerClass.getDeclaredField("logger"); Long offset = (Long) staticFieldOffset.invoke(unsafe, loggerField); putObjectVolatile.invoke(unsafe, loggerClass, offset, null); }catch (Exception ignored) {
> }
> }
> }
>
> Backbutton.co.uk <http://Backbutton.co.uk>
> ¯\_(ツ)_/¯
> ♡۶Java♡۶RMI ♡۶
> Make Use Method {MUM}
> makeuse.org <http://makeuse.org>
> <http://www.backbutton.co.uk>