On Wednesday 16 August 2006 23:09 Andrey Chernyshev wrote:
> I can start the ActiveMQ message broker (on Win only, though) after
> applying the patch from HARMONY-1179. Though it is expressing a
> complain like:
>
> WARN ManagementContext - Failed to start jmx connector:
> javax.nami ng.NoInitialContextException: Failed to create InitialContext
> using factory spec ified in hashtable
> {jmx.remote.protocol.provider.class.loader=java.net.URLClassL [EMAIL
> PROTECTED]
> [Root exception is java.lang.ClassNotFoundException: class null not fo und]
>
> It still prints the resulting message:
>
> INFO BrokerService - ActiveMQ JMS Message Broker
> (localhost, I D:aycherny-mobl2-2814-1155754517801-1:0) started
>
> Is this what was expected? At least it doesn't seem to throw
> IncompatibleClassChangeError any longer...
I don't have this, activemq doesn't start for me and here's what I have. This
program looks very interesting since we all get different results :)
I have the same result on both platforms with clean rebuild with JIRA 1179
applied. On Linux (and the same happened on windows until just last build
I've made) there is a failed assertion like
java.exec:
/amd64/home/gregory/work/Harmony/harmony/enhanced/drlvm/trunk/vm/vmcore/src/jni/jni_field.cpp:304:
jint GetIntField(JNIEnv*, _jobject*, _jfieldID*): Assertion
`IsInstanceOf(env, obj, struct_Class_to_jclass(f->get_class()))' failed.
It looks like GetIntField is used on an object of class java.lang.Boolean
object for some reason and it fails assertion for the fieldID is of a
java.land.Integer field. Stack trace on JIT is in [1]
When running on interpreter (and most recent build on windows produces this
error contrary to the above), the failure looks differently (probably because
of different class resolution order on interpreter):
ERROR: java.lang.RuntimeException: Failed to execute start task. Reason:
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'org.apache.activemq.xbean.XBeanBrokerService' defined in class
path resource [activemq.xml]: Initialization of bean failed; nested exception
is java.lang.IllegalAccessError: null
ERROR: java.lang.Exception:
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'org.apache.activemq.xbean.XBeanBrokerService' defined in class
path resource [activemq.xml]: Initialization of bean failed; nested exception
is java.lang.IllegalAccessError: null
The patch which adds printing of stack dump for IllegalAccessError is
attached. It produces quite a lot of stacks but I thought that the last one
is actually the cause of failure and it is the one which I pasted in [2].
[1]
Stack Trace (0x80592c8):
[0x80592c8] (nil)(n):
org/apache/harmony/luni/platform/OSNetworkSystem.setSocketOptionImpl(Ljava/io/FileDescriptor;ILjava/lang/Object;)V
[0x80592c8] 0x8bf0cf15(m):
org/apache/harmony/luni/platform/OSNetworkSystem.setSocketOption(Ljava/io/FileDescriptor;ILjava/lang/Object;)V
[0x80592c8] 0x8bf0c9ae(m):
org/apache/harmony/luni/net/PlainDatagramSocketImpl.setOption(ILjava/lang/Object;)V
[0x80592c8] 0x8bf0d151(m): java/net/DatagramSocket.setReuseAddress(Z)V
[0x80592c8] 0x8bf0b328(m): java/net/MulticastSocket.<init>(I)V
[0x80592c8] 0x8bf08b19(m):
org/apache/activemq/transport/discovery/multicast/MulticastDiscoveryAgent.start()V
[0x80592c8] 0x8bf07469(m):
org/apache/activemq/broker/TransportConnector.start()V
[0x80592c8] 0x8bf00619(m):
org/apache/activemq/broker/BrokerService.startTransportConnector(Lorg/apache/activemq/broker/TransportConnector;)V
[0x80592c8] 0x8beff6ce(m):
org/apache/activemq/broker/BrokerService.startAllConnectors()V
[0x80592c8] 0x903cea06(m): org/apache/activemq/broker/BrokerService.start()V
[0x80592c8] 0x903ce536(m):
org/apache/activemq/xbean/XBeanBrokerService.afterPropertiesSet()V
[0x80592c8] 0x9046a5dc(m):
org/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory.invokeInitMethods(Ljava/lang/String;Ljava/lang/Object;Lorg/springframework/beans/factory/support/RootBeanDefinition;)V
[0x80592c8] 0x9045c333(m):
org/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory.createBean(Ljava/lang/String;Lorg/springframework/beans/factory/support/RootBeanDefinition;
[Ljava/lang/Object;)Ljava/lang/Object;
[0x80592c8] 0x9045b1b4(m):
org/springframework/beans/factory/support/AbstractBeanFactory.getBean(Ljava/lang/String;Ljava/lang/Class;
[Ljava/lang/Object;)Ljava/lang/Object;
[0x80592c8] 0x9045aa33(m):
org/springframework/beans/factory/support/AbstractBeanFactory.getBean(Ljava/lang/String;)Ljava/lang/Object;
[0x80592c8] 0x90472d5a(m):
org/springframework/beans/factory/support/DefaultListableBeanFactory.preInstantiateSingletons()V
[0x80592c8] 0xb74903ea(m):
org/springframework/context/support/AbstractApplicationContext.refresh()V
[0x80592c8] 0xb746c736(m):
org/apache/xbean/spring/context/ClassPathXmlApplicationContext.<init>([Ljava/lang/String;ZLorg/springframework/context/ApplicationContext;Ljava/util/List;)V
[0x80592c8] 0xb746c648(m):
org/apache/xbean/spring/context/ClassPathXmlApplicationContext.<init>(Ljava/lang/String;)V
[0x80592c8] 0xb746b2f8(m):
org/apache/activemq/xbean/XBeanBrokerFactory.createBroker(Ljava/net/URI;)Lorg/apache/activemq/broker/BrokerService;
[0x80592c8] 0xb745ee1f(m):
org/apache/activemq/broker/BrokerFactory.createBroker(Ljava/net/URI;)Lorg/apache/activemq/broker/BrokerService;
[0x80592c8] 0xb745d403(m):
org/apache/activemq/console/command/StartCommand.startBroker(Ljava/net/URI;)V
[0x80592c8] 0xb745c4d6(m):
org/apache/activemq/console/command/StartCommand.runTask(Ljava/util/List;)V
[0x80592c8] 0xb745afa7(m):
org/apache/activemq/console/command/AbstractCommand.execute(Ljava/util/List;)V
[0x80592c8] 0xb745b8cd(m):
org/apache/activemq/console/command/ShellCommand.runTask(Ljava/util/List;)V
[0x80592c8] 0xb745afa7(m):
org/apache/activemq/console/command/AbstractCommand.execute(Ljava/util/List;)V
[0x80592c8] 0xb745a717(m):
org/apache/activemq/console/command/ShellCommand.main([Ljava/lang/String;Ljava/io/InputStream;Ljava/io/PrintStream;)I
[0x80592c8] 0xb7af82f1(n):
java/lang/reflect/VMReflection.invokeMethod(Ljava/lang/Object;Ljava/lang/Object;
[Ljava/lang/Object;)Ljava/lang/Object;
[0x80592c8] 0xb7453b80(m):
java/lang/reflect/Method.invoke(Ljava/lang/Object;
[Ljava/lang/Object;)Ljava/lang/Object;
[0x80592c8] 0xb745679d(m):
org/apache/activemq/console/Main.runTaskClass(Ljava/util/List;)V
[0x80592c8] 0xb7454705(m):
org/apache/activemq/console/Main.main([Ljava/lang/String;)V
[0x80592c8] 0xb7af82f1(n):
java/lang/reflect/VMReflection.invokeMethod(Ljava/lang/Object;Ljava/lang/Object;
[Ljava/lang/Object;)Ljava/lang/Object;
[0x80592c8] 0xb7453b80(m):
java/lang/reflect/Method.invoke(Ljava/lang/Object;
[Ljava/lang/Object;)Ljava/lang/Object;
[0x80592c8] 0xb7438ce6(m): java/lang/VMStart$MainThread.run()V
End Stack Trace (0x80592c8, depth=34)
[2]
org/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory.createBean(Ljava/lang/String;Lorg/springframework/beans/factory/support/RootBeanDefinition;
[Ljava/lang/Object;)Ljava/lang/Object;
(AbstractAutowireCapableBeanFactory.java:345)
org/springframework/beans/factory/support/AbstractBeanFactory.getBean(Ljava/lang/String;Ljava/lang/Class;
[Ljava/lang/Object;)Ljava/lang/Object; (AbstractBeanFactory.java:247)
org/springframework/beans/factory/support/AbstractBeanFactory.getBean(Ljava/lang/String;)Ljava/lang/Object;
(AbstractBeanFactory.java:147)
org/springframework/beans/factory/support/DefaultListableBeanFactory.preInstantiateSingletons()V
(DefaultListableBeanFactory.java:292)
org/springframework/context/support/AbstractApplicationContext.refresh()V
(AbstractApplicationContext.java:324)
org/apache/xbean/spring/context/ClassPathXmlApplicationContext.<init>([Ljava/lang/String;ZLorg/springframework/context/ApplicationContext;Ljava/util/List;)V
(ClassPathXmlApplicationContext.java:160)
org/apache/xbean/spring/context/ClassPathXmlApplicationContext.<init>(Ljava/lang/String;)V
(ClassPathXmlApplicationContext.java:49)
org/apache/activemq/xbean/XBeanBrokerFactory.createBroker(Ljava/net/URI;)Lorg/apache/activemq/broker/BrokerService;
(XBeanBrokerFactory.java:66)
org/apache/activemq/broker/BrokerFactory.createBroker(Ljava/net/URI;)Lorg/apache/activemq/broker/BrokerService;
(BrokerFactory.java:57)
org/apache/activemq/console/command/StartCommand.startBroker(Ljava/net/URI;)V
(StartCommand.java:85)
org/apache/activemq/console/command/StartCommand.runTask(Ljava/util/List;)V
(StartCommand.java:72)
org/apache/activemq/console/command/AbstractCommand.execute(Ljava/util/List;)V
(AbstractCommand.java:51)
org/apache/activemq/console/command/ShellCommand.runTask(Ljava/util/List;)V
(ShellCommand.java:84)
org/apache/activemq/console/command/AbstractCommand.execute(Ljava/util/List;)V
(AbstractCommand.java:51)
org/apache/activemq/console/command/ShellCommand.main([Ljava/lang/String;Ljava/io/InputStream;Ljava/io/PrintStream;)I
(ShellCommand.java:49)
java/lang/reflect/VMReflection.invokeMethod(Ljava/lang/Object;Ljava/lang/Object;
[Ljava/lang/Object;)Ljava/lang/Object; (NULL:-2)
java/lang/reflect/Method.invoke(Ljava/lang/Object;
[Ljava/lang/Object;)Ljava/lang/Object; (NULL:-1)
org/apache/activemq/console/Main.runTaskClass(Ljava/util/List;)V
(Main.java:139)
org/apache/activemq/console/Main.main([Ljava/lang/String;)V (Main.java:71)
java/lang/reflect/VMReflection.invokeMethod(Ljava/lang/Object;Ljava/lang/Object;
[Ljava/lang/Object;)Ljava/lang/Object; (NULL:-2)
java/lang/reflect/Method.invoke(Ljava/lang/Object;
[Ljava/lang/Object;)Ljava/lang/Object; (NULL:-1)
java/lang/VMStart$MainThread.run()V (NULL:-1)
--
Gregory Shimansky, Intel Middleware Products Division
Index: interpreter.cpp
===================================================================
--- interpreter.cpp (revision 432003)
+++ interpreter.cpp (working copy)
@@ -2312,10 +2312,15 @@
return false;
}
+static inline void
+stackDump(StackFrame& frame);
+
static inline bool
processExceptionHandler(StackFrame& frame, ManagedObject **exception) {
Method *m = frame.method;
Handler *h;
+ if (!strcmp((*exception)->vt()->clss->name->bytes, "java/lang/IllegalAccessError"))
+ stackDump(frame);
if (findExceptionHandler(frame, exception, &h)){
DEBUG_BYTECODE("Exception caught: " << (*exception)->vt()->clss->name->bytes << endl);
DEBUG_BYTECODE("Found handler!\n");
---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]