[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| [eclipselink-dev] Bug# 270863: jaxp.properties settings for running SE JPA tests fail on SUN JDK when configured for server testing | 
Hi,
   Recently over the past couple weeks I have noticed that I am getting 
JAXP transformer exceptions when attempting to use a SUN JDK either the 
SUN one or the one bundled with WebLogic, I discussed this with our 
SDO/XML group and targeted the jaxp property.
   This happens on a new machine running XP and SUN 1.6.0_xx, I have 
been using the IBM J9 JVM as my JAVA_HOME with no problems for the past 
2 months but would like to use the SUN JDK again.
   My question is - has anyone else had issues with a 
javax.xml.transform.TransformerFactoryConfigurationError on the provider 
org.apache.xalan.processor.TransformerFactoryImpl, if they are also 
running server tests on the side?
   I raised the following to track this issue
JPA Test build.xml: jaxp.properties for SE testing should not be 
overwritten by server version
http://bugs.eclipse.org/270863
   2 Issues:
------------
   This turns out to be a conflict with configuring the tests to run on 
a specific application server and running in SE mode - the script may 
need to be partitioned into Server/SE sections.
   A secondary issue of SVN rev 3681 is that any settings in 
jaxp.properties is overwritten by the eclipselink.jpa.test/build.xml script
>Temporary fix:
-----------------
   The temp fix is to comment out the 
javax.xml.transform.TransformerFactory property in jre/lib/jaxp.properties.
       
javax.xml.transform.TransformerFactory=org.apache.xalan.processor.TransformerFactoryImpl
   However, I noticed that this file was being rewritten by the build 
since the following change on 16 March 2009 - there is no bug # attached 
to the diff in fisheye - so I don't know all the reasons why we need to 
rewrite this file, but from the comments in build.xml it looks like the 
change is for WebLogic and WebSphere.  But WebSphere runs fine using the 
jaxp processor [com.ibm.xtq.xslt.jaxp.compiler.TransformerFactoryImpl].
   See:
           
http://fisheye2.atlassian.com/browse/eclipselink/trunk/jpa/eclipselink.jpa.test/build.xml?r=3681#l815
           http://fisheye2.atlassian.com/changelog/eclipselink/?cs=3681
   <target name="generate-report">
       <!-- WebLogic and WebSphere servers require specific 
jaxp.properties for generating report -->
-->        <delete file="${env.JAVA_HOME}/jre/lib/jaxp.properties" 
failonerror="false"/>
-->        <copy todir="${env.JAVA_HOME}/jre/lib" 
file="${eclipselink.jpa.test}/resource/${server.name}/jaxp.properties" 
failonerror="false"/>
       <junitreport todir="${eclipselink.jpa.test}/${report.dir}">
>Full fix:
----------
  It seems that the variable ${server.name} that is set in your 
test.properties is being used to target the appropriate jaxp.properties 
to copy from resource to jre/lib.
  In my case it is set to the following (which is why i can only run 
tests in WebSphere since I started defining this variable)
       server.name=websphere
  I don't think that generating test reports for non-server testing 
should be affected by this server flag - the script needs to be modified 
into server/non-server mode here.
>Working
@rem 
javax.xml.transform.TransformerFactory=org.apache.xalan.processor.TransformerFactoryImpl
>Failing
javax.xml.transform.TransformerFactory=org.apache.xalan.processor.TransformerFactoryImpl
C:\view_w34r1a>ant test-jpa
Buildfile: build.xml
    [echo] trunk.build.location = 'C:\view_w34r1a'
    [echo] env.CLASSPATH        = '${env.CLASSPATH}'
    [echo] java.class.path      = 
'c:\opt\ant171\lib\ant-launcher.jar;C:\opt\ant171\lib\ant-antlr.jar;C:\opt\ant171\lib\ant-apache-bcel.jar
;C:\opt\ant171\lib\ant-apache-bsf.jar;C:\opt\ant171\lib\ant-apache-log4j.jar;C:\opt\ant171\lib\ant-apache-oro.jar;C:\opt\ant171\lib\ant-apac
he-regexp.jar;C:\opt\ant171\lib\ant-apache-resolver.jar;C:\opt\ant171\lib\ant-commons-logging.jar;C:\opt\ant171\lib\ant-commons-net.jar;C:\o
pt\ant171\lib\ant-jai.jar;C:\opt\ant171\lib\ant-javamail.jar;C:\opt\ant171\lib\ant-jdepend.jar;C:\opt\ant171\lib\ant-jmf.jar;C:\opt\ant171\l
ib\ant-jsch.jar;C:\opt\ant171\lib\ant-junit.jar;C:\opt\ant171\lib\ant-launcher.jar;C:\opt\ant171\lib\ant-netrexx.jar;C:\opt\ant171\lib\ant-n
odeps.jar;C:\opt\ant171\lib\ant-starteam.jar;C:\opt\ant171\lib\ant-stylebook.jar;C:\opt\ant171\lib\ant-swing.jar;C:\opt\ant171\lib\ant-testu
til.jar;C:\opt\ant171\lib\ant-trax.jar;C:\opt\ant171\lib\ant-weblogic.jar;C:\opt\ant171\lib\ant.jar;C:\opt\ant171\lib\junit-4.1.jar;C:\opt\a
nt171\lib\junit-4.2.jar;C:\opt\ant171\lib\junit-4.3.1.jar;C:\opt\ant171\lib\junit-ext-param.jar;C:\opt\ant171\lib\junit.jar;C:\opt\ant171\li
b\junit4-ext-param.jar;C:\opt\ant171\lib\junit4-ext-pb4.jar;C:\opt\ant171\lib\xercesImpl.jar;C:\opt\ant171\lib\xml-apis.jar;c:\jdk1.6.0\lib\
tools.jar'
    [echo] user.home            = 'C:\Documents and Settings\mfobrien'
    [echo] Loading user properties from: 'C:\Documents and 
Settings\mfobrien/build.properties'
    [echo] oracle.extensions.depend.dir = 'extension.oracle.lib.external'
    [echo] extensions.depend.dir        = 
'C:\view_w34r1a/../extension.lib.external'
    [echo] junit.lib = 'extension.oracle.lib.external/junit.jar'
    [echo] Loading default properties from: 
'C:\view_w34r1a/build.properties'
    [echo] java.version='1.6.0_07'
    [echo] jdbc.driver.jar='${jdbc.driver.jar}'
test-jpa:
clean-test:
  [delete] Deleting directory 
C:\view_w34r1a\jpa\eclipselink.jpa.test\reports
  [delete] Deleting directory C:\view_w34r1a\jpa\eclipselink.jpa.test\run
   [mkdir] Created dir: C:\view_w34r1a\jpa\eclipselink.jpa.test\reports
   [mkdir] Created dir: C:\view_w34r1a\jpa\eclipselink.jpa.test\run
run-test:
    [echo] Running test on jdbc:oracle:thin:@10.156.52.98:1521:orcl
Warning: Reference run.classpath has not been set at runtime, but was 
found during
build file parsing, attempting to resolve. Future versions of Ant may 
support
referencing ids defined in non-executed targets.
Warning: Reference compile.path has not been set at runtime, but was 
found during
build file parsing, attempting to resolve. Future versions of Ant may 
support
referencing ids defined in non-executed targets.
   [junit] [EL Warning]: ServerSession(21868771)--Ignoring default 
serialization on element [private org.eclipse.persistence.testing.models
.jpa.fieldaccess.advanced.Employee$Gender 
org.eclipse.persistence.testing.models.jpa.fieldaccess.advanced.Employee.gender] 
within entity class [class 
org.eclipse.persistence.testing.models.jpa.fieldaccess.advanced.Employee] 
since a @Convert is specified.
   [junit] [EL Warning]: ServerSession(21868771)--Ignoring default 
serialization on element [private java.lang.String 
org.eclipse.persistence.testing.models.jpa.fieldaccess.advanced.Buyer.gender] 
within entity class [class 
org.eclipse.persistence.testing.models.jpa.fieldaccess.advanced.Buyer] 
since a @Convert is specified.
   [junit] [EL Warning]: ServerSession(21868771)--Optimistic locking 
metadata is already defined on the descriptor for the entity [class or
g.eclipse.persistence.testing.models.jpa.fieldaccess.advanced.Buyer]. 
Ignoring version specification on element [private int 
org.eclipse.persistence.testing.models.jpa.fieldaccess.advanced.Buyer.version].
   [junit] [EL Warning]: ServerSession(21868771)--Ignoring default 
serialization on element [private java.util.Map 
org.eclipse.persistence.testing.models.jpa.fieldaccess.advanced.Buyer.creditCards] 
within entity class [class 
org.eclipse.persistence.testing.models.jpa.fieldaccess.advanced.Buyer] 
since a @Convert is specified.
   [junit] [EL Warning]: ServerSession(21868771)--Ignoring default 
serialization on element [private java.util.Map 
org.eclipse.persistence.testing.models.jpa.fieldaccess.advanced.Buyer.creditCards] 
within entity class [class 
org.eclipse.persistence.testing.models.jpa.fieldaccess.advanced.Buyer] 
since a @Convert is specified.
   [junit] [EL Warning]: 2009-04-01 
14:06:56.437--ServerSession(24257622)--Ignoring default serialization on 
element [private org.eclipse.p
ersistence.testing.models.jpa.fieldaccess.advanced.Employee$Gender 
org.eclipse.persistence.testing.models.jpa.fieldaccess.advanced.Employee.
gender] within entity class [class 
org.eclipse.persistence.testing.models.jpa.fieldaccess.advanced.Employee] 
since a @Convert is specified.
   [junit] [EL Warning]: 2009-04-01 
14:06:56.437--ServerSession(24257622)--Ignoring default serialization on 
element [private java.lang.Str
ing 
org.eclipse.persistence.testing.models.jpa.fieldaccess.advanced.Buyer.gender] 
within entity class [class 
org.eclipse.persistence.testing.models.jpa.fieldaccess.advanced.Buyer] 
since a @Convert is specified.
   [junit] [EL Warning]: 2009-04-01 
14:06:56.437--ServerSession(24257622)--Optimistic locking metadata is 
already defined on the descriptor
for the entity [class 
org.eclipse.persistence.testing.models.jpa.fieldaccess.advanced.Buyer]. 
Ignoring version specification on element [private int 
org.eclipse.persistence.testing.models.jpa.fieldaccess.advanced.Buyer.version].
   [junit] [EL Warning]: 2009-04-01 
14:06:56.437--ServerSession(24257622)--Ignoring default serialization on 
element [private java.util.Map
org.eclipse.persistence.testing.models.jpa.fieldaccess.advanced.Buyer.creditCards] 
within entity class [class 
org.eclipse.persistence.testing.models.jpa.fieldaccess.advanced.Buyer] 
since a @Convert is specified.
   [junit] [EL Warning]: 2009-04-01 
14:06:56.437--ServerSession(24257622)--Ignoring default serialization on 
element [private java.util.Map
org.eclipse.persistence.testing.models.jpa.fieldaccess.advanced.Buyer.creditCards] 
within entity class [class 
org.eclipse.persistence.testing.models.jpa.fieldaccess.advanced.Buyer] 
since a @Convert is specified.
   [junit] java.lang.reflect.InvocationTargetException
   [junit]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native 
Method)
   [junit]     at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   [junit]     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   [junit]     at java.lang.reflect.Method.invoke(Method.java:597)
   [junit]     at 
sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:323)
   [junit]     at 
sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:338)
   [junit] Caused by: java.lang.reflect.InvocationTargetException
   [junit]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native 
Method)
   [junit]     at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   [junit]     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   [junit]     at java.lang.reflect.Method.invoke(Method.java:597)
   [junit]     at 
org.eclipse.persistence.internal.jpa.deployment.JavaSECMPInitializerAgent.initializeFromAgent(JavaSECMPInitializerAgent.java:45)
   [junit]     at 
org.eclipse.persistence.internal.jpa.deployment.JavaSECMPInitializerAgent.premain(JavaSECMPInitializerAgent.java:38)
   [junit]     ... 6 more
   [junit] Caused by: 
javax.xml.transform.TransformerFactoryConfigurationError: Provider 
org.apache.xalan.processor.TransformerFactoryImpl not found
   [junit]     at 
javax.xml.transform.TransformerFactory.newInstance(TransformerFactory.java:108)
   [junit]     at 
org.eclipse.persistence.platform.xml.jaxp.JAXPTransformer.<init>(JAXPTransformer.java:51)
   [junit]     at 
org.eclipse.persistence.platform.xml.jaxp.JAXPPlatform.newXMLTransformer(JAXPPlatform.java:135)
   [junit]     at 
org.eclipse.persistence.oxm.XMLMarshaller.initialize(XMLMarshaller.java:104)
   [junit]     at 
