Issue 2 in alfresco-opencmis-extension: Unable to manipulate aspect properties

145 views
Skip to first unread message

alfresco-opencmis-exte...@codespot.com

unread,
Apr 15, 2011, 6:27:57 AM4/15/11
to alfresco-open...@googlegroups.com
Status: New
Owner: ----
Labels: Type-Defect Priority-Medium

New issue 2 by andrewta...@gmail.com: Unable to manipulate aspect properties
http://code.google.com/a/apache-extras.org/p/alfresco-opencmis-extension/issues/detail?id=2

What steps will reproduce the problem?

1. Run the test case org.alfresco.cmis.client.test.CMISClientTest against a
standard Enterprise Alfresco 3.4 install.


What is the expected output? What do you see instead?

Expect each test to pass, instead an exception is thrown (see end of report
for an example stack trace).

What version of the product are you using? On what operating system?

- alfresco-opencmis-extension 0.2
- chemistry-opencmis 0.3.0
- Windows 7
- JDK 1.6.0_24
- Alfresco Enterprise - v3.4.0 (168), hosted on Ubuntu 10.04


Please provide any additional information below.

It seems to be able to add the aspect itself just fine, however it always
fails trying to add properties that are part of the aspect.

Stack trace from running "testCreateUpdateDeleteDocument":


org.apache.chemistry.opencmis.commons.exceptions.CmisConnectionException:
Cannot access
http://askur-stage:80/alfresco/s/cmis/s/workspace:SpacesStore/i/db05db1f-56dd-481b-a4c0-288d7c2ea0aa/children:
null
at
org.apache.chemistry.opencmis.client.bindings.spi.atompub.HttpUtils.invoke(HttpUtils.java:184)
at
org.apache.chemistry.opencmis.client.bindings.spi.atompub.HttpUtils.invokePOST(HttpUtils.java:68)
at
org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.post(AbstractAtomPubService.java:500)
at
org.apache.chemistry.opencmis.client.bindings.spi.atompub.ObjectServiceImpl.createDocument(ObjectServiceImpl.java:109)
at
org.apache.chemistry.opencmis.client.runtime.SessionImpl.createDocument(SessionImpl.java:623)
at
org.apache.chemistry.opencmis.client.runtime.FolderImpl.createDocument(FolderImpl.java:87)
at
org.apache.chemistry.opencmis.client.runtime.FolderImpl.createDocument(FolderImpl.java:401)
at
org.alfresco.cmis.client.test.CMISClientTest.testCreateUpdateDeleteDocument(CMISClientTest.java:76)
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 junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at
org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: javax.xml.bind.MarshalException
- with linked exception:
[javax.xml.transform.TransformerException:
javax.xml.stream.XMLStreamException: prefix cannot be null or empty]
at
com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:331)
at
com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:175)
at
org.apache.chemistry.opencmis.commons.impl.JaxBHelper.marshal(JaxBHelper.java:130)
at
org.apache.chemistry.opencmis.client.bindings.spi.atompub.AtomEntryWriter.write(AtomEntryWriter.java:130)
at
org.apache.chemistry.opencmis.client.bindings.spi.atompub.ObjectServiceImpl$1.write(ObjectServiceImpl.java:111)
at
org.apache.chemistry.opencmis.client.bindings.spi.atompub.HttpUtils.invoke(HttpUtils.java:166)
... 25 more
Caused by: javax.xml.transform.TransformerException:
javax.xml.stream.XMLStreamException: prefix cannot be null or empty
at
com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.java:242)
at
com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.java:257)
at
com.sun.xml.bind.v2.runtime.XMLSerializer.writeDom(XMLSerializer.java:792)
at
com.sun.xml.bind.v2.runtime.property.ArrayReferenceNodeProperty.serializeListBody(ArrayReferenceNodeProperty.java:112)
at
com.sun.xml.bind.v2.runtime.property.ArrayERProperty.serializeBody(ArrayERProperty.java:152)
at
com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:322)
at
com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:681)
at
com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:150)
at
com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:322)
at
com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:681)
at
com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:150)
at
com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:156)
at
com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:185)
at
com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(ElementBeanInfoImpl.java:305)
at
com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:312)
at
com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:71)
at
com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:490)
at
com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:328)
... 30 more
Caused by: javax.xml.transform.TransformerException:
javax.xml.stream.XMLStreamException: prefix cannot be null or empty
at
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:719)
at
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:313)
at
com.sun.xml.bind.v2.runtime.XMLSerializer.writeDom(XMLSerializer.java:790)
... 45 more
Caused by: javax.xml.stream.XMLStreamException: prefix cannot be null or
empty
at
com.sun.xml.bind.v2.runtime.XMLSerializer.attribute(XMLSerializer.java:435)
at
com.sun.xml.bind.v2.runtime.ContentHandlerAdaptor.startElement(ContentHandlerAdaptor.java:130)
at
com.sun.org.apache.xml.internal.serializer.ToXMLSAXHandler.closeStartTag(ToXMLSAXHandler.java:204)
at
com.sun.org.apache.xml.internal.serializer.ToSAXHandler.flushPending(ToSAXHandler.java:277)
at
com.sun.org.apache.xml.internal.serializer.ToXMLSAXHandler.startElement(ToXMLSAXHandler.java:646)
at
com.sun.org.apache.xml.internal.serializer.ToXMLSAXHandler.startElement(ToXMLSAXHandler.java:501)
at
com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:149)
at
com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:226)
at
com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:226)
at
com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:226)
at
com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:90)
at
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(TransformerImpl.java:661)
at
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:707)
... 47 more
Caused by: javax.xml.stream.XMLStreamException: prefix cannot be null or
empty
at
com.sun.xml.stream.writers.XMLStreamWriterImpl.writeAttribute(XMLStreamWriterImpl.java:629)
at
com.sun.xml.bind.v2.runtime.output.XMLStreamWriterOutput.attribute(XMLStreamWriterOutput.java:133)
at
com.sun.xml.bind.v2.runtime.XMLSerializer.attribute(XMLSerializer.java:431)
... 59 more


