Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Crowd sync in bamboo

Bart Devriendt February 16, 2018

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

 

1 answer

0 votes
Gonchik Tsymzhitov
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
November 23, 2019

Hi! 

I hope You fixed ClassCastException. 

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

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events