org.eclipse.persistence.oxm.XMLMarshaller.<init>(XMLMarshaller.java:99)
   [junit]     at 
org.eclipse.persistence.oxm.XMLContext.createMarshaller(XMLContext.java:297)
   [junit]     at 
org.eclipse.persistence.internal.jpa.metadata.xml.XMLEntityMappingsWriter.write(XMLEntityMappingsWriter.java:53)
   [junit]     at 
org.eclipse.persistence.internal.jpa.metadata.xml.XMLEntityMappingsWriter.write(XMLEntityMappingsWriter.java:41)
   [junit]     at 
org.eclipse.persistence.internal.jpa.metadata.xml.XMLEntityMappings.reloadXMLEntityMappingsObject(XMLEntityMappings.java:671)
   [junit]     at 
org.eclipse.persistence.internal.jpa.metadata.xml.XMLEntityMappings.reloadMappedSuperclass(XMLEntityMappings.java:653)
   [junit]     at 
org.eclipse.persistence.internal.jpa.metadata.ORMetadata.reloadMappedSuperclass(ORMetadata.java:365)
   [junit]     at 
org.eclipse.persistence.internal.jpa.metadata.accessors.classes.EntityAccessor.addPotentialMappedSuperclass(EntityAccessor.java:183)
   [junit]     at 
