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