Identity Broker Forum

Welcome to the community forum for Identity Broker.

Browse the knowledge base, ask questions directly to the product group, or leverage the community to get answers. Leave ideas for new features and vote for the features or bug fixes you want most.

0
Fixed

Error thrown following connector full imports

Matthew Clark 12 years ago updated by anonymous 9 years ago 4

When a connector full import runs, the following error is thrown when attempting to stop change detection. _RunningChangeDetectionTasks is an empty dictionary:

The given key was not present in the dictionary.
> Unify.Framework.Collections.dll!Unify.Framework.Collections.ThreadsafeDictionaryBase<System.Guid,Unify.Framework.Collections.IThreadsafeCollection<System.Guid>,System.Collections.Generic.IDictionary<System.Guid,Unify.Framework.Collections.IThreadsafeCollection<System.Guid>>>.thisSystem.Guid.get(System.Guid key) Line 184 + 0x89 bytes C#
Unify.IdentityBroker.ChangeDetection.Engine.dll!Unify.Product.IdentityBroker.ConnectorStatisticsEngine.StopChangeDetection(System.Guid connectorId, System.Guid taskId) Line 843 + 0x57 bytes C#
Unify.IdentityBroker.ChangeDetection.Engine.dll!Unify.Product.IdentityBroker.ConnectorStatisticsEngine.SetChangeDetectionValues.AnonymousMethod__21() Line 730 + 0x98 bytes C#
Unify.Framework.Scheduling.Job.dll!Unify.Framework.ExtensionMethods.WaitOnMutex(System.Threading.Mutex mutex, System.Action work) Line 21 + 0xf bytes C#
Unify.IdentityBroker.ChangeDetection.Engine.dll!Unify.Product.IdentityBroker.ConnectorStatisticsEngine.SetChangeDetectionValues(System.Guid taskId, System.Guid connectorId, System.DateTime time, System.TimeSpan duration, Unify.Framework.Collections.IDictionaryTwoPassDifferenceReport<System.Guid,Unify.Product.IdentityBroker.IEntity,Unify.Framework.Collections.GroupedNameValueCollectionKey,Unify.Framework.IValue> differenceReport, bool succeeded, string errorMessage) Line 728 + 0x54 bytes C#
Unify.IdentityBroker.ChangeDetection.Engine.dll!Unify.Product.IdentityBroker.ConnectorStatisticsEngine.Notify(Unify.Product.IdentityBroker.IChangeDetectionProcessChangeRegisterItemsCompletedEvent message) Line 355 + 0x1a9 bytes C#
Unify.Framework.Notification.dll!Unify.Framework.Notification.NotificationSinkList<Unify.Product.IdentityBroker.IChangeDetectionProcessChangeRegisterItemsCompletedEvent>.Notify.AnonymousMethod__0(Unify.Framework.Notification.INotificationSink<Unify.Product.IdentityBroker.IChangeDetectionProcessChangeRegisterItemsCompletedEvent> sink) Line 23 + 0x6f bytes C#
Unify.Framework.DesignPatterns.dll!Unify.Framework.Visitor.Visit<Unify.Framework.Notification.INotificationSink<Unify.Product.IdentityBroker.IChangeDetectionProcessChangeRegisterItemsCompletedEvent>>.AnonymousMethod__0(Unify.Framework.Notification.INotificationSink<Unify.Product.IdentityBroker.IChangeDetectionProcessChangeRegisterItemsCompletedEvent> item, int index) Line 23 + 0x24 bytes C#
Unify.Framework.DesignPatterns.dll!Unify.Framework.Visitor.Visit<Unify.Framework.Notification.INotificationSink<Unify.Product.IdentityBroker.IChangeDetectionProcessChangeRegisterItemsCompletedEvent>>(System.Collections.Generic.IEnumerable<Unify.Framework.Notification.INotificationSink<Unify.Product.IdentityBroker.IChangeDetectionProcessChangeRegisterItemsCompletedEvent>> visitCollection, System.Action<Unify.Framework.Notification.INotificationSink<Unify.Product.IdentityBroker.IChangeDetectionProcessChangeRegisterItemsCompletedEvent>,int> visitor) Line 48 C#
Unify.Framework.DesignPatterns.dll!Unify.Framework.Visitor.Visit<Unify.Framework.Notification.INotificationSink<Unify.Product.IdentityBroker.IChangeDetectionProcessChangeRegisterItemsCompletedEvent>>(System.Collections.Generic.IEnumerable<Unify.Framework.Notification.INotificationSink<Unify.Product.IdentityBroker.IChangeDetectionProcessChangeRegisterItemsCompletedEvent>> visitCollection, System.Action<Unify.Framework.Notification.INotificationSink<Unify.Product.IdentityBroker.IChangeDetectionProcessChangeRegisterItemsCompletedEvent>> visitor) Line 24 C#
Unify.Framework.Notification.dll!Unify.Framework.Notification.NotificationSinkList<Unify.Product.IdentityBroker.IChangeDetectionProcessChangeRegisterItemsCompletedEvent>.Notify(Unify.Product.IdentityBroker.IChangeDetectionProcessChangeRegisterItemsCompletedEvent message) Line 24 C#
Unify.Framework.Notification.dll!Unify.Framework.Notification.NotificationSinkList<Unify.Product.IdentityBroker.IChangeDetectionProcessChangeRegisterItemsCompletedEvent>.NotifyRegisteredSinksOfMessage<Unify.Framework.Notification.INotificationMessage>(Unify.Framework.Notification.INotificationMessage message) Line 38 C#
Unify.Framework.Notification.dll!Unify.Framework.Notification.NotificationMessageService.NotifyRegisteredSinksOfMessage<Unify.Framework.Notification.INotificationMessage>.AnonymousMethod__2(System.Collections.Generic.KeyValuePair<System.Type,Unify.Framework.Notification.IRegisteredNotificationSinkList> sinkList) Line 72 + 0xa0 bytes C#
Unify.Framework.DesignPatterns.dll!Unify.Framework.Visitor.Visit<System.Collections.Generic.KeyValuePair<System.Type,Unify.Framework.Notification.IRegisteredNotificationSinkList>>.AnonymousMethod__0(System.Collections.Generic.KeyValuePair<System.Type,Unify.Framework.Notification.IRegisteredNotificationSinkList> item, int index) Line 23 + 0x3a bytes C#
Unify.Framework.DesignPatterns.dll!Unify.Framework.Visitor.Visit<System.Collections.Generic.KeyValuePair<System.Type,Unify.Framework.Notification.IRegisteredNotificationSinkList>>(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<System.Type,Unify.Framework.Notification.IRegisteredNotificationSinkList>> visitCollection, System.Action<System.Collections.Generic.KeyValuePair<System.Type,Unify.Framework.Notification.IRegisteredNotificationSinkList>,int> visitor) Line 48 C#
Unify.Framework.DesignPatterns.dll!Unify.Framework.Visitor.Visit<System.Collections.Generic.KeyValuePair<System.Type,Unify.Framework.Notification.IRegisteredNotificationSinkList>>(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<System.Type,Unify.Framework.Notification.IRegisteredNotificationSinkList>> visitCollection, System.Action<System.Collections.Generic.KeyValuePair<System.Type,Unify.Framework.Notification.IRegisteredNotificationSinkList>> visitor) Line 24 C#
Unify.Framework.Notification.dll!Unify.Framework.Notification.NotificationMessageService.NotifyRegisteredSinksOfMessage<Unify.Framework.Notification.INotificationMessage>(Unify.Framework.Notification.INotificationMessage message) Line 73 C#
Unify.Framework.Notification.Async.dll!Unify.Framework.Notification.AsyncRegisteredNotificationSinkListDecoratorBase<Unify.Framework.Notification.INotificationMessageService>.DeliverMessages() Line 49 C#
Unify.Framework.Notification.Async.dll!Unify.Framework.Notification.ScheduledNotificationMessageServiceDecorator.DeliverMessages() Line 44 C#
Unify.Framework.Notification.Async.dll!Unify.Framework.Notification.ScheduledNotificationMessageServiceDecorator.DeliverMessagesJob.RunBase() Line 123 C#
Unify.Framework.Scheduling.Job.dll!Unify.Framework.JobBase.Run() Line 16 C#
Unify.Framework.Scheduling.Job.dll!Unify.Framework.AsynchronousJobExecutor.PerformJobCallback(object state) Line 29 + 0x20 bytes C#

