Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: None
-
Labels:None
-
Environment:Redhat ES 2.1
-
Number of attachments :
Description
When running $MERLIN_HOME/bin/merlin pl-j/etc/merlin/classes the following compilation error occurs.
[DEBUG ] (pl-j-test.classloader): loading class file:/home/arul/plj/src/tests/org/deadcat_enterprises/TestTableRecord.class
[DEBUG ] (pl-j-test.classloader): Using the system class loader./home/arul/plj/src/tests/org/deadcat_enterprises/TestTableRecord.class (No such file or directory)
---- exception report ----------------------------------------------------------
Exception: org.apache.avalon.merlin.KernelException
Message: Kernel startup failure.
---- cause ---------------------------------------------------------------------
Exception: org.apache.avalon.merlin.KernelException
Message: Cannot deploy application.
---- cause ---------------------------------------------------------------------
Exception: org.apache.avalon.activation.LifecycleException
Message: Unable to create a new component instance in appliance [/pl-j-test/tuplemapper] due to a component deployment failure.
---- cause ---------------------------------------------------------------------
Exception: org.apache.avalon.framework.configuration.ConfigurationException
Message: Class not found.@file:/home/arul/plj/etc/merlin/classes/BLOCK-INF/block.xml:183
---- cause ---------------------------------------------------------------------
Exception: java.lang.ClassNotFoundException
Message: Could not find: /home/arul/plj/src/tests/org/deadcat_enterprises/TestTableRecord.class
---- stack trace ---------------------------------------------------------------
java.lang.ClassNotFoundException: Could not find: /home/arul/plj/src/tests/org/deadcat_enterprises/TestTableRecord.class
org.pgj.tools.classloaders.impl.FSClassLoader.load(FSClassLoader.java:80)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:324)
org.apache.avalon.activation.impl.ApplianceInvocationHandler.invoke(ApplianceInvocationHandler.java:129)
$Proxy2.load(Unknown Source)
org.pgj.tools.tuplemapper.impl.reflected.ReflectedTupleMapper.configure(ReflectedTupleMapper.java:61)
org.apache.avalon.framework.container.ContainerUtil.configure(ContainerUtil.java:201)
org.apache.avalon.activation.impl.DefaultComponentFactory.incarnation(DefaultComponentFactory.java:347)
org.apache.avalon.activation.impl.DefaultComponentFactory.incarnate(DefaultComponentFactory.java:130)
org.apache.avalon.activation.impl.SingletonLifestyleManager.refreshReference(SingletonLifestyleManager.java:144)
org.apache.avalon.activation.impl.SingletonLifestyleManager.commission(SingletonLifestyleManager.java:60)
org.apache.avalon.activation.impl.DefaultAppliance.commission(DefaultAppliance.java:94)
org.apache.avalon.activation.impl.DefaultRuntime.commission(DefaultRuntime.java:86)
org.apache.avalon.composition.model.impl.DefaultSystemContext.commission(DefaultSystemContext.java:362)
org.apache.avalon.composition.model.impl.DefaultDeploymentModel.commission(DefaultDeploymentModel.java:122)
org.apache.avalon.composition.model.impl.Commissioner.run(Commissioner.java:185)
java.lang.Thread.run(Thread.java:534)
--------------------------------------------------------------------------------
xargs: /usr/java/j2sdk1.4.2_04/bin/java: exited with status 255; aborting
Hi Koju!
We need to discuss if it is a deployment error or a bug. The error is caused by the tuplemapper, which is a new component related to the trigger handling functionality.
The TupleMapper implementation used in the default block assembly is a reflection, and it is trying to load the configured classes during initialization time.
Well, I see this solution is not very flexible at the moment, the implementation will change.
You can do 2 things to avoid the given failure: compile the testclasses and place them to the classfiles (see classloader block configuration), or remove the entry from the configuration.
You can assign bugreports directly to me, so I receive e-mail about it.
Thanks,
Laszlo