Imported Upstream version 4.3.2.467

Former-commit-id: 9c2cb47f45fa221e661ab616387c9cda183f283d
This commit is contained in:
Xamarin Public Jenkins
2016-02-22 11:00:01 -05:00
parent f302175246
commit f3e3aab35a
4097 changed files with 122406 additions and 82300 deletions

View File

@@ -15,11 +15,17 @@ namespace System.ServiceModel.Activities
// false [default] to NOT have InstanceKeys automatically disassociated by default, so that they stay around until the completion of the workflow.
// true to have InstanceKeys automatically dissociated by default. Doing this affects the extensibility point WorkflowInstance.OnDisassociateKeys.
// <add key="workflowServices:DefaultAutomaticInstanceKeyDisassociation" value="true"/>
// <add key="microsoft:WorkflowServices:DefaultAutomaticInstanceKeyDisassociation" value="true"/>
//
// NOTE - There is a similar setting in System.Activities because the changes affected by this are in both assemblies.
private static bool defaultAutomaticInstanceKeyDisassociation;
// The number of seconds to wait for non-protocol bookmarks if we receive a request, but the protocol bookmark for that Receive activity is not ready.
// Default = 60 (1 minute).
// A value of 0 implies that we should not wait at all and the "out of order" exception should be thrown, rather than the timeout exception.
// <add key="microsoft:WorkflowServices:FilterResumeTimeoutInSeconds" value="60"/>
private static int filterResumeTimeoutInSeconds;
internal static bool DefaultAutomaticInstanceKeyDisassociation
{
get
@@ -29,6 +35,15 @@ namespace System.ServiceModel.Activities
}
}
internal static int FilterResumeTimeoutInSeconds
{
get
{
EnsureSettingsLoaded();
return filterResumeTimeoutInSeconds;
}
}
private static void EnsureSettingsLoaded()
{
if (!settingsInitialized)
@@ -50,11 +65,17 @@ namespace System.ServiceModel.Activities
defaultAutomaticInstanceKeyDisassociation = false;
}
if (settings == null || !int.TryParse(settings["microsoft:WorkflowServices:FilterResumeTimeoutInSeconds"], out filterResumeTimeoutInSeconds) ||
(filterResumeTimeoutInSeconds < 0))
{
filterResumeTimeoutInSeconds = 60;
}
settingsInitialized = true;
}
}
}
}
}
}
}
}

View File

@@ -1 +1 @@
cf3db836fbd33190f34d8037fc149fcf0adabc61
e5ea1459fff7b1cd603c92ad680205fd8d059d63

View File

@@ -76,7 +76,7 @@ namespace System.ServiceModel.Activities
void EndUnsuspend(IAsyncResult result);
//Transacted Operation
//
// TODO, 21237, Post One-Way Tx flow support below operations should be changed to Oneway.
[OperationContract(Name = XD2.WorkflowInstanceManagementService.TransactedCancel)]
[TransactionFlow(TransactionFlowOption.Allowed)]

View File

@@ -12,4 +12,4 @@ namespace System.ServiceModel.Activities
DataContractSerializer,
XmlSerializer
};
}
}

View File

@@ -295,6 +295,10 @@ namespace System.ServiceModel.Activities
SkipValidatingRootConfiguration = source.SkipValidatingRootConfiguration,
PrepareForRuntime = source.PrepareForRuntime,
Environment = source.Environment,
// Retain the same cancellation token. Otherwise we can't cancel the validation of WorkflowService objects
// which can make the designer unreponsive if the validation takes a long time.
CancellationToken = source.CancellationToken
};
foreach (KeyValuePair<Type, IList<Constraint>> constrants in source.AdditionalConstraints)

View File

@@ -31,7 +31,6 @@ namespace System.ServiceModel.Activities
static readonly Type mexBehaviorType = typeof(ServiceMetadataBehavior);
static readonly TimeSpan defaultPersistTimeout = TimeSpan.FromSeconds(30);
static readonly TimeSpan defaultTrackTimeout = TimeSpan.FromSeconds(30);
static readonly TimeSpan defaultFilterResumeTimeout = TimeSpan.FromMinutes(1);
static readonly Type baseActivityType = typeof(Activity);
static readonly Type correlationQueryBehaviorType = typeof(CorrelationQueryBehavior);
static readonly Type bufferedReceiveServiceBehaviorType = typeof(BufferedReceiveServiceBehavior);
@@ -482,7 +481,7 @@ namespace System.ServiceModel.Activities
this.PersistTimeout = defaultPersistTimeout;
this.TrackTimeout = defaultTrackTimeout;
this.FilterResumeTimeout = defaultFilterResumeTimeout;
this.FilterResumeTimeout = TimeSpan.FromSeconds(AppSettings.FilterResumeTimeoutInSeconds);
}
protected override void InitializeRuntime()