Petals ESB Container

IBM JDK 6 : petals runs, but can't deploy SU (+ com.sun.* classes in stack trace)

Details

  • Type: Bug Bug
  • Status: New New
  • Resolution: Unresolved
  • Affects Version/s: 3.1.1
  • Fix Version/s: None
  • Component/s: None
  • Security Level: Public
  • Description:
    Hide

    Running Petals on an IBM JDK starts fine. In my case, petals startup + deployment of BC-SOAP work quite well.
    Then, when trying to deploy a consumes SU, I obtain the stack trace below...
    Note that there are references to "com.sun." classes (looks like there's a hard-coded dependency on "com.sun" code ??).

    gibello@colibri:~/PETALS-RELEASE/petals-platform-3.1.1$ [Petals.Container.Components.petals-bc-soap]-INFO 2011-01-18 12:21:40,605 Deploy Service Unit 'su-SOAP-HelloWorldService-provide'
    [Petals.AutoLoaderServiceImpl]-SEVERE 2011-01-18 12:21:40,608 Error during the deployment of a service assembly:
    javax.xml.transform.TransformerFactoryConfigurationError: Provider com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl not found
    at javax.xml.transform.TransformerFactory.newInstance(Unknown Source)
    at org.ow2.petals.commons.threadlocal.Transformers$1.initialValue(Transformers.java:68)
    at org.ow2.petals.commons.threadlocal.Transformers$1.initialValue(Transformers.java:62)
    at java.lang.ThreadLocal.setInitialValue(ThreadLocal.java:152)
    at java.lang.ThreadLocal.get(ThreadLocal.java:142)
    at org.ow2.petals.commons.threadlocal.Transformers.getDefaultTransformer(Transformers.java:210)
    at org.ow2.petals.component.framework.util.SourceUtilImpl.createString(SourceUtilImpl.java:372)
    at org.ow2.petals.component.framework.util.SourceUtilImpl.createString(SourceUtilImpl.java:351)
    at org.ow2.petals.component.framework.su.AbstractServiceUnitManager.processProperties(AbstractServiceUnitManager.java:833)
    at org.ow2.petals.component.framework.su.AbstractServiceUnitManager.deploy(AbstractServiceUnitManager.java:253)
    at org.ow2.petals.jbi.management.task.deployment.deploy.DeploySUToComponentTask.deploySUtoComponent(DeploySUToComponentTask.java:114)
    at org.ow2.petals.jbi.management.task.deployment.deploy.DeploySUToComponentTask.execute(DeploySUToComponentTask.java:66)
    at org.ow2.petals.jbi.management.TaskProcessor.process(TaskProcessor.java:78)
    at org.ow2.petals.jbi.management.task.deployment.deploy.DeployAllSUTask.registerAndDeploySU(DeployAllSUTask.java:166)
    at org.ow2.petals.jbi.management.task.deployment.deploy.DeployAllSUTask.deploySUS(DeployAllSUTask.java:122)
    at org.ow2.petals.jbi.management.task.deployment.deploy.DeployAllSUTask.execute(DeployAllSUTask.java:80)
    at org.ow2.petals.jbi.management.TaskProcessor.process(TaskProcessor.java:78)
    at org.ow2.petals.jbi.management.deployment.DeploymentServiceImpl.deploy(DeploymentServiceImpl.java:185)
    at org.objectweb.fractal.julia.generated.C9ae71627_0.deploy(INTERCEPTOR[DeploymentService])
    at org.objectweb.fractal.julia.generated.C59d5ff32_0.deploy(INTERFACE[DeploymentService])
    at org.ow2.petals.jbi.management.autoload.AutoLoaderServiceImpl.performDeploySA(AutoLoaderServiceImpl.java:442)
    at org.ow2.petals.jbi.management.autoload.AutoLoaderServiceImpl.install(AutoLoaderServiceImpl.java:169)
    at org.ow2.petals.jbi.management.autoload.InstallDirectoryScanner.run(InstallDirectoryScanner.java:81)
    at java.util.Timer$TimerImpl.run(Timer.java:295)

    Show
    Running Petals on an IBM JDK starts fine. In my case, petals startup + deployment of BC-SOAP work quite well. Then, when trying to deploy a consumes SU, I obtain the stack trace below... Note that there are references to "com.sun." classes (looks like there's a hard-coded dependency on "com.sun" code ??). gibello@colibri:~/PETALS-RELEASE/petals-platform-3.1.1$ [Petals.Container.Components.petals-bc-soap]-INFO 2011-01-18 12:21:40,605 Deploy Service Unit 'su-SOAP-HelloWorldService-provide' [Petals.AutoLoaderServiceImpl]-SEVERE 2011-01-18 12:21:40,608 Error during the deployment of a service assembly: javax.xml.transform.TransformerFactoryConfigurationError: Provider com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl not found at javax.xml.transform.TransformerFactory.newInstance(Unknown Source) at org.ow2.petals.commons.threadlocal.Transformers$1.initialValue(Transformers.java:68) at org.ow2.petals.commons.threadlocal.Transformers$1.initialValue(Transformers.java:62) at java.lang.ThreadLocal.setInitialValue(ThreadLocal.java:152) at java.lang.ThreadLocal.get(ThreadLocal.java:142) at org.ow2.petals.commons.threadlocal.Transformers.getDefaultTransformer(Transformers.java:210) at org.ow2.petals.component.framework.util.SourceUtilImpl.createString(SourceUtilImpl.java:372) at org.ow2.petals.component.framework.util.SourceUtilImpl.createString(SourceUtilImpl.java:351) at org.ow2.petals.component.framework.su.AbstractServiceUnitManager.processProperties(AbstractServiceUnitManager.java:833) at org.ow2.petals.component.framework.su.AbstractServiceUnitManager.deploy(AbstractServiceUnitManager.java:253) at org.ow2.petals.jbi.management.task.deployment.deploy.DeploySUToComponentTask.deploySUtoComponent(DeploySUToComponentTask.java:114) at org.ow2.petals.jbi.management.task.deployment.deploy.DeploySUToComponentTask.execute(DeploySUToComponentTask.java:66) at org.ow2.petals.jbi.management.TaskProcessor.process(TaskProcessor.java:78) at org.ow2.petals.jbi.management.task.deployment.deploy.DeployAllSUTask.registerAndDeploySU(DeployAllSUTask.java:166) at org.ow2.petals.jbi.management.task.deployment.deploy.DeployAllSUTask.deploySUS(DeployAllSUTask.java:122) at org.ow2.petals.jbi.management.task.deployment.deploy.DeployAllSUTask.execute(DeployAllSUTask.java:80) at org.ow2.petals.jbi.management.TaskProcessor.process(TaskProcessor.java:78) at org.ow2.petals.jbi.management.deployment.DeploymentServiceImpl.deploy(DeploymentServiceImpl.java:185) at org.objectweb.fractal.julia.generated.C9ae71627_0.deploy(INTERCEPTOR[DeploymentService]) at org.objectweb.fractal.julia.generated.C59d5ff32_0.deploy(INTERFACE[DeploymentService]) at org.ow2.petals.jbi.management.autoload.AutoLoaderServiceImpl.performDeploySA(AutoLoaderServiceImpl.java:442) at org.ow2.petals.jbi.management.autoload.AutoLoaderServiceImpl.install(AutoLoaderServiceImpl.java:169) at org.ow2.petals.jbi.management.autoload.InstallDirectoryScanner.run(InstallDirectoryScanner.java:81) at java.util.Timer$TimerImpl.run(Timer.java:295)
  • Environment:
    IBM J9 VM (build 2.4, JRE 1.6.0 IBM J9 2.4 Linux x86-32 jvmxi3260sr9-20101124_69295 (JIT enabled, AOT enabled)
    Linux ubuntu

Issue Links

Activity

Hide
noddoux added a comment - Wed, 19 Jan 2011 - 16:17:44 +0100

The property javax.xml.transform.TransformerFactory must not be set in the BC SOAP (lines of code must be removed) but in the launcher (the launcher must be changed to detect the JVM and set the property javax.xml.transform.TransformerFactory to the Platform default TransformerFactory)

Show
noddoux added a comment - Wed, 19 Jan 2011 - 16:17:44 +0100 The property javax.xml.transform.TransformerFactory must not be set in the BC SOAP (lines of code must be removed) but in the launcher (the launcher must be changed to detect the JVM and set the property javax.xml.transform.TransformerFactory to the Platform default TransformerFactory)
Hide
Christophe DENEUX added a comment - Wed, 19 Jan 2011 - 16:27:01 +0100

In my mind, the property 'javax.xml.transform.TransformerFactory' is defined at the JVM level, and can be redefined embedding a JAR associated to a XSLT engine.

I not sure that the launcher should detect the JVM and set the correct value in the property.

Show
Christophe DENEUX added a comment - Wed, 19 Jan 2011 - 16:27:01 +0100 In my mind, the property 'javax.xml.transform.TransformerFactory' is defined at the JVM level, and can be redefined embedding a JAR associated to a XSLT engine. I not sure that the launcher should detect the JVM and set the correct value in the property.
Hide
noddoux added a comment - Wed, 19 Jan 2011 - 17:05:58 +0100

The property 'javax.xml.transform.TransformerFactory' is not defined by default at the JVM level. The property exists to allow the user to set the transformer factory as he wants.

I think the best solution for now is to set the property to the Sun default transformer factory in the launcher as we officially support Sun JVM. If an user wants to use another JVM even if we do not support it for now, he can change the property in the launcher.

Later the launcher must evolute if we want support other JVM.

Show
noddoux added a comment - Wed, 19 Jan 2011 - 17:05:58 +0100 The property 'javax.xml.transform.TransformerFactory' is not defined by default at the JVM level. The property exists to allow the user to set the transformer factory as he wants. I think the best solution for now is to set the property to the Sun default transformer factory in the launcher as we officially support Sun JVM. If an user wants to use another JVM even if we do not support it for now, he can change the property in the launcher. Later the launcher must evolute if we want support other JVM.
Hide
Christophe DENEUX added a comment - Wed, 19 Jan 2011 - 17:25:53 +0100

Yes, the property as no default value, but it seems to me that this property is used to defined the transformer factory implementation to be used. If no value is provided through the property or through a manifest contained in a jar declared in the classpath, a default implementation is used.

So, it seems to me that it is not needed to defined this property.

Show
Christophe DENEUX added a comment - Wed, 19 Jan 2011 - 17:25:53 +0100 Yes, the property as no default value, but it seems to me that this property is used to defined the transformer factory implementation to be used. If no value is provided through the property or through a manifest contained in a jar declared in the classpath, a default implementation is used. So, it seems to me that it is not needed to defined this property.
Hide
noddoux added a comment - Wed, 19 Jan 2011 - 17:47:34 +0100

And the jar is xalan 2.7.0 in the BC SOAP which is necessary to use Rampart (it does not work without this dependency) so it is necessary to set this property.

Show
noddoux added a comment - Wed, 19 Jan 2011 - 17:47:34 +0100 And the jar is xalan 2.7.0 in the BC SOAP which is necessary to use Rampart (it does not work without this dependency) so it is necessary to set this property.
Hide
Christophe DENEUX added a comment - Wed, 19 Jan 2011 - 20:21:38 +0100 - edited

Can you explain us why Xalan is needed to use Rampart ? Have you a bug reference about it ?

Perhaps can we add documentation explaining that to use Rampart with BC SOAP it is needed to set Xalan 2.7.0 as JVM endorsed librairy ?

Show
Christophe DENEUX added a comment - Wed, 19 Jan 2011 - 20:21:38 +0100 - edited Can you explain us why Xalan is needed to use Rampart ? Have you a bug reference about it ? Perhaps can we add documentation explaining that to use Rampart with BC SOAP it is needed to set Xalan 2.7.0 as JVM endorsed librairy ?
Hide
noddoux added a comment - Thu, 20 Jan 2011 - 09:21:11 +0100

I do not exactly remember but I am sure when I tested WS-Security that Xalan 2.7.0 or higher is needed (I am not sure of the version). I removed the exclusion of Xalan from the BC SOAP in this goal (cf SVN history). I have no time to test that again for now.

I think it does not work because I suppose that the transformer factory of the endorsed Xalan will be use and it will not be possible to install a SU. On another hand WS Security is quite complex without that.

Show
noddoux added a comment - Thu, 20 Jan 2011 - 09:21:11 +0100 I do not exactly remember but I am sure when I tested WS-Security that Xalan 2.7.0 or higher is needed (I am not sure of the version). I removed the exclusion of Xalan from the BC SOAP in this goal (cf SVN history). I have no time to test that again for now. I think it does not work because I suppose that the transformer factory of the endorsed Xalan will be use and it will not be possible to install a SU. On another hand WS Security is quite complex without that.
Hide
Christophe DENEUX added a comment - Thu, 20 Jan 2011 - 09:54:02 +0100

Caution, Xalan 2.7.0 contains a bug about Transformer.reset() that is needed to improve performances and memory consumption reusing transformers:
https://issues.apache.org/jira/browse/XALANJ-2395

Show
Christophe DENEUX added a comment - Thu, 20 Jan 2011 - 09:54:02 +0100 Caution, Xalan 2.7.0 contains a bug about Transformer.reset() that is needed to improve performances and memory consumption reusing transformers: https://issues.apache.org/jira/browse/XALANJ-2395



People

Dates

  • Created:
    Wed, 19 Jan 2011 - 16:13:10 +0100
    Updated:
    Thu, 20 Jan 2011 - 09:54:02 +0100