org.eclipse.persistence.internal.jpa.metadata.accessors.classes.EntityAccessor.discoverMappedSuperclassesAndInheritanceParents(EntityAccessor.java:273)
   [junit]     at 
org.eclipse.persistence.internal.jpa.metadata.accessors.classes.EntityAccessor.preProcess(EntityAccessor.java:549)
   [junit]     at 
org.eclipse.persistence.internal.jpa.metadata.MetadataProject.processStage1(MetadataProject.java:959)
   [junit]     at 
org.eclipse.persistence.internal.jpa.metadata.MetadataProcessor.processORMMetadata(MetadataProcessor.java:443)
   [junit]     at 
org.eclipse.persistence.internal.jpa.deployment.PersistenceUnitProcessor.processORMetadata(PersistenceUnitProcessor.java:297)
   [junit]     at 
org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:834)
   [junit]     at 
org.eclipse.persistence.internal.jpa.deployment.JPAInitializer.callPredeploy(JPAInitializer.java:110)
   [junit]     at 
org.eclipse.persistence.internal.jpa.deployment.JPAInitializer.initPersistenceUnits(JPAInitializer.java:159)
   [junit]     at 
org.eclipse.persistence.internal.jpa.deployment.JPAInitializer.initialize(JPAInitializer.java:144)
   [junit] FATAL ERROR in native method: processing of -javaagent failed
   [junit]     at 
org.eclipse.persistence.internal.jpa.deployment.JavaSECMPInitializer.initializeFromAgent(JavaSECMPInitializer.java:145)
   [junit]     ... 12 more
   [junit] Exception in thread "main"
   [junit] Running 
org.eclipse.persistence.testing.tests.jpa.FullRegressionTestSuite
   [junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
   [junit] Test 
org.eclipse.persistence.testing.tests.jpa.FullRegressionTestSuite FAILED 
(crashed)
generate-report:
-->   [delete] Deleting: c:\jdk1.6.0\jre\lib\jaxp.properties
-->     [copy] Copying 1 file to c:\jdk1.6.0\jre\lib
[junitreport] Processing 
C:\view_w34r1a\jpa\eclipselink.jpa.test\reports\TESTS-TestSuites.xml to 
C:\view_w34r1a\jpa\eclipselink.jpa.test\reports\junit-noframes.html
[junitreport] Loading stylesheet 
jar:file:/C:/opt/ant171/lib/ant-junit.jar!/org/apache/tools/ant/taskdefs/optional/junit/xsl/junit-noframes.xsl
BUILD FAILED
C:\view_w34r1a\build.xml:583: The following error occurred while 
executing this line:
C:\view_w34r1a\jpa\eclipselink.jpa.test\build.xml:513: The following 
error occurred while executing this line:
C:\view_w34r1a\jpa\eclipselink.jpa.test\build.xml:818: 
javax.xml.transform.TransformerFactoryConfigurationError: Provider 
org.apache.xalan.processor.TransformerFactoryImpl not found
Total time: 9 seconds
C:\view_w34r1a>
thank you
/michael