0
Completed

Copy connector/adapter should specify a number of times to do it

Adam van Vliet 12 years ago updated by anonymous 9 years ago 1

From IDB-281, the copy functionality should have a text box (that defaults to 1), that allows for multiple copies to be created. It should append the number to the base name.

Ensure that checks for conflicting names occur for each iteration, skipping any conflicts. Please do this with some thought, so that the same checked items are ignored for the next iteration. eg an internal method taking a start seed.

Unit tests as usual.

Thanks.

0
Fixed

Exports do not resolve object class and fail

Matthew Clark 12 years ago updated by anonymous 9 years ago 2

Exports are currently failing with a null reference exception due to the fact the object class is not being properly resolved:

System.Exception: Error occurred when attempting to save entity with distinguished name

CN=100807,DC=CHRIS21-DEMO

Error:

Value cannot be null.
Parameter name: key
at System.Collections.Generic.Dictionary`2.FindEntry(TKey key)
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at Unify.Product.IdentityBroker.LDIFToAdapterEntitySaveAdapterBase`1.ConvertValues(String objectClass, IEnumerable`1 convertedValues) in S:\Hg\Product\IdentityBroker\IdentityBroker\Source\Adapter\Unify.IdentityBroker.Adapter.LDIF\LDIFToAdapterEntitySaveAdapterBase.cs:line 116
at Unify.Product.IdentityBroker.LDIFToAdapterEntitySaveChangeAdapter.GetConvertedValuesFromSchema(String objectClass, IEnumerable`1 values) in S:\Hg\Product\IdentityBroker\IdentityBroker\Source\Adapter\Unify.IdentityBroker.Adapter.LDIF\LDIFToAdapterEntitySaveChangeAdapter.cs:line 148
at Unify.Product.IdentityBroker.LDIFToAdapterEntitySaveChangeAdapter.<Transform>d__3.MoveNext() in S:\Hg\Product\IdentityBroker\IdentityBroker\Source\Adapter\Unify.IdentityBroker.Adapter.LDIF\LDIFToAdapterEntitySaveChangeAdapter.cs:line 118
at Unify.Product.IdentityBroker.LDIFAdapterBase.ExportChanges(ExportedLDIFForAdapter exportedLdifForAdapter) in S:\Hg\Product\IdentityBroker\IdentityBroker\Source\Adapter\Unify.IdentityBroker.Adapter.Remoting\LDIFAdapterBase.cs:line 244
at Unify.Product.IdentityBroker.LDIFAdapterServiceHostDecoratorBase.ExportChanges(ExportedLDIFForAdapter exportedLdifForAdapter) in S:\Hg\Product\IdentityBroker\IdentityBroker\Source\Service\Unify.IdentityBroker.Connect.Engine\LDIFAdapterServiceHostDecoratorBase.cs:line 57
at SyncInvokeExportChanges(Object , Object[] , Object[] )
at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)
at Unify.Product.IdentityBroker.IdentityBrokerManagementAgentProxy.ExportEntry(ModificationType modificationType, String[] changedAttributes, CSEntry csentry)
at Unify.Product.IdentityBroker.IdentityBrokerManagementAgent.ExportEntry(ModificationType modificationType, String[] changedAttributes, CSEntry csentry) in S:\Hg\Adapters\Microsoft.FIM\Master\Source\Unify.IdentityBroker.FIMAdapter\IdentityBrokerManagementAgent.cs:line 105

