Crowd sync in bamboo
Asked by Bart Devriendt:

Hi,

We are trying to develop a plugin to offer a rest api to sync with crowd. First I tried with the CrowdDirectoryService but then I found this topic:

<https://community.atlassian.com/t5/Crowd-questions/Bamboo-and-CrowdDirectoryService/qaq-p/720655>

Then I searched further and found in the server API 2 classes: CrowdClientHolder and CrowdClientControl.   

In my code I do the following:

```
private final CrowdClientControl crowd;


this.crowd = CrowdClientHolder.get();

SnapshotFetchingInfo info = crowd.refreshCache();
```

When I run the code the code I get the following error:

java.lang.ClassCastException: com.atlassian.crowd.integration.rest.entity.MembershipEntity$JaxbAccessorM_getGroupName_setGroupName_java_lang_String cannot be cast to com.sun.xml.internal.bi  
nd.v2.runtime.reflect.Accessor  
at com.sun.xml.internal.bind.v2.runtime.reflect.opt.OptimizedAccessorFactory.instanciate(OptimizedAccessorFactory.java:190)  
at com.sun.xml.internal.bind.v2.runtime.reflect.opt.OptimizedAccessorFactory.get(OptimizedAccessorFactory.java:129)  
at com.sun.xml.internal.bind.v2.runtime.reflect.Accessor$GetterSetterReflection.optimize(Accessor.java:388)  
at com.sun.xml.internal.bind.v2.runtime.reflect.TransducedAccessor$CompositeTransducedAccessorImpl.\<init\>(TransducedAccessor.java:220)  
at com.sun.xml.internal.bind.v2.runtime.reflect.TransducedAccessor.get(TransducedAccessor.java:160)  
at com.sun.xml.internal.bind.v2.runtime.property.AttributeProperty.\<init\>(AttributeProperty.java:76)  
at com.sun.xml.internal.bind.v2.runtime.property.PropertyFactory.create(PropertyFactory.java:93)  
at com.sun.xml.internal.bind.v2.runtime.ClassBeanInfoImpl.\<init\>(ClassBeanInfoImpl.java:166)  
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getOrCreate(JAXBContextImpl.java:488)  
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getOrCreate(JAXBContextImpl.java:507)  
at com.sun.xml.internal.bind.v2.runtime.property.ArrayElementProperty.\<init\>(ArrayElementProperty.java:97)  
at com.sun.xml.internal.bind.v2.runtime.property.ArrayElementNodeProperty.\<init\>(ArrayElementNodeProperty.java:47)  
at sun.reflect.GeneratedConstructorAccessor287.newInstance(Unknown Source)  
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)  
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)  
at com.sun.xml.internal.bind.v2.runtime.property.PropertyFactory.create(PropertyFactory.java:113)  
at com.sun.xml.internal.bind.v2.runtime.ClassBeanInfoImpl.\<init\>(ClassBeanInfoImpl.java:166)  
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getOrCreate(JAXBContextImpl.java:488)  
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.\<init\>(JAXBContextImpl.java:305)  
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.\<init\>(JAXBContextImpl.java:124)  
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1123)  
at com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:147)  
at sun.reflect.GeneratedMethodAccessor1802.invoke(Unknown Source)  
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)  
at java.lang.reflect.Method.invoke(Method.java:498)  
at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:247)  
at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:234)  
at javax.xml.bind.ContextFinder.find(ContextFinder.java:462)  
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:641)  
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:584)  
at javax.xml.bind.JAXB$Cache.\<init\>(JAXB.java:112)  
at javax.xml.bind.JAXB.getContext(JAXB.java:139)  
at javax.xml.bind.JAXB.unmarshal(JAXB.java:223)  
at com.atlassian.crowd.integration.rest.service.RestExecutor$MethodExecutor.andReceive(RestExecutor.java:349)  
at com.atlassian.crowd.integration.rest.service.RestCrowdClient.getMemberships(RestCrowdClient.java:834)  
at com.atlassian.crowd.integration.atlassianuser.UserGroupFetcher.fetch(UserGroupFetcher.java:41)  
at com.atlassian.crowd.integration.atlassianuser.UserGroupCache.fetchAndSetSnapshot(UserGroupCache.java:82)  
at com.atlassian.crowd.integration.atlassianuser.UserGroupCache.refreshCache(UserGroupCache.java:357)  
at com.atlassian.crowd.integration.atlassianuser.CrowdClientControl.refreshCache(CrowdClientControl.java:107)

The user repositories page shows "The last synchronisation failed. See the logs for details."

Can someone shed a light why I get this error ?

Best regards


Answers:
author: Gonchik Tsymzhitov
body: Hi!

I hope You fixed ClassCastException.

Meanwhile bamboo improved crowd integration and multiple connections to user directories.


Tags: bamboo

developer