alfresco-opencmis-exte...@codespot.com

unread,
Apr 15, 2011, 7:48:12 AM4/15/11
to alfresco-open...@googlegroups.com
Updates:
Status: Invalid

Comment #1 on issue 2 by floria...@gmail.com: Unable to manipulate aspect
properties
http://code.google.com/a/apache-extras.org/p/alfresco-opencmis-extension/issues/detail?id=2

Please make sure that the libraries that are delivered with OpenCMIS are in
your classpath. The stack trace suggests that it fell back to the (old)
JAXB implementation in the JDK. OpenCMIS requires JAXB 2.1 or higher.

alfresco-opencmis-exte...@codespot.com

unread,
Apr 15, 2011, 8:00:24 AM4/15/11
to alfresco-open...@googlegroups.com

Comment #2 on issue 2 by andrewta...@gmail.com: Unable to manipulate aspect
properties
http://code.google.com/a/apache-extras.org/p/alfresco-opencmis-extension/issues/detail?id=2

Hi there, thanks for the prompt reply.

I have literally just fetched the alfresco-opencmis-extension source from
SVN (trunk), set it up in Eclipse and run the unit test. All dependencies
were fetched by Maven (3.0.2). I will try to verify that the 2.1 JAXB
library is definitely on the classpath and being used. From my debugging it
did seem like a library issue, but just wanted to check if anyone else had
encountered it.

alfresco-opencmis-exte...@codespot.com

unread,
Apr 15, 2011, 10:07:20 AM4/15/11
to alfresco-open...@googlegroups.com

Comment #3 on issue 2 by andrewta...@gmail.com: Unable to manipulate aspect
properties
http://code.google.com/a/apache-extras.org/p/alfresco-opencmis-extension/issues/detail?id=2

I have tried JAXB 2.1/2.2 including placing them as endorsed libs (and
verifying it in JVisualVM). Still the same issue. Update stack trace below
(no 'internal' in package name):

at junit.framework.TestCase.runTest(TestCase.java:168)
at junit.framework.TestCase.runBare(TestCase.java:134)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:124)
at junit.framework.TestSuite.runTest(TestSuite.java:243)
at junit.framework.TestSuite.run(TestSuite.java:238)
at
org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)


at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: javax.xml.bind.MarshalException
- with linked exception:
[javax.xml.transform.TransformerException:
javax.xml.stream.XMLStreamException: prefix cannot be null or empty]
at

com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:323)
at
com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:177)


at
org.apache.chemistry.opencmis.commons.impl.JaxBHelper.marshal(JaxBHelper.java:130)
at
org.apache.chemistry.opencmis.client.bindings.spi.atompub.AtomEntryWriter.write(AtomEntryWriter.java:130)
at
org.apache.chemistry.opencmis.client.bindings.spi.atompub.ObjectServiceImpl$1.write(ObjectServiceImpl.java:111)
at
org.apache.chemistry.opencmis.client.bindings.spi.atompub.HttpUtils.invoke(HttpUtils.java:166)

... 26 more


Caused by: javax.xml.transform.TransformerException:
javax.xml.stream.XMLStreamException: prefix cannot be null or empty
at