0
Fixed

PartitionId error on adapter import

Matthew Clark 12 years ago updated by anonymous 9 years ago 2

When attempting an adapter full import, the following error is appearing:

The given ColumnName 'PartitionId' does not match up with any column in data source.
System.Data.dll!System.Data.SqlClient.SqlBulkCopy.WriteRowSourceToServer(int columnCount) + 0x3f3 bytes
System.Data.dll!System.Data.SqlClient.SqlBulkCopy.WriteToServer(System.Data.DataTable table, System.Data.DataRowState rowState) + 0x134 bytes
> Unify.IdentityBroker.Entity.Repository.Sql.dll!Unify.Product.IdentityBroker.Repository.ContainerContext.InsertItems(System.Collections.Generic.HashSet<Unify.Product.IdentityBroker.IContainer> addedItems, Unify.Product.IdentityBroker.Repository.ContainerDataContext sourceContext, System.Data.SqlClient.SqlConnection connection) Line 257 + 0x3f bytes C#
Unify.Framework.Data.dll!Unify.Framework.Data.LinqContextConversionBase<Unify.Product.IdentityBroker.IContainer,Unify.Product.IdentityBroker.Repository.ContainerDataContext,Unify.Product.IdentityBroker.Repository.Container,Unify.Framework.Data.IItemDeletionInformation>.SubmitChanges() Line 138 C#
Unify.IdentityBroker.Entity.Repository.Sql.dll!Unify.Product.IdentityBroker.Repository.AdapterEntityContext.SubmitChangesBase(Unify.Product.IdentityBroker.Repository.EntityDataContext sourceContext, System.Data.SqlClient.SqlConnection connection) Line 94 + 0x20 bytes C#
Unify.Framework.Data.dll!Unify.Framework.Data.LinqContextConversionBase<Unify.Product.IdentityBroker.IAdapterEntity,Unify.Product.IdentityBroker.Repository.EntityDataContext,Unify.Product.IdentityBroker.Repository.Entity,Unify.Product.IdentityBroker.Repository.IEntityItemDeletionInformation>.SubmitChanges() Line 140 C#
Unify.IdentityBroker.Entity.Repository.dll!Unify.Product.IdentityBroker.AdapterEntityPartitionUpdatableContextAdapter.SubmitChanges() Line 114 + 0x34 bytes C#
Unify.IdentityBroker.Adapter.dll!Unify.Product.IdentityBroker.GetAllEntitiesContainerHandler.UpdateGetAllEntitiesContainers.SubmitContainersTask(System.Collections.Generic.HashSet<Unify.Framework.IO.DistinguishedName> containers, Unify.Product.IdentityBroker.IContainerContext context) Line 109 + 0x34 bytes C#
Unify.IdentityBroker.Adapter.dll!Unify.Product.IdentityBroker.ContainerContextHandlerBase.SubmitContainersJobBase.RunBase() Line 128 + 0x1d bytes C#
Unify.Framework.Scheduling.Job.dll!Unify.Framework.JobBase.Run() Line 16 C#
Unify.Framework.Scheduling.Job.dll!Unify.Framework.AsynchronousJobExecutor.PerformJobCallback(object state) Line 29 + 0x20 bytes C#

