Hey,

You can create a jira ticket and attach the zip.

Cheers!
Szczepan
12-05-2011 17:43 użytkownik "Joe Schmetzer" <j...@exubero.com> napisał:
> Hi all,
>
> I'm having troubles running an xml schema validation unit test from
> Gradle. It's a relatively simple test, but it uses some XML Schema 1.1
> features in the XSD. These features seem to really react badly to
> running in a Gradle worker process. Running exactly the same code from
> Ant has no problems, but when running from Gradle, I get an error with
> a stack trace pointing to some problem deep in the XML processing
> libraries. Can anyone help with suggestions on how to avoid this, or
> fix the root cause?
>
> I have packaged up a small example which demonstrates this problem.
> There are 2 tests in the class. Both should pass, but when running
> from gradle, the first test fails with the following stack trace
> (which I have put below)
>
> Here's the test:
>
> SchemaValidationTest.java:
> ========================
> package com.example.xmltest;
> import java.io.IOException;
> import org.junit.Test;
> import org.xml.sax.SAXException;
> import javax.xml.transform.Source;
> import javax.xml.transform.stream.StreamSource;
> import javax.xml.validation.Schema;
> import javax.xml.validation.SchemaFactory;
> import javax.xml.validation.Validator;
> public class SchemaValidationTest {
>     @Test
>     public void validateSchemaSimple() throws Exception {
>         StreamSource schemaDocument = new
> StreamSource(getClass().getResourceAsStream("simpleWithAssert.xsd"));
>         Source instanceDocument = new
> StreamSource(getClass().getResourceAsStream("simpleTest.xml"));
>         validate(schemaDocument, instanceDocument);
>     }
>     @Test
>     public void validateSchemaWithoutOnePointOneFeatures() throws
Exception {
>         StreamSource schemaDocument = new
> StreamSource(getClass().getResourceAsStream("simpleWithoutAssert.xsd"));
>         Source instanceDocument = new
> StreamSource(getClass().getResourceAsStream("simpleTest.xml"));
>         validate(schemaDocument, instanceDocument);
>     }
>
>     private void validate(StreamSource schemaDocument,
>             Source instanceDocument) throws SAXException,
>             IOException {
>         SchemaFactory schemaFactory =
> SchemaFactory.newInstance("http://www.w3.org/XML/XMLSchema/v1.1";);
>         Schema schema = schemaFactory.newSchema(schemaDocument);
>         Validator validator = schema.newValidator();
>         validator.validate(instanceDocument);
>     }
>
> }
> ========================
>
> simpleTest.xml:
> ========================
> <?xml version="1.0" encoding="UTF-8"?>
> <idea state="Closed" closeddatetime="23-05-2007 18:45:23 BST" />
> ========================
>
> simpleWithAssert.xsd:
> ========================
> <?xml version="1.0" encoding="ISO-8859-15"?>
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";>
> <xs:element name="idea">
> <xs:complexType>
> <xs:attribute name="state" default="Open">
> <xs:simpleType>
> <xs:restriction base="xs:token">
> <xs:enumeration value="Open" />
> <xs:enumeration value="Closed" />
> </xs:restriction>
> </xs:simpleType>
> </xs:attribute>
> <xs:attribute name="closeddatetime" />
> <xs:assert test="(@state ne 'Closed') or not(empty(@closeddatetime))" />
> </xs:complexType>
> </xs:element>
> </xs:schema>
> ========================
>
> simpleWithoutAssert.xsd:
> ========================
> <?xml version="1.0" encoding="ISO-8859-15"?>
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";>
> <xs:element name="idea">
> <xs:complexType>
> <xs:attribute name="state" default="Open">
> <xs:simpleType>
> <xs:restriction base="xs:token">
> <xs:enumeration value="Open" />
> <xs:enumeration value="Closed" />
> </xs:restriction>
> </xs:simpleType>
> </xs:attribute>
> <xs:attribute name="closeddatetime" />
> </xs:complexType>
> </xs:element>
> </xs:schema>
> ========================
>
> Stack trace:
> ========================
> java.lang.AssertionError
> at
org.eclipse.wst.xml.xpath2.processor.internal.types.QName.namespace(QName.java:235)
> at
org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator.name_test(DefaultEvaluator.java:1316)
> at
org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator.visit(DefaultEvaluator.java:1379)
> at
org.eclipse.wst.xml.xpath2.processor.internal.ast.NameTest.accept(NameTest.java:39)
> at
org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator.visit(DefaultEvaluator.java:1242)
> at
org.eclipse.wst.xml.xpath2.processor.internal.ast.ForwardStep.accept(ForwardStep.java:141)
> at
org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator.visit(DefaultEvaluator.java:2003)
> at
org.eclipse.wst.xml.xpath2.processor.internal.ast.AxisStep.accept(AxisStep.java:46)
> at
org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator.visit(DefaultEvaluator.java:1195)
> at
org.eclipse.wst.xml.xpath2.processor.internal.ast.XPathExpr.accept(XPathExpr.java:43)
> at
org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator.do_bin_args(DefaultEvaluator.java:752)
> at
org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator.visit(DefaultEvaluator.java:563)
> at
org.eclipse.wst.xml.xpath2.processor.internal.ast.CmpExpr.accept(CmpExpr.java:106)
> at
org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator.do_expr(DefaultEvaluator.java:264)
> at
org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator.visit(DefaultEvaluator.java:1475)
> at
org.eclipse.wst.xml.xpath2.processor.internal.ast.ParExpr.accept(ParExpr.java:40)
> at
org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator.visit(DefaultEvaluator.java:2036)
> at
org.eclipse.wst.xml.xpath2.processor.internal.ast.FilterExpr.accept(FilterExpr.java:52)
> at
org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator.visit(DefaultEvaluator.java:1195)
> at
org.eclipse.wst.xml.xpath2.processor.internal.ast.XPathExpr.accept(XPathExpr.java:43)
> at
org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator.do_bin_args(DefaultEvaluator.java:752)
> at
org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator.do_logic_exp(DefaultEvaluator.java:459)
> at
org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator.visit(DefaultEvaluator.java:481)
> at
org.eclipse.wst.xml.xpath2.processor.internal.ast.OrExpr.accept(OrExpr.java:37)
> at
org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator.visit(DefaultEvaluator.java:1509)
> at
org.eclipse.wst.xml.xpath2.processor.internal.ast.FunctionCall.accept(FunctionCall.java:46)
> at
org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator.visit(DefaultEvaluator.java:2036)
> at
org.eclipse.wst.xml.xpath2.processor.internal.ast.FilterExpr.accept(FilterExpr.java:52)
> at
org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator.visit(DefaultEvaluator.java:1195)
> at
org.eclipse.wst.xml.xpath2.processor.internal.ast.XPathExpr.accept(XPathExpr.java:43)
> at
org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator.do_expr(DefaultEvaluator.java:264)
> at
org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator.visit(DefaultEvaluator.java:285)
> at org.eclipse.wst.xml.xpath2.processor.ast.XPath.accept(XPath.java:43)
> at
org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator.evaluate(DefaultEvaluator.java:239)
> at
org.apache.xerces.impl.xs.AbstractPsychoPathImpl.evaluatePsychoPathExpr(Unknown
> Source)
> at
org.apache.xerces.impl.xs.XMLAssertPsychopathImpl.evaluateAssertion(Unknown
> Source)
> at
org.apache.xerces.impl.xs.XMLAssertPsychopathImpl.evaluateAssertionsFromAComplexType(Unknown
> Source)
> at
org.apache.xerces.impl.xs.XMLAssertPsychopathImpl.processAllAssertionsOnElement(Unknown
> Source)
> at org.apache.xerces.impl.xs.XMLAssertPsychopathImpl.endElement(Unknown
Source)
> at
org.apache.xerces.impl.xs.XSDAssertionValidator.handleEndElement(Unknown
> Source)
> at org.apache.xerces.impl.xs.XMLSchemaValidator.handleEndElement(Unknown
Source)
> at org.apache.xerces.impl.xs.XMLSchemaValidator.emptyElement(Unknown
Source)
> at
org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown
> Source)
> at
org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(Unknown
> Source)
> at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
> Source)
> at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
> Source)
> at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
> at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
> at
org.apache.xerces.jaxp.validation.StreamValidatorHelper.validate(Unknown
> Source)
> at org.apache.xerces.jaxp.validation.ValidatorImpl.validate(Unknown
Source)
> at javax.xml.validation.Validator.validate(Validator.java:127)
> at
com.youdevise.xmltest.SchemaValidationTest.validate(SchemaValidationTest.java:35)
> at
com.youdevise.xmltest.SchemaValidationTest.validateSchemaSimple(SchemaValidationTest.java:19)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
> at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
> at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
> at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:279)
> at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
> at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:48)
> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:247)
> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:57)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:245)
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:47)
> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:238)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:308)
> at
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.execute(JUnitTestClassExecuter.java:51)
> at
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassProcessor.processTestClass(JUnitTestClassProcessor.java:63)
> at
org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:49)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
> at
org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
> at
org.gradle.messaging.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:32)
> at
org.gradle.messaging.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:75)
> at $Proxy3.processTestClass(Unknown Source)
> at
org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:86)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
> at
org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
> at
org.gradle.messaging.remote.internal.MethodInvocationUnmarshallingDispatch.dispatch(MethodInvocationUnmarshallingDispatch.java:48)
> at
org.gradle.messaging.dispatch.DiscardOnFailureDispatch.dispatch(DiscardOnFailureDispatch.java:31)
> at
org.gradle.messaging.dispatch.AsyncDispatch.dispatchMessages(AsyncDispatch.java:129)
> at
org.gradle.messaging.dispatch.AsyncDispatch.access$000(AsyncDispatch.java:33)
> at
org.gradle.messaging.dispatch.AsyncDispatch$1.run(AsyncDispatch.java:69)
> at
org.gradle.messaging.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:63)
> at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:619)
> ========================
>
> I have all this code, build scripts, and library jars packed up in a
> zip file. It was 2.5MB includes jars, and I didn't want to post that
> to the mailing list. If anyone wants to have a look, let me know and
> I'll send you the zip.
>
> Thanks,
> Joe
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
> http://xircles.codehaus.org/manage_email
>
>

Reply via email to