com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.java:250)
at
com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.java:265)
at
com.sun.xml.bind.v2.runtime.XMLSerializer.writeDom(XMLSerializer.java:811)
at
com.sun.xml.bind.v2.runtime.property.ArrayReferenceNodeProperty.serializeListBody(ArrayReferenceNodeProperty.java:116)
at
com.sun.xml.bind.v2.runtime.property.ArrayERProperty.serializeBody(ArrayERProperty.java:159)
at
com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:344)
at
com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:700)
at
com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:156)
at
com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:344)
at
com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:700)
at
com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:156)
at
com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:161)
at
com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:193)
at
com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(ElementBeanInfoImpl.java:321)
at
com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:328)
at
com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:76)
at
com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:498)
at
com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:320)
... 31 more


Caused by: javax.xml.transform.TransformerException:
javax.xml.stream.XMLStreamException: prefix cannot be null or empty
at
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:719)
at
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:313)
at

com.sun.xml.bind.v2.runtime.XMLSerializer.writeDom(XMLSerializer.java:809)
... 46 more


Caused by: javax.xml.stream.XMLStreamException: prefix cannot be null or
empty
at

com.sun.xml.bind.v2.runtime.XMLSerializer.attribute(XMLSerializer.java:443)
at
com.sun.xml.bind.v2.runtime.ContentHandlerAdaptor.startElement(ContentHandlerAdaptor.java:135)


at
com.sun.org.apache.xml.internal.serializer.ToXMLSAXHandler.closeStartTag(ToXMLSAXHandler.java:204)
at
com.sun.org.apache.xml.internal.serializer.ToSAXHandler.flushPending(ToSAXHandler.java:277)
at
com.sun.org.apache.xml.internal.serializer.ToXMLSAXHandler.startElement(ToXMLSAXHandler.java:646)
at
com.sun.org.apache.xml.internal.serializer.ToXMLSAXHandler.startElement(ToXMLSAXHandler.java:501)
at
com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:149)
at
com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:226)
at
com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:226)
at
com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:226)
at
com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:90)
at
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(TransformerImpl.java:661)
at
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:707)

... 48 more


Caused by: javax.xml.stream.XMLStreamException: prefix cannot be null or
empty
at
com.sun.xml.stream.writers.XMLStreamWriterImpl.writeAttribute(XMLStreamWriterImpl.java:629)
at

com.sun.xml.bind.v2.runtime.output.XMLStreamWriterOutput.attribute(XMLStreamWriterOutput.java:138)
at
com.sun.xml.bind.v2.runtime.XMLSerializer.attribute(XMLSerializer.java:439)
... 60 more

alfresco-opencmis-exte...@codespot.com

unread,
Apr 15, 2011, 11:18:45 AM4/15/11
to alfresco-open...@googlegroups.com

Comment #4 on issue 2 by floria...@gmail.com: Unable to manipulate aspect
properties
http://code.google.com/a/apache-extras.org/p/alfresco-opencmis-extension/issues/detail?id=2

It is not necessary to put the libs into the endorsed directory. The
classpath should work.
Check also all other dependencies and especially the XML parser. For some
reason Maven 3 doesn't always fetch all dependencies. (Maven 2 works fine.)
In order to check if you have everything, download the OpenCMIS client
package and compare its content with your classpath.

alfresco-opencmis-exte...@codespot.com

unread,
Apr 15, 2011, 11:52:20 AM4/15/11
to alfresco-open...@googlegroups.com

Comment #5 on issue 2 by andrewta...@gmail.com: Unable to manipulate aspect
properties
http://code.google.com/a/apache-extras.org/p/alfresco-opencmis-extension/issues/detail?id=2

Using the OpenCMIS JARs directly fixed it. Thanks very much for the
assistance. If I find what the problem is with Maven 3, I'll report back my
findings.

alfresco-opencmis-exte...@codespot.com

unread,
Apr 15, 2011, 12:40:18 PM4/15/11
to alfresco-open...@googlegroups.com

Comment #6 on issue 2 by andrewta...@gmail.com: Unable to manipulate aspect
properties
http://code.google.com/a/apache-extras.org/p/alfresco-opencmis-extension/issues/detail?id=2

Ok, I have discovered the problem. It would seem there is
conflict/bug/issue with the SJSXP StAX parser that is included by jaxws-rt
(2.1.7). The OpenCMIS distribution seems to have excluded this and uses
Woodstox instead.

To fix this for others can I recommend amending the dependencies in pom.xml
to the following:

<dependency>
<groupId>org.apache.chemistry.opencmis</groupId>
<artifactId>chemistry-opencmis-client-impl</artifactId>
<version>0.3.0</version>
<exclusions>
<exclusion>
<artifactId>sjsxp</artifactId>
<groupId>com.sun.xml.stream</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.codehaus.woodstox</groupId>
<artifactId>wstx-asl</artifactId>
<version>3.2.3</version>
</dependency>

Reply all
Reply to author
Forward
0 new messages