1

I have a junit test that open a socket to linux machine and run jmeter scenario. When I invoke the jmeter (via the test) to run SCTP scenario from junit test I'm getting IllegalAccessError exception. But, when I run exactly the same command via the linux command line manually the jmeter runs OK and it succeed to open SCTP connection.

My feeling is that somehow when the test is running the jmeter does not "know" on the SCTP.jar. I've tried all kind of thing but noting works.

Here is the exception:

2013/11/21 10:10:02 ERROR - jmeter.JMeter: Uncaught exception:  java.lang.IllegalAccessError: class sun.nio.ch.SctpServerChannelImpl cannot access its superinterface sun.nio.ch.SelChImpl
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
        at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
        at com.traffix.jmeter.tt.netty.channel.socket.sctp.SctpServerSocketChannel.<init>(SctpServerSocketChannel.java:53)
        at com.traffix.jmeter.tt.netty.channel.socket.sctp.SctpServerSocketChannelFactory.newChannel(SctpServerSocketChannelFactory.java:83)
        at com.traffix.jmeter.tt.netty.channel.socket.sctp.SctpServerSocketChannelFactory.newChannel(SctpServerSocketChannelFactory.java:24)
        at org.jboss.netty.bootstrap.ServerBootstrap.bind(ServerBootstrap.java:276)
        at com.traffix.jmeter.tt.core.transport.VirtualServer.listen(VirtualServer.java:25)
        at com.traffix.jmeter.tt.protocol.diameter.threadgroups.DiameterServer.run(DiameterServer.java:69)
        at java.lang.Thread.run(Thread.java:662)
Frederic Close
  • 9,389
  • 6
  • 56
  • 67
  • The problem was solved. The .sh file that run jmeter had a relative direction to sctp.jar, I have changed it to explicit full path and now it's working. Still I can't understand why it work manually while failed when running using junit test. – user3026938 Nov 24 '13 at 13:20

0 Answers0