This is an automated email from the ASF dual-hosted git repository.
mblow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git
The following commit(s) were added to refs/heads/master by this push:
new f4b33bed12 [NO ISSUE][*DB] Minor cleanup / refactoring
f4b33bed12 is described below
commit f4b33bed12efba5eb7518cdb7cf41cf810f198fa
Author: Michael Blow <[email protected]>
AuthorDate: Thu Apr 11 19:44:46 2024 -0400
[NO ISSUE][*DB] Minor cleanup / refactoring
Change-Id: I4b314e50314c845dd502c3747d469d866671e4c7
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18233
Integration-Tests: Jenkins <[email protected]>
Reviewed-by: Ali Alsuliman <[email protected]>
Tested-by: Michael Blow <[email protected]>
---
.../apache/asterix/app/cc/CCExtensionManager.java | 9 ++++----
.../apache/asterix/app/nc/NCExtensionManager.java | 27 ++++++++++------------
.../asterix/app/translator/QueryTranslator.java | 11 +++++----
.../asterix/hyracks/bootstrap/CCApplication.java | 2 +-
.../asterix/hyracks/bootstrap/NCApplication.java | 4 ++--
.../org/apache/asterix/utils/ExtensionUtil.java | 16 ++++++-------
.../org/apache/asterix/common/api/IExtension.java | 4 +++-
.../asterix/common/metadata/IMetadataLockUtil.java | 5 ++--
.../external/util/ExternalDataConstants.java | 2 +-
.../asterix/external/util/ExternalDataUtils.java | 6 ++---
.../asterix/metadata/api/IMetadataExtension.java | 3 ++-
.../metadata/declared/MetadataProvider.java | 2 +-
.../asterix/metadata/utils/MetadataLockUtil.java | 5 ++--
.../apache/hyracks/control/nc/io/IOManager.java | 2 +-
14 files changed, 51 insertions(+), 47 deletions(-)
diff --git
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/cc/CCExtensionManager.java
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/cc/CCExtensionManager.java
index f2c282bef0..397836bdb1 100644
---
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/cc/CCExtensionManager.java
+++
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/cc/CCExtensionManager.java
@@ -68,15 +68,16 @@ public class CCExtensionManager implements
ICCExtensionManager {
/**
* Initialize {@link org.apache.asterix.app.cc.CCExtensionManager} from
configuration
*
- * @param list
- * a list of extensions
+ * @param list a list of extensions
* @param namespaceResolver
+ * @param ccServiceCtx
* @throws InstantiationException
* @throws IllegalAccessException
* @throws ClassNotFoundException
* @throws HyracksDataException
*/
- public CCExtensionManager(List<AsterixExtension> list, INamespaceResolver
namespaceResolver)
+ public CCExtensionManager(List<AsterixExtension> list, INamespaceResolver
namespaceResolver,
+ ICCServiceContext ccServiceCtx)
throws InstantiationException, IllegalAccessException,
ClassNotFoundException, HyracksDataException {
Pair<ExtensionId, ILangCompilationProvider> sqlppcp = null;
Pair<ExtensionId, IFunctionManager> fm = null;
@@ -87,7 +88,7 @@ public class CCExtensionManager implements
ICCExtensionManager {
Set<ExtensionId> extensionIds = new HashSet<>();
for (AsterixExtension extensionConf : list) {
IExtension extension = (IExtension)
Class.forName(extensionConf.getClassName()).newInstance();
- extension.configure(extensionConf.getArgs());
+ extension.configure(extensionConf.getArgs(), ccServiceCtx);
if (!extensionIds.add(extension.getId())) {
throw new
RuntimeDataException(ErrorCode.EXTENSION_ID_CONFLICT, extension.getId());
}
diff --git
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/NCExtensionManager.java
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/NCExtensionManager.java
index 339b8d7573..37c7bad862 100644
---
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/NCExtensionManager.java
+++
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/NCExtensionManager.java
@@ -53,18 +53,15 @@ public class NCExtensionManager implements
INCExtensionManager {
/**
* Initialize {@code CCExtensionManager} from configuration
*
- * @param list
- * list of user configured extensions
- * @throws InstantiationException
- * if an extension couldn't be created
- * @throws IllegalAccessException
- * if user doesn't have enough acess priveleges
- * @throws ClassNotFoundException
- * if a class was not found
- * @throws HyracksDataException
- * if two extensions conlict with each other
+ * @param list list of user configured extensions
+ * @param ncServiceCtx
+ * @throws InstantiationException if an extension couldn't be created
+ * @throws IllegalAccessException if user doesn't have enough acess
priveleges
+ * @throws ClassNotFoundException if a class was not found
+ * @throws HyracksDataException if two extensions conlict with each other
*/
- public NCExtensionManager(List<AsterixExtension> list, boolean
usingDatabase, INamespaceResolver namespaceResolver)
+ public NCExtensionManager(List<AsterixExtension> list, boolean
usingDatabase, INamespaceResolver namespaceResolver,
+ INCServiceContext ncServiceCtx)
throws InstantiationException, IllegalAccessException,
ClassNotFoundException, HyracksDataException {
Pair<ExtensionId, ILangCompilationProvider> sqlppcp = null;
IMetadataExtension tupleTranslatorProviderExtension = null;
@@ -73,7 +70,7 @@ public class NCExtensionManager implements
INCExtensionManager {
if (list != null) {
for (AsterixExtension extensionConf : list) {
IExtension extension = (IExtension)
Class.forName(extensionConf.getClassName()).newInstance();
- extension.configure(extensionConf.getArgs());
+ extension.configure(extensionConf.getArgs(), ncServiceCtx);
switch (extension.getExtensionKind()) {
case LANG:
ILangExtension le = (ILangExtension) extension;
@@ -85,7 +82,7 @@ public class NCExtensionManager implements
INCExtensionManager {
mdExtensions.add(mde);
//TODO(DB) clean up
tupleTranslatorProviderExtension =
ExtensionUtil.extendTupleTranslatorProvider(
- tupleTranslatorProviderExtension, mde,
mdIndexesProvider);
+ tupleTranslatorProviderExtension, mde,
mdIndexesProvider, ncServiceCtx);
break;
default:
break;
@@ -99,8 +96,8 @@ public class NCExtensionManager implements
INCExtensionManager {
this.tupleTranslatorProvider = new
MetadataTupleTranslatorProvider(metadataIndexesProvider);
} else {
this.metadataIndexesProvider =
tupleTranslatorProviderExtension.getMetadataIndexesProvider(usingDatabase);
- this.tupleTranslatorProvider =
-
tupleTranslatorProviderExtension.getMetadataTupleTranslatorProvider(metadataIndexesProvider);
+ this.tupleTranslatorProvider = tupleTranslatorProviderExtension
+
.getMetadataTupleTranslatorProvider(metadataIndexesProvider, ncServiceCtx);
}
}
diff --git
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
index e72ab54c8a..100e524cc1 100644
---
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
+++
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
@@ -830,7 +830,7 @@ public class QueryTranslator extends AbstractLangTranslator
implements IStatemen
lockUtil.createDatasetBegin(lockManager, metadataProvider.getLocks(),
databaseName, dataverseName, datasetName,
itemTypeDatabase, itemTypeDataverseName, itemTypeName,
itemTypeAnonymous, metaItemTypeDatabase,
metaItemTypeDataverseName, metaItemTypeName,
metaItemTypeAnonymous, nodegroupName, compactionPolicy,
- defaultCompactionPolicy, dd.getDatasetType(),
dd.getDatasetDetailsDecl());
+ defaultCompactionPolicy, dd.getDatasetType(),
dd.getDatasetDetailsDecl(), metadataProvider);
try {
doCreateDatasetStatement(metadataProvider, dd,
stmtActiveNamespace, datasetName, itemTypeNamespace,
itemTypeExpr, itemTypeName, metaItemTypeExpr,
metaItemTypeNamespace, metaItemTypeName, hcc,
@@ -998,7 +998,7 @@ public class QueryTranslator extends AbstractLangTranslator
implements IStatemen
ExternalDataUtils.validate(properties);
ExternalDataUtils.validateType(properties, (ARecordType)
itemType);
validateExternalDatasetProperties(externalDetails,
properties, dd.getSourceLocation(), mdTxnCtx,
- appCtx);
+ appCtx, metadataProvider);
datasetDetails = new
ExternalDatasetDetails(externalDetails.getAdapter(), properties, new Date(),
TransactionState.COMMIT);
break;
@@ -2763,7 +2763,7 @@ public class QueryTranslator extends
AbstractLangTranslator implements IStatemen
}
lockUtil.createDatasetBegin(lockManager, metadataProvider.getLocks(),
databaseName, dataverseName, viewName,
itemTypeDatabaseName, viewItemTypeDataverseName,
viewItemTypeName, viewItemTypeAnonymous, null, null,
- null, false, null, null, true, DatasetType.VIEW, null);
+ null, false, null, null, true, DatasetType.VIEW, null,
metadataProvider);
try {
doCreateView(metadataProvider, cvs, databaseName, dataverseName,
viewName, itemTypeDatabaseName,
viewItemTypeDataverseName, viewItemTypeName, stmtRewriter,
requestParameters);
@@ -3982,7 +3982,7 @@ public class QueryTranslator extends
AbstractLangTranslator implements IStatemen
ExternalDataUtils.normalize(properties);
ExternalDataUtils.validate(properties);
validateExternalDatasetProperties(externalDetails, properties,
copyStmt.getSourceLocation(), mdTxnCtx,
- appCtx);
+ appCtx, metadataProvider);
CompiledCopyFromFileStatement cls = new
CompiledCopyFromFileStatement(databaseName, dataverseName,
copyStmt.getDatasetName(), itemType,
externalDetails.getAdapter(), properties);
cls.setSourceLocation(stmt.getSourceLocation());
@@ -5664,7 +5664,8 @@ public class QueryTranslator extends
AbstractLangTranslator implements IStatemen
protected void validateExternalDatasetProperties(ExternalDetailsDecl
externalDetails,
Map<String, String> properties, SourceLocation srcLoc,
MetadataTransactionContext mdTxnCtx,
- IApplicationContext appCtx) throws AlgebricksException,
HyracksDataException {
+ IApplicationContext appCtx, MetadataProvider metadataProvider)
+ throws AlgebricksException, HyracksDataException {
// Validate adapter specific properties
String adapter = externalDetails.getAdapter();
Map<String, String> details = new HashMap<>(properties);
diff --git
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplication.java
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplication.java
index 7d3400be6e..64c16e908b 100644
---
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplication.java
+++
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplication.java
@@ -176,7 +176,7 @@ public class CCApplication extends BaseCCApplication {
boolean useDatabaseResolution = cloudDeployment &&
isDbResolutionEnabled;
INamespaceResolver namespaceResolver = new
NamespaceResolver(useDatabaseResolution);
INamespacePathResolver namespacePathResolver = new
NamespacePathResolver(useDatabaseResolution);
- ccExtensionManager = new CCExtensionManager(new
ArrayList<>(getExtensions()), namespaceResolver);
+ ccExtensionManager = new CCExtensionManager(new
ArrayList<>(getExtensions()), namespaceResolver, ccServiceCtx);
IGlobalRecoveryManager globalRecoveryManager =
createGlobalRecoveryManager();
final CCConfig ccConfig = controllerService.getCCConfig();
diff --git
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/NCApplication.java
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/NCApplication.java
index 4acc0396d3..fc22f45ab2 100644
---
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/NCApplication.java
+++
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/NCApplication.java
@@ -166,8 +166,8 @@ public class NCApplication extends BaseNCApplication {
boolean useDatabaseResolution = cloudDeployment &&
isDbResolutionEnabled;
NamespaceResolver namespaceResolver = new
NamespaceResolver(useDatabaseResolution);
NamespacePathResolver namespacePathResolver = new
NamespacePathResolver(useDatabaseResolution);
- ncExtensionManager =
- new NCExtensionManager(new ArrayList<>(getExtensions()),
cloudDeployment, namespaceResolver);
+ ncExtensionManager = new NCExtensionManager(new
ArrayList<>(getExtensions()), cloudDeployment,
+ namespaceResolver, ncServiceCtx);
runtimeContext = createNCApplicationContext(ncServiceCtx,
ncExtensionManager, getPropertiesFactory(),
namespaceResolver, namespacePathResolver);
MetadataProperties metadataProperties =
runtimeContext.getMetadataProperties();
diff --git
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/ExtensionUtil.java
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/ExtensionUtil.java
index 4374f0140b..406a148929 100644
---
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/ExtensionUtil.java
+++
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/ExtensionUtil.java
@@ -31,6 +31,7 @@ import
org.apache.asterix.metadata.bootstrap.MetadataIndexesProvider;
import org.apache.asterix.om.functions.IFunctionManager;
import org.apache.asterix.translator.IStatementExecutorFactory;
import org.apache.hyracks.algebricks.common.utils.Pair;
+import org.apache.hyracks.api.application.INCServiceContext;
/**
* Provide util methods dealing with extensions
@@ -108,22 +109,21 @@ public class ExtensionUtil {
/**
* Validates no extension conflict and extends tuple translator provider
*
- * @param metadataExtension
- * place holder for tuple translator provider extension
- * @param mde
- * user defined metadata extension
+ * @param metadataExtension place holder for tuple translator
provider extension
+ * @param mde user defined metadata extension
* @param metadataIndexesProvider
+ * @param ncServiceCtx
* @return the metadata extension if the extension defines a metadata
tuple translator, null otherwise
- * @throws RuntimeDataException
- * if an extension conflict was detected
+ * @throws RuntimeDataException if an extension conflict was detected
*/
public static IMetadataExtension
extendTupleTranslatorProvider(IMetadataExtension metadataExtension,
- IMetadataExtension mde, MetadataIndexesProvider
metadataIndexesProvider) throws RuntimeDataException {
+ IMetadataExtension mde, MetadataIndexesProvider
metadataIndexesProvider, INCServiceContext ncServiceCtx)
+ throws RuntimeDataException {
if (metadataExtension != null) {
throw new
RuntimeDataException(ErrorCode.EXTENSION_COMPONENT_CONFLICT,
metadataExtension.getId(),
mde.getId(), IMetadataExtension.class.getSimpleName());
}
- return mde.getMetadataTupleTranslatorProvider(metadataIndexesProvider)
== null ? null : mde;
+ return mde.getMetadataTupleTranslatorProvider(metadataIndexesProvider,
ncServiceCtx) == null ? null : mde;
}
/**
diff --git
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/api/IExtension.java
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/api/IExtension.java
index 7e9879a1f2..8f342a45be 100644
---
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/api/IExtension.java
+++
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/api/IExtension.java
@@ -21,6 +21,7 @@ package org.apache.asterix.common.api;
import java.util.List;
import org.apache.hyracks.algebricks.common.utils.Pair;
+import org.apache.hyracks.api.application.IServiceContext;
/**
* an interface for an extension that provides a mechanism to override system
behaviour
@@ -57,8 +58,9 @@ public interface IExtension {
* This method is called on system boot
*
* @param args
+ * @param serviceCtx
*/
- void configure(List<Pair<String, String>> args);
+ void configure(List<Pair<String, String>> args, IServiceContext
serviceCtx);
/**
* @return The extension point implemented by this extension
diff --git
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/metadata/IMetadataLockUtil.java
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/metadata/IMetadataLockUtil.java
index 795e40f7e7..4cf938e1ff 100644
---
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/metadata/IMetadataLockUtil.java
+++
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/metadata/IMetadataLockUtil.java
@@ -22,6 +22,7 @@ package org.apache.asterix.common.metadata;
import org.apache.asterix.common.api.IMetadataLockManager;
import org.apache.asterix.common.config.DatasetConfig;
import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
+import org.apache.hyracks.algebricks.core.algebra.metadata.IMetadataProvider;
import com.google.common.collect.ImmutableList;
@@ -50,8 +51,8 @@ public interface IMetadataLockUtil {
DataverseName itemTypeDataverseName, String itemTypeName, boolean
itemTypeAnonymous,
String metaItemTypeDatabase, DataverseName
metaItemTypeDataverseName, String metaItemTypeName,
boolean metaItemTypeAnonymous, String nodeGroupName, String
compactionPolicyName,
- boolean isDefaultCompactionPolicy, DatasetConfig.DatasetType
datasetType, Object datasetDetails)
- throws AlgebricksException;
+ boolean isDefaultCompactionPolicy, DatasetConfig.DatasetType
datasetType, Object datasetDetails,
+ IMetadataProvider metadataProvider) throws AlgebricksException;
void dropDatasetBegin(IMetadataLockManager lockManager, LockList locks,
String database,
DataverseName dataverseName, String datasetName) throws
AlgebricksException;
diff --git
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/ExternalDataConstants.java
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/ExternalDataConstants.java
index d56924faf6..fcdddd8394 100644
---
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/ExternalDataConstants.java
+++
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/ExternalDataConstants.java
@@ -39,7 +39,7 @@ public class ExternalDataConstants {
// used to specify the stream factory for an adapter that has a stream
data source
public static final String KEY_STREAM = "stream";
//TODO(DB): check adapter configuration
- public static final String KEY_DATABASE_DATAVERSE = "dataset-database";
+ public static final String KEY_DATASET_DATABASE = "dataset-database";
// used to specify the dataverse of the adapter
public static final String KEY_DATASET_DATAVERSE = "dataset-dataverse";
// used to specify the socket addresses when reading data from sockets
diff --git
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/ExternalDataUtils.java
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/ExternalDataUtils.java
index b02122d719..3298759bf3 100644
---
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/ExternalDataUtils.java
+++
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/ExternalDataUtils.java
@@ -212,7 +212,7 @@ public class ExternalDataUtils {
}
public static String getDatasetDatabase(Map<String, String> configuration)
throws AsterixException {
- return configuration.get(ExternalDataConstants.KEY_DATABASE_DATAVERSE);
+ return configuration.get(ExternalDataConstants.KEY_DATASET_DATABASE);
}
public static DataverseName getDatasetDataverse(Map<String, String>
configuration) throws AsterixException {
@@ -353,8 +353,8 @@ public class ExternalDataUtils {
if (!configuration.containsKey(ExternalDataConstants.KEY_IS_FEED)) {
configuration.put(ExternalDataConstants.KEY_IS_FEED,
ExternalDataConstants.TRUE);
}
-
configuration.computeIfAbsent(ExternalDataConstants.KEY_LOG_INGESTION_EVENTS, k
-> ExternalDataConstants.TRUE);
- configuration.put(ExternalDataConstants.KEY_DATABASE_DATAVERSE,
databaseName);
+
configuration.putIfAbsent(ExternalDataConstants.KEY_LOG_INGESTION_EVENTS,
ExternalDataConstants.TRUE);
+ configuration.put(ExternalDataConstants.KEY_DATASET_DATABASE,
databaseName);
configuration.put(ExternalDataConstants.KEY_DATASET_DATAVERSE,
dataverseName.getCanonicalForm());
configuration.put(ExternalDataConstants.KEY_FEED_NAME, feedName);
}
diff --git
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/api/IMetadataExtension.java
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/api/IMetadataExtension.java
index d9037ccfb0..3f64ff7a9a 100644
---
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/api/IMetadataExtension.java
+++
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/api/IMetadataExtension.java
@@ -46,7 +46,8 @@ public interface IMetadataExtension extends IExtension {
* @return The tuple translator provider that must be used by the {@code
IMetadataNode } to read and write core
* {@code IMetadataEntity} objects
*/
- MetadataTupleTranslatorProvider
getMetadataTupleTranslatorProvider(MetadataIndexesProvider
metadataIndexesProvider);
+ MetadataTupleTranslatorProvider
getMetadataTupleTranslatorProvider(MetadataIndexesProvider
metadataIndexesProvider,
+ INCServiceContext ncServiceCtx);
MetadataIndexesProvider getMetadataIndexesProvider(boolean usingDatabase);
diff --git
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
index e0f44ea0ef..0a73ec9518 100644
---
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
+++
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
@@ -975,7 +975,7 @@ public class MetadataProvider implements
IMetadataProvider<DataSourceId, String>
Map<String, String> configuration, ARecordType itemType,
IWarningCollector warningCollector,
IExternalFilterEvaluatorFactory filterEvaluatorFactory) throws
AlgebricksException {
try {
- configuration.put(ExternalDataConstants.KEY_DATABASE_DATAVERSE,
dataset.getDatabaseName());
+ configuration.put(ExternalDataConstants.KEY_DATASET_DATABASE,
dataset.getDatabaseName());
configuration.put(ExternalDataConstants.KEY_DATASET_DATAVERSE,
dataset.getDataverseName().getCanonicalForm());
return
AdapterFactoryProvider.getAdapterFactory(getApplicationContext().getServiceContext(),
adapterName,
diff --git
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/MetadataLockUtil.java
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/MetadataLockUtil.java
index 6f44f4cb2a..0b649c4fe9 100644
---
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/MetadataLockUtil.java
+++
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/MetadataLockUtil.java
@@ -29,6 +29,7 @@ import org.apache.asterix.common.metadata.DataverseName;
import org.apache.asterix.common.metadata.IMetadataLockUtil;
import org.apache.asterix.common.metadata.LockList;
import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
+import org.apache.hyracks.algebricks.core.algebra.metadata.IMetadataProvider;
import com.google.common.base.Strings;
import com.google.common.collect.ImmutableList;
@@ -68,8 +69,8 @@ public class MetadataLockUtil implements IMetadataLockUtil {
DataverseName itemTypeDataverseName, String itemTypeName, boolean
itemTypeAnonymous,
String metaItemTypeDatabase, DataverseName
metaItemTypeDataverseName, String metaItemTypeName,
boolean metaItemTypeAnonymous, String nodeGroupName, String
compactionPolicyName,
- boolean isDefaultCompactionPolicy, DatasetConfig.DatasetType
datasetType, Object datasetDetails)
- throws AlgebricksException {
+ boolean isDefaultCompactionPolicy, DatasetConfig.DatasetType
datasetType, Object datasetDetails,
+ IMetadataProvider metadataProvider) throws AlgebricksException {
createDatasetBeginPre(lockMgr, locks, database, dataverseName,
itemTypeDatabase, itemTypeDataverseName,
itemTypeName, itemTypeAnonymous, metaItemTypeDatabase,
metaItemTypeDataverseName, metaItemTypeName,
metaItemTypeAnonymous, nodeGroupName, compactionPolicyName,
isDefaultCompactionPolicy);
diff --git
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/io/IOManager.java
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/io/IOManager.java
index 25a67ff0e7..b9f277abf3 100644
---
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/io/IOManager.java
+++
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/io/IOManager.java
@@ -539,7 +539,7 @@ public class IOManager implements IIOManager {
if (file.exists()) {
delete(fileRef);
} else {
- FileUtils.createParentDirectories(file);
+ file.getParentFile().mkdirs();
}
FileUtil.writeAndForce(file.toPath(), bytes);
} catch (IOException e) {