The full import file is successfully generated, so I believe this may only be preventing containers being added to the database or something to this effect. Yet to confirm negative impact.

0
Completed

Improve logging info for attributeValue errors

Matthew Woolnough 12 years ago updated by anonymous 9 years ago 7

Bubble up the name/id of the transformation that caused the error so that it is easy for the layman to identify the cause of the problem.

20130411,07:34:24,Adapter get all entities for adapter failed.,Adapter,Warning,"Adapter get all entities for adapter 365e6a23-2e27-485f-a6e5-52ccd3347634 failed with reason Specified argument was out of the range of valid values.
Parameter name: attributeValue. Duration: 00:00:05.3996214
Error details:
System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
Parameter name: attributeValue
   at Unify.Framework.DistinguishedNameComponent..ctor(DNAttributeType attributeType, String attributeValue)
   at Unify.Framework.EntityFieldValueDistinguishedNameComponentGenerator`2.Transform(TEntity sourceValue)
   at Unify.Framework.EntityDistinguishedNameGenerator`2.<>c__DisplayClass3.<Transform>b__0(IEntityDistinguishedNameComponentGenerator`2 componentFactory)
   at System.Linq.Enumerable.<>c__DisplayClass12`3.<CombineSelectors>b__11(TSource x)
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   at System.Linq.Enumerable.<SelectManyIterator>d__14`2.MoveNext()
   at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   at Unify.Framework.EntityDistinguishedNameGenerator`2.Transform(TEntity sourceValue)
   at Unify.Framework.AdapterEntity.Convert(IEntity source, Func`2 dnFactory, Func`2 classFactory)
   at Unify.Framework.Adapter.<GetTransformedEntities>b__7a(IEntity item)
   at System.Linq.Enumerable.<>c__DisplayClass12`3.<CombineSelectors>b__11(TSource x)
   at System.Linq.Enumerable.WhereSelectListIterator`2.MoveNext()
   at System.Linq.Enumerable.<SelectManyIterator>d__14`2.MoveNext()
   at System.Linq.Enumerable.<SelectManyIterator>d__14`2.MoveNext()
   at Unify.Framework.EnumerableExtensions.<ActionOnFirst>d__1c`1.MoveNext()
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   at Unify.Framework.ActionOnExceptionEnumerator`1.MoveNext()
   at Unify.Framework.EnumerableExtensions.<ActionOnLast>d__16`1.MoveNext()
   at Unify.Framework.EnumerableStreamWriter`2.OnWriteBodyContents(Stream stream, IEnumerable`1 enumerable)
   at Unify.Framework.EnumerableStreamWriter`2.<>c__DisplayClass2.<.ctor>b__0(Stream stream)
   at Unify.Framework.LazyEvaluationStream.Evaluate(Object obj)",Normal
0
Fixed

Connector polling imports break after an update export

Matthew Clark 13 years ago updated by anonymous 9 years ago 5

After an item has been updated in a connector via an adapter, polling imports return errors saying the key has been duplicated:

Connector processing failed.
Connector Processing page 2 for connector chris21 DET failed with reason The key 100001 has been duplicated.. Duration: 00:00:00.3505859.
Error details:
System.ArgumentException: The key 100001 has been duplicated.
at Unify.Product.IdentityBroker.EntityRepositoryExtensions.DuplicateKeyBase(MultiKeyValue arg1)
at Unify.Framework.Collections.EnumerableExtensions.ToDictionaryWithKeyClashErrorTKey,TValue,TOriginal(IEnumerable`1 originalEnumerable, Func`2 keySelector, Func`2 valueSelector, Action`3 duplicateAction)
at Unify.Product.IdentityBroker.EntityRepositoryExtensions.ConvertConnectorEntitiesWithRepositoryEntities(IEnumerable`1 connectorEntities, IMultiKey`1 schemaKey, IQueryable`1 sourceEntities, Guid connectorId, IEnumerable`1 originalEntities)
at Unify.Product.IdentityBroker.RepositoryChangeDetectionWorkerBase.PerformChangeDetectionOnConnectorEntityPage(IEnumerable`1 connectorEntities, Int32 index, Int32 entitiesProcessedSoFar, Int32 totalNumberOfEntities, IEntityChangesReportGenerator`2 reportGenerator)
at Unify.Product.IdentityBroker.RepositoryChangeDetectionWorkerBase.<>c_DisplayClass4.<PerformChangeDetection>b_0(IEnumerable`1 page)
at Unify.Framework.Visitor.ThreadsafeVisitorEvaluator`1.ThreadsafeItemEvaluator.Evaluate()

This was done using a composite adapter.

0
Fixed

Confirming delta imports following exports return no changes in some cases

Matthew Clark 13 years ago updated by anonymous 9 years ago 8

For singular and composite adapters, successful exports do not seem to result in changes being generated, as confirming delta imports return empty in some cases.

An entity that is present in two adapters that share the same base connector - The changes table shows a change for the entity, but the "AdapterId" it is using is only the first adapter in the list.

There also seems to be an issue with items changed in a composite adapter - a successful export does not get added to the changes table for the entity ID.

0
Fixed

Parameter limit issue when updating multiple containers

Matthew Clark 13 years ago updated by anonymous 9 years ago 8

The following error is thrown when a large number of containers are being updated:

An exception has occured whilst performing a job for adapter d5251d7d-05cc-4d35-916e-e99e06b9ffd3 job UpdateGetAllEntitiesContainers:
The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Too many parameters were provided in this RPC request. The maximum is 2100.

This was found while configured SALES-230. Within a composite, I have an address and person connector. The address DNs are set up such that they are contained by the person object (eg. person CN=100001 with address CN=H,CN=100001). If the person objects are cleared and reimported, the attempt to update all the containers fails with the above error.

0
Fixed

Only validate final adapter schema

Adam van Vliet 11 years ago updated by anonymous 9 years ago 3

The following error occurs when attempting to make use of a non-LDAP compliant named field, even when the field name will not be part of the final schema (in this case it's used in the dn generator):

System.ArgumentException: new_personid is not a valid LDAP attribute name
Parameter name: attributeName
 at Unify.Product.IdentityBroker.AdapterEntityValueCollectionKey..ctor(String valueName) in c:\workspaces\DEV\IdentityBroker\Source\Entity\Unify.IdentityBroker.Entity.Interfaces\AdapterEntityValueCollectionKey.cs:line 46
 at Unify.Product.IdentityBroker.AdapterEntityValueCollectionKey.op_Implicit(String field) in c:\workspaces\DEV\IdentityBroker\Source\Entity\Unify.IdentityBroker.Entity.Interfaces\AdapterEntityValueCollectionKey.cs:line 176
 at Unify.Connect.Web.AdapterController.SaveFieldDNGenerator(FieldDNComponentGeneratorViewInformation viewInformation) in c:\workspaces\DEV\IdentityBroker\Source\Studio\Unify.Connect.Web\Controllers\AdapterController.cs:line 1444
 at lambda_method(Closure , ControllerBase , Object[] )
 at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
 at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
 at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12()
 at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
 at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
 at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)

The schema shouldn't validate this here, especially when the field is only being used in a dn generator.

0
Fixed

Organization profile connector polling not possible

Adam van Vliet 14 years ago in UNIFYBroker/Microsoft SharePoint updated by anonymous 9 years ago 6

Polling has had to be disable in the Organization Connector.

When OrganizationProfileManager.GetChanges(token); is called, the exception below is thrown.

This is due to the OrganizationProfileMembershipChange constructor containing a cast directly from an object to an int.

The code for polling is already written, only the interface on the connector was removed.

Check online sources, find a patch or raise an issue with Microsoft.

Specified cast is not valid.
   at Microsoft.Office.Server.UserProfiles.OrganizationProfileMembershipChange..ctor(ProfileManagerBase profileManager, SqlDataReader reader, Boolean loadProfile, ProfileBase profile)
   at Microsoft.Office.Server.UserProfiles.ProfileBase.GetOneChange(ProfileManagerBase profileManager, SqlDataReader sqlRecords, Boolean restrictToColleagueProperties, Boolean loadProfile, ProfileBase profile)
   at Microsoft.Office.Server.UserProfiles.ProfileBase.GetChanges(ProfileManagerBase profileManager, Int32 viewerRights, ProfileBaseChangeQuery changeQuery, Boolean restrictToColleagueChanges, Boolean fSortDescending, ProfileBase profile)
   at Microsoft.Office.Server.UserProfiles.ProfileBase.GetChanges(ProfileManagerBase profileManager, Int32 viewerRights, ProfileBaseChangeQuery changeQuery)
   at Microsoft.Office.Server.UserProfiles.OrganizationProfileManager.GetChanges(ProfileBaseChangeQuery changeQuery)
   at Microsoft.Office.Server.UserProfiles.OrganizationProfileManager.GetChanges(UserProfileChangeToken changeToken)
   at Unify.Connectors.SharePoint.SharePoint2010WCFService.UNIFYIdentityBrokerService.SharePoint2010OrganizationProfileService.GetChangedOrganizationProfileIds(String oldChangeToken)