Source:
<code>public CompletableFuture<ClientResponse> run(byte[] jarfileBytes, String classesToDeleteSelector) { DrRoleType drRole = DrRoleType.fromValue(VoltDB.instance().getCatalogContext().getCluster().getDrrole()); boolean useDDLSchema = VoltDB.instance().getCatalogContext().cluster.getUseddlschema(); if (!allowPausedModeWork(false, isAdminConnection())) { return makeQuickResponse( ClientResponse.SERVER_UNAVAILABLE, "Server is paused and is available in read-only mode - please try again later."); } if (!useDDLSchema) { return makeQuickResponse( ClientResponse.GRACEFUL_FAILURE, "Cluster is configured to use @UpdateApplicationCatalog " + "to change application schema. Use of @UpdateClasses is forbidden."); } CatalogChangeResult ccr = null; try { ccr = prepareApplicationCatalogDiff("@UpdateClasses", jarfileBytes, classesToDeleteSelector, new String[0], null, false, drRole, useDDLSchema, false, getHostname(), getUsername()); } catch (PrepareDiffFailureException pe) { <START> hostLog.info("A request to update the database catalog and/or deployment settings has been rejected. More info returned to client."); <END> return makeQuickResponse(pe.statusCode, pe.getMessage()); } if (ccr.upgradedFromVersion != null) { hostLog.info(String.format("In order to update the application catalog it was " + "automatically upgraded from version %s.", ccr.upgradedFromVersion)); } if (ccr.encodedDiffCommands.trim().length() == 0) { return makeQuickResponse(ClientResponseImpl.SUCCESS, "Catalog update with no changes was skipped."); } return callProcedure("@UpdateCore", ccr.encodedDiffCommands, ccr.catalogHash, ccr.catalogBytes, ccr.expectedCatalogVersion, ccr.deploymentString, ccr.tablesThatMustBeEmpty, ccr.reasonsForEmptyTables, ccr.requiresSnapshotIsolation ? 1 : 0, ccr.worksWithElastic ? 1 : 0, ccr.deploymentHash, ccr.requireCatalogDiffCmdsApplyToEE ? 1 : 0, ccr.hasSchemaChange ? 1 : 0, ccr.requiresNewExportGeneration ? 1 : 0); }</code><technical_language>log info message UAC UpdateClass. "A request update classes rejected. More info returned client."</technical_language>

Target:
public CompletableFuture<ClientResponse> run(byte[] jarfileBytes, String classesToDeleteSelector) { DrRoleType drRole = DrRoleType.fromValue(VoltDB.instance().getCatalogContext().getCluster().getDrrole()); boolean useDDLSchema = VoltDB.instance().getCatalogContext().cluster.getUseddlschema(); if (!allowPausedModeWork(false, isAdminConnection())) { return makeQuickResponse( ClientResponse.SERVER_UNAVAILABLE, "Server is paused and is available in read-only mode - please try again later."); } if (!useDDLSchema) { return makeQuickResponse( ClientResponse.GRACEFUL_FAILURE, "Cluster is configured to use @UpdateApplicationCatalog " + "to change application schema. Use of @UpdateClasses is forbidden."); } CatalogChangeResult ccr = null; try { ccr = prepareApplicationCatalogDiff("@UpdateClasses", jarfileBytes, classesToDeleteSelector, new String[0], null, false, drRole, useDDLSchema, false, getHostname(), getUsername()); } catch (PrepareDiffFailureException pe) { hostLog.info("A request to update the loaded classes has been rejected. More info returned to client."); return makeQuickResponse(pe.statusCode, pe.getMessage()); } if (ccr.upgradedFromVersion != null) { hostLog.info(String.format("In order to update the application catalog it was " + "automatically upgraded from version %s.", ccr.upgradedFromVersion)); } if (ccr.encodedDiffCommands.trim().length() == 0) { return makeQuickResponse(ClientResponseImpl.SUCCESS, "Catalog update with no changes was skipped."); } return callProcedure("@UpdateCore", ccr.encodedDiffCommands, ccr.catalogHash, ccr.catalogBytes, ccr.expectedCatalogVersion, ccr.deploymentString, ccr.tablesThatMustBeEmpty, ccr.reasonsForEmptyTables, ccr.requiresSnapshotIsolation ? 1 : 0, ccr.worksWithElastic ? 1 : 0, ccr.deploymentHash, ccr.requireCatalogDiffCmdsApplyToEE ? 1 : 0, ccr.hasSchemaChange ? 1 : 0, ccr.requiresNewExportGeneration ? 1 : 0); }