You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@chemistry.apache.org by Michael Brackx <mi...@gmail.com> on 2013/09/18 12:51:55 UTC
tck - CmisServiceFactory
Hi,
Currently when running tests via AbstractRunner the service factory is
initialized multiple times.
Below are 2 stacktraces from running 1 test.
The binding is created once from SessionFactoryImpl.getRepositories and
once from SessionImpl.connect.
Also the factory is never destroyed.
at
org.apache.chemistry.opencmis.client.bindings.spi.local.CmisLocalSpi.<init>(CmisLocalSpi.java:89)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at
org.apache.chemistry.opencmis.client.bindings.impl.CmisBindingsHelper.getSPI(CmisBindingsHelper.java:82)
at
org.apache.chemistry.opencmis.client.bindings.impl.CmisBindingImpl.clearAllCaches(CmisBindingImpl.java:230)
at
org.apache.chemistry.opencmis.client.bindings.impl.CmisBindingImpl.<init>(CmisBindingImpl.java:141)
at
org.apache.chemistry.opencmis.client.bindings.impl.CmisBindingImpl.<init>(CmisBindingImpl.java:62)
at
org.apache.chemistry.opencmis.client.bindings.CmisBindingFactory.createCmisLocalBinding(CmisBindingFactory.java:244)
at
org.apache.chemistry.opencmis.client.runtime.CmisBindingHelper.createLocalBinding(CmisBindingHelper.java:118)
at
org.apache.chemistry.opencmis.client.runtime.CmisBindingHelper.createBinding(CmisBindingHelper.java:61)
at
org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl.getRepositories(SessionFactoryImpl.java:107)
at
org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl.getRepositories(SessionFactoryImpl.java:96)
at
org.apache.chemistry.opencmis.tck.impl.AbstractSessionTest.run(AbstractSessionTest.java:153)
at
org.apache.chemistry.opencmis.tck.impl.AbstractCmisTestGroup.run(AbstractCmisTestGroup.java:109)
at
org.apache.chemistry.opencmis.tck.runner.AbstractRunner.run(AbstractRunner.java:275)
at
org.apache.chemistry.opencmis.client.bindings.spi.local.CmisLocalSpi.<init>(CmisLocalSpi.java:89)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at
org.apache.chemistry.opencmis.client.bindings.impl.CmisBindingsHelper.getSPI(CmisBindingsHelper.java:82)
at
org.apache.chemistry.opencmis.client.bindings.impl.CmisBindingImpl.clearAllCaches(CmisBindingImpl.java:230)
at
org.apache.chemistry.opencmis.client.bindings.impl.CmisBindingImpl.<init>(CmisBindingImpl.java:141)
at
org.apache.chemistry.opencmis.client.bindings.impl.CmisBindingImpl.<init>(CmisBindingImpl.java:62)
at
org.apache.chemistry.opencmis.client.bindings.CmisBindingFactory.createCmisLocalBinding(CmisBindingFactory.java:244)
at
org.apache.chemistry.opencmis.client.runtime.CmisBindingHelper.createLocalBinding(CmisBindingHelper.java:118)
at
org.apache.chemistry.opencmis.client.runtime.CmisBindingHelper.createBinding(CmisBindingHelper.java:61)
at
org.apache.chemistry.opencmis.client.runtime.SessionImpl.connect(SessionImpl.java:703)
at
org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl.createSession(SessionFactoryImpl.java:90)
at
org.apache.chemistry.opencmis.client.runtime.repository.RepositoryImpl.createSession(RepositoryImpl.java:62)
at
org.apache.chemistry.opencmis.tck.impl.AbstractSessionTest.run(AbstractSessionTest.java:153)
at
org.apache.chemistry.opencmis.tck.impl.AbstractCmisTestGroup.run(AbstractCmisTestGroup.java:109)
at
org.apache.chemistry.opencmis.tck.runner.AbstractRunner.run(AbstractRunner.java:275)
Michael
Re: tck - CmisServiceFactory
Posted by Florian Müller <fm...@apache.org>.
Hi Michael,
That is the expected behavior. If you don't provide a repository id in
the session parameters, the TCK gets the list of repositories first.
That requires a local service factory. It then sets up a session, which
requires its own local session factory. The TCK does that for each test
to make sure that each test starts with empty caches (and to be able to
run each test interdependently).
Because OpenCMIS does not control the life cycle of a session (there is
no close() method or something similar), it cannot destroy the local
session factory.
Florian
> Hi,
>
> Currently when running tests via AbstractRunner the service factory
> is
> initialized multiple times.
> Below are 2 stacktraces from running 1 test.
> The binding is created once from SessionFactoryImpl.getRepositories
> and
> once from SessionImpl.connect.
> Also the factory is never destroyed.
>
> at
>
> org.apache.chemistry.opencmis.client.bindings.spi.local.CmisLocalSpi.<init>(CmisLocalSpi.java:89)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> Method)
> at
>
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
> at
>
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
> at
>
> org.apache.chemistry.opencmis.client.bindings.impl.CmisBindingsHelper.getSPI(CmisBindingsHelper.java:82)
> at
>
> org.apache.chemistry.opencmis.client.bindings.impl.CmisBindingImpl.clearAllCaches(CmisBindingImpl.java:230)
> at
>
> org.apache.chemistry.opencmis.client.bindings.impl.CmisBindingImpl.<init>(CmisBindingImpl.java:141)
> at
>
> org.apache.chemistry.opencmis.client.bindings.impl.CmisBindingImpl.<init>(CmisBindingImpl.java:62)
> at
>
> org.apache.chemistry.opencmis.client.bindings.CmisBindingFactory.createCmisLocalBinding(CmisBindingFactory.java:244)
> at
>
> org.apache.chemistry.opencmis.client.runtime.CmisBindingHelper.createLocalBinding(CmisBindingHelper.java:118)
> at
>
> org.apache.chemistry.opencmis.client.runtime.CmisBindingHelper.createBinding(CmisBindingHelper.java:61)
> at
>
> org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl.getRepositories(SessionFactoryImpl.java:107)
> at
>
> org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl.getRepositories(SessionFactoryImpl.java:96)
> at
>
> org.apache.chemistry.opencmis.tck.impl.AbstractSessionTest.run(AbstractSessionTest.java:153)
> at
>
> org.apache.chemistry.opencmis.tck.impl.AbstractCmisTestGroup.run(AbstractCmisTestGroup.java:109)
> at
>
> org.apache.chemistry.opencmis.tck.runner.AbstractRunner.run(AbstractRunner.java:275)
>
>
> at
>
> org.apache.chemistry.opencmis.client.bindings.spi.local.CmisLocalSpi.<init>(CmisLocalSpi.java:89)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> Method)
> at
>
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
> at
>
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
> at
>
> org.apache.chemistry.opencmis.client.bindings.impl.CmisBindingsHelper.getSPI(CmisBindingsHelper.java:82)
> at
>
> org.apache.chemistry.opencmis.client.bindings.impl.CmisBindingImpl.clearAllCaches(CmisBindingImpl.java:230)
> at
>
> org.apache.chemistry.opencmis.client.bindings.impl.CmisBindingImpl.<init>(CmisBindingImpl.java:141)
> at
>
> org.apache.chemistry.opencmis.client.bindings.impl.CmisBindingImpl.<init>(CmisBindingImpl.java:62)
> at
>
> org.apache.chemistry.opencmis.client.bindings.CmisBindingFactory.createCmisLocalBinding(CmisBindingFactory.java:244)
> at
>
> org.apache.chemistry.opencmis.client.runtime.CmisBindingHelper.createLocalBinding(CmisBindingHelper.java:118)
> at
>
> org.apache.chemistry.opencmis.client.runtime.CmisBindingHelper.createBinding(CmisBindingHelper.java:61)
> at
>
> org.apache.chemistry.opencmis.client.runtime.SessionImpl.connect(SessionImpl.java:703)
> at
>
> org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl.createSession(SessionFactoryImpl.java:90)
> at
>
> org.apache.chemistry.opencmis.client.runtime.repository.RepositoryImpl.createSession(RepositoryImpl.java:62)
> at
>
> org.apache.chemistry.opencmis.tck.impl.AbstractSessionTest.run(AbstractSessionTest.java:153)
> at
>
> org.apache.chemistry.opencmis.tck.impl.AbstractCmisTestGroup.run(AbstractCmisTestGroup.java:109)
> at
>
> org.apache.chemistry.opencmis.tck.runner.AbstractRunner.run(AbstractRunner.java:275)
>
> Michael