auphong2707/dl4se-code-review-dataset huggingface dataset:
Source:
<code>public static String getGatewayAlias(String url) { if (StringUtils.isNotBlank(url)) { String urlKey = getUrlKey(url); String gatewayAlias = gatewayAliasMapping.get(urlKey); if(StringUtils.isNotBlank(gatewayAlias)){ <START> LOG.debug("debug--found url:{}, gatewayAlias:{}", url, gatewayAlias); <END> return gatewayAlias; } } return getInstance().getPrivateKeyAlias(); }</code><technical_language>Optional: remove "debug" in print statement</technical_language>

Target:
public static String getGatewayAlias(String url) { if (StringUtils.isNotBlank(url)) { String urlKey = getUrlKey(url); String gatewayAlias = gatewayAliasMapping.get(urlKey); if(StringUtils.isNotBlank(gatewayAlias)){ LOG.debug("found url:{}, gatewayAlias:{}", url, gatewayAlias); return gatewayAlias; } } return getInstance().getPrivateKeyAlias(); }
Source:
<code>protected VisitType getVisitType(Encounter encounter) throws APIException { String value = Context.getAdministrationService().getGlobalPropertyValue( OpenmrsConstants.GP_ENCOUNTER_TYPE_TO_VISIT_TYPE_MAPPING, ""); if (!StringUtils.isBlank(value)) { String targetEncounterTypeId = encounter.getEncounterType().getId().toString(); String[] mappings = value.split(","); for (String mapping : mappings) { int index = mapping.indexOf(':'); if (index > 0) { <START> String encounterTypeId = mapping.substring(0, index).trim(); <END> if (targetEncounterTypeId.equals(encounterTypeId) || encounter.getEncounterType().getUuid().equals(encounterTypeId)) { String visitTypeId = mapping.substring(index + 1).trim(); VisitType visitType = null; try { visitType = Context.getVisitService().getVisitType(Integer.parseInt(visitTypeId)); } catch (NumberFormatException e) { } if (visitType == null) visitType = Context.getVisitService().getVisitTypeByUuid(visitTypeId); if (visitType != null) { return visitType; } } } } throw new APIException( "Global Property: visit.encounterTypeToVisitTypeMapping does not have a mapping for encounter type: " + encounter.getEncounterType().getName()); } return Context.getVisitService().getAllVisitTypes().get(0); }</code><technical_language>renamed variable "idOrUuid" code more readable</technical_language>

Target:
protected VisitType getVisitType(Encounter encounter) throws APIException { String value = Context.getAdministrationService().getGlobalPropertyValue( OpenmrsConstants.GP_ENCOUNTER_TYPE_TO_VISIT_TYPE_MAPPING, ""); if (!StringUtils.isBlank(value)) { String targetEncounterTypeId = encounter.getEncounterType().getId().toString(); String[] mappings = value.split(","); for (String mapping : mappings) { int index = mapping.indexOf(':'); if (index > 0) { String encounterTypeIdOrUuid = mapping.substring(0, index).trim(); if (targetEncounterTypeId.equals(encounterTypeIdOrUuid) || encounter.getEncounterType().getUuid().equals(encounterTypeIdOrUuid)) { String visitTypeIdOrUuid = mapping.substring(index + 1).trim(); VisitType visitType = null; try { visitType = Context.getVisitService().getVisitType(Integer.parseInt(visitTypeIdOrUuid)); } catch (NumberFormatException e) { } if (visitType == null) visitType = Context.getVisitService().getVisitTypeByUuid(visitTypeIdOrUuid); if (visitType != null) { return visitType; } } } } throw new APIException( "Global Property: visit.encounterTypeToVisitTypeMapping does not have a mapping for encounter type: " + encounter.getEncounterType().getName()); } return Context.getVisitService().getAllVisitTypes().get(0); }
Source:
<code>public void setUp() { setAcceptedLanguage(LanguageMode.ECMASCRIPT6); languageOut = LanguageMode.ECMASCRIPT6; disableTypeCheck(); <START> enableLineNumberCheck(false); <END> enableCompareAsTree(false); }</code><technical_language>I want line numbers copied correctly</technical_language>

Target:
public void setUp() { setAcceptedLanguage(LanguageMode.ECMASCRIPT6); languageOut = LanguageMode.ECMASCRIPT6; disableTypeCheck(); enableCompareAsTree(false); }
Source:
<code>public void resolve(EObject view, TransformationCache cache) { if (view instanceof ViewExtensionDescription) { List<Category> categories = ((ViewExtensionDescription) view).getCategories(); <START> for (Category category : categories) { for (GroupDescription group : category.getGroups()) { GroupValidationSetDescription validationSet = group.getValidationSet(); if (validationSet != null) { for (PropertyValidationRule rule : validationSet.getPropertyValidationRules()) { List<WidgetDescription> processedTargets = new ArrayList<WidgetDescription>(); for (WidgetDescription originalTarget : rule.getTargets()) { <END> Optional<Object> targetOptional = cache.getOutput(originalTarget); Object target = targetOptional.get(); if (target instanceof WidgetDescription) { processedTargets.add((WidgetDescription) target); } } rule.getTargets().clear(); rule.getTargets().addAll(processedTargets); } } } } } }</code><technical_language>java8-isation [forEach][optional][flatmap]</technical_language>

Target:
public void resolve(EObject view, TransformationCache cache) { if (view instanceof ViewExtensionDescription) { List<Category> categories = ((ViewExtensionDescription) view).getCategories(); categories.forEach(category -> category.getGroups().forEach(group -> { Optional<GroupValidationSetDescription> validationSetOptional = Optional.ofNullable(group.getValidationSet()); validationSetOptional.ifPresent(validationSet -> validationSet.getPropertyValidationRules().forEach(rule -> { List<WidgetDescription> processedTargets = new ArrayList<WidgetDescription>(); rule.getTargets().forEach(originalTarget -> { cache.getOutput(originalTarget).filter(WidgetDescription.class::isInstance).map(WidgetDescription.class::cast).map(target -> processedTargets.add(target)); }); rule.getTargets().clear(); rule.getTargets().addAll(processedTargets); })); })); } }
Source:
<code>public void isClientErrorShouldReturnFalseIfCustomPage200Matches() { CustomPage.Type type = CustomPage.Type.NOTFOUND_404; HttpMessage message = new HttpMessage(); message.getResponseHeader().setStatusCode(200); given(parent.isCustomPage(message, type)).willReturn(false); given(parent.isCustomPage(message, CustomPage.Type.OK_200)).willReturn(true); given(parent.getAnalyser()).willReturn(analyser); <START> given(parent.getAnalyser().isFileExist(message)).willReturn(true); <END> plugin.init(message, parent); boolean result = plugin.isClientError(message); assertThat(result, is(equalTo(false))); verify(parent).isCustomPage(message, CustomPage.Type.OK_200); }</code><technical_language>Change false? (Or set it?)</technical_language>

Target:
public void isClientErrorShouldReturnFalseIfCustomPage200Matches() { CustomPage.Type type = CustomPage.Type.NOTFOUND_404; HttpMessage message = new HttpMessage(); message.getResponseHeader().setStatusCode(200); given(parent.isCustomPage(message, type)).willReturn(false); given(parent.isCustomPage(message, CustomPage.Type.OK_200)).willReturn(true); given(parent.getAnalyser()).willReturn(analyser); plugin.init(message, parent); boolean result = plugin.isClientError(message); assertThat(result, is(equalTo(false))); verify(parent).isCustomPage(message, CustomPage.Type.OK_200); }
Source:
<code>public void accept(ServiceLocator serviceLocator) { logger.info("Loading topics metadata"); List<TopicName> topicsLeft = getTopics(); int initialTopicsCount = topicsLeft.size(); int retries = retryCount + 1; while (retries > 0) { retries--; <START> topicsLeft = topicsLeft.stream().filter(this::topicMetadataNotAvailable).collect(toList()); <END> if (!topicsLeft.isEmpty() && retries > 0) { waitBeforeNextRetry(); } } logResultInfo(topicsLeft, initialTopicsCount); }</code><technical_language>@dankraw I remember wondered concurrency of this task. Imo try parallel this stream 500 topics metadata download takes 100ms (max is 500ms) wait 50 seconds is short amount of time in startup phase</technical_language>

Target:
public void accept(ServiceLocator serviceLocator) { long start = System.currentTimeMillis(); logger.info("Loading topics metadata"); List<CachedTopic> topics = topicsCache.getTopics(); List<MetadataLoadingResult> allResults = loadMetadataForTopics(topics); logResultInfo(allResults, System.currentTimeMillis() - start); }
Source:
<code>private void createModel() { dataModel = new DataModelImpl(); dataObject = dataModel.addDataObject("Person1"); makeTheClassPersistable(dataObject); dataObject.addProperty("account balance", BigDecimal.class.getName()); dataObject.addProperty("salary", BigInteger.class.getName()); dataObject.addProperty("Married", Boolean.class.getName()); dataObject.addProperty("Children", Byte.class.getName()); <START> dataObject.addProperty("Sex", <END> Character.class.getName()); dataObject.addProperty("birth date", Date.class.getName()); dataObject.addProperty("Nose Size", Double.class.getName()); dataObject.addProperty("Waist Size", Float.class.getName()); dataObject.addProperty("Age", Integer.class.getName()); dataObject.addProperty("local date", LocalDate.class.getName()); dataObject.addProperty("local datetime", LocalDateTime.class.getName()); dataObject.addProperty("Seen Stars", Long.class.getName()); dataObject.addProperty("offset datetime", OffsetDateTime.class.getName()); dataObject.addProperty("Visited Countries", Short.class.getName()); dataObject.addProperty("name", String.class.getName()); dataObject.addProperty("married", boolean.class.getName()); dataObject.addProperty("children", byte.class.getName()); dataObject.addProperty("sex", char.class.getName()); dataObject.addProperty("nose size", double.class.getName()); dataObject.addProperty("waist size", float.class.getName()); dataObject.addProperty("age", int.class.getName()); dataObject.addProperty("seen stars", long.class.getName()); dataObject.addProperty("visited countries", short.class.getName()); dataObject.addProperty("address", NESTED_CLASSNAME); dataObject.addProperty("address list", NESTED_CLASSNAME, true); }</code><technical_language>Please turn constants reuse constants in rest of test</technical_language>

Target:
private void createModel() { dataModel = new DataModelImpl(); dataObject = dataModel.addDataObject("Person1"); Map<String, Object> params = new HashMap<String, Object>(); params.put("persistable", true); JPADomainHandler jpaDomainHandler = new JPADomainHandler(); jpaDomainHandler.setDefaultValues(dataObject, params); PropertyTypeFactoryImpl propertyTypeFactory = new PropertyTypeFactoryImpl(); List<PropertyType> basePropertyTypes = propertyTypeFactory.getBasePropertyTypes(); for (PropertyType baseProperty : basePropertyTypes) { dataObject.addProperty(baseProperty.getName(), baseProperty.getClassName()); } dataObject.addProperty("address", NESTED_CLASSNAME); dataObject.addProperty("address list", NESTED_CLASSNAME, true); }
Source:
<code>public BaublesGuiFactory() { <START> super(Baubles.MODID, getTitle()); <END> }</code><technical_language>put getAbridgedConfigPath here, call field "title" in createConfigGui. modid really. Example: <LINK_0></technical_language>

Target:
public BaublesGuiFactory() { super(Baubles.MODID, GuiConfig.getAbridgedConfigPath(Config.config.toString())); }
Source:
<code>public void init(IViewPart view) { updateEnablement(); view.addPropertyListener(new IPropertyListener() { public void propertyChanged(Object source, int propId) { updateEnablement(); } }); <START> ScriptConsole.addActiveConsoleObserver(new ActiveConsoleObserver() { <END> @Override protected void activeConsoleRunning(boolean running) { action.setEnabled(running); } }); }</code><technical_language>I prefer this ScriptConsole.getActive().addActiveConsoleObserver(). This allow observers console some shared data</technical_language>

Target:
public void init(IViewPart view) { updateEnablement(); view.addPropertyListener(this); ScriptConsoleManager.getInstance().addActiveConsoleObserver(this); }
Source:
<code>public void setup(OperatorContext context) { sleepMillis = context.getValue(Context.OperatorContext.SPIN_MILLIS); FileAccessFSImpl fAccessImpl = new TFileImpl.DTFileImpl(); <START> fAccessImpl.setBasePath(context.getValue(DAG.APPLICATION_PATH) + "/bucket_data"); <END> managedState.setFileAccess(fAccessImpl); managedState.setup(context); if (orderedOutput) { decisions = Maps.newLinkedHashMap(); } }</code><technical_language>this done partition-wise</technical_language>

Target:
public void setup(OperatorContext context) { FileAccessFSImpl fAccessImpl = new TFileImpl.DTFileImpl(); fAccessImpl.setBasePath(context.getValue(DAG.APPLICATION_PATH) + "/bucket_data"); managedState.setFileAccess(fAccessImpl); managedState.setup(context); if (preserveTupleOrder) { decisions = Maps.newLinkedHashMap(); } }
Source:
<code>public String readServerId() { if(SERVER_ID==null){ try{ File serverFile = serverIdFile(); if(!serverFile.exists()){ writeServerIdToDisk(UUIDUtil.uuid()); } <START> BufferedReader br = new BufferedReader(new FileReader(serverFile)); <END> SERVER_ID = br.readLine(); br.close(); Logger.debug(ServerAPIImpl.class, "ServerID: " + SERVER_ID); } catch(IOException ioe){ throw new DotStateException("Unable to read server id at " + serverIdFile() + " please make sure that the directory exists and is readable and writeable. If problems persist, try deleting the file. The system will recreate a new one on startup", ioe); } } return SERVER_ID; }</code><technical_language>![BLOCKER](<LINK_0> 'Severity: BLOCKER') Close this "BufferedReader" in a "finally" clause. [![rule](<LINK_1>](<LINK_2></technical_language>

Target:
public String readServerId() { BufferedReader br = null; FileReader reader = null; if(SERVER_ID==null){ try{ File serverFile = serverIdFile(); if(!serverFile.exists()){ writeServerIdToDisk(UUIDUtil.uuid()); } reader = new FileReader(serverFile); br = new BufferedReader(reader); SERVER_ID = br.readLine(); Logger.debug(ServerAPIImpl.class, "ServerID: " + SERVER_ID); } catch(IOException ioe){ throw new DotStateException("Unable to read server id at " + serverIdFile() + " please make sure that the directory exists and is readable and writeable. If problems" + " persist, try deleting the file. The system will recreate a new one on startup", ioe); } finally{ try { if (reader != null){ reader.close(); } if (br != null){ br.close(); } } catch (IOException e) { Logger.error(this.getClass(), e.getMessage()); } } } return SERVER_ID; }
Source:
<code>public void init() throws Exception { folder = TMP_FOLDER.newFolder(); file = new File(folder, "sample"); ftpServer = new FakeFtpServer(); ftpServer.setServerControlPort(0); FileSystem fileSystem = new UnixFakeFileSystem(); fileSystem.add(new FileEntry(file.getAbsolutePath(), TEST_STRING)); ftpServer.setFileSystem(fileSystem); ftpServer.addUserAccount(new UserAccount(USER, PWD, folder.getAbsolutePath())); ftpServer.start(); <START> Assert.assertTrue(ftpServer.isStarted()); <END> port = ftpServer.getServerControlPort(); }</code><technical_language>this false? if so, retry this check for started</technical_language>

Target:
public void init() throws Exception { folder = TMP_FOLDER.newFolder(); file = new File(folder, "sample"); ftpServer = new FakeFtpServer(); ftpServer.setServerControlPort(0); FileSystem fileSystem = new UnixFakeFileSystem(); fileSystem.add(new FileEntry(file.getAbsolutePath(), TEST_STRING)); ftpServer.setFileSystem(fileSystem); ftpServer.addUserAccount(new UserAccount(USER, PWD, folder.getAbsolutePath())); ftpServer.start(); Tasks.waitFor(true, new Callable<Boolean>() { @Override public Boolean call() throws Exception { return ftpServer.isStarted(); } }, 5, TimeUnit.SECONDS); port = ftpServer.getServerControlPort(); }
Source:
<code>public static <K, V> Set<K> toKeySet(AdvancedCacheLoader<K, V> acl, Predicate<? super K> filter) { if (acl == null) return Collections.emptySet(); return Flowable.fromPublisher(acl.publishEntries(filter, false, false)) <START> .map(MarshalledEntry::getKey) <END> .collectInto(new HashSet<K>(), Set::add).blockingGet(); }</code><technical_language>This class is public, need change backwards-compatible</technical_language>

Target:
public static <K, V> Set<K> toKeySet(AdvancedCacheLoader<K, V> acl, Predicate<? super K> filter) { if (acl == null) return Collections.emptySet(); return Flowable.fromPublisher(acl.publishKeys(filter)) .collectInto(new HashSet<K>(), Set::add).blockingGet(); }
Source:
<code>public void caretUpdate(CaretEvent e) { if (e.getMark() == e.getDot()) { this.clearHighlight(); } if (e.getSource() == asciiViewTextArea) { int startByte = e.getMark(); int endByte = e.getDot(); if (startByte > endByte) { int t = endByte; endByte = startByte; startByte = t; } int startRows = (startByte - (startByte % bytesPerLine)) / bytesPerLine; int endRows = (endByte - (endByte % bytesPerLine)) / bytesPerLine; startByte -= startRows; endByte -= endRows; if (asciiLastSelectionStart == startByte && asciiLastSelectionEnd == endByte) { return; } asciiLastSelectionStart = startByte; asciiLastSelectionEnd = endByte; this.setSelection(startByte, endByte); } else if (e.getSource() == hexViewTextArea) { int startByte = e.getMark(); int endByte = e.getDot(); if (startByte > endByte) { int t = endByte; endByte = startByte; startByte = t; } <START> int startRows = (startByte - (startByte % bytesPerLine)) / (3 * bytesPerLine); <END> int endRows = (endByte - (endByte % bytesPerLine)) / (3 * bytesPerLine); startByte -= startRows; startByte /= 3; endByte -= endRows; endByte /= 3; if (hexLastSelectionStart == startByte && hexLastSelectionEnd == endByte) { return; } hexLastSelectionStart = startByte; hexLastSelectionEnd = endByte; this.setSelection(startByte, endByte); } else { logger.log(Level.INFO, "Source of event was neither the ascii view or the hex view text area"); } }</code><technical_language>"3" a constant, in multiple places</technical_language>

Target:
public void caretUpdate(CaretEvent e) { if (e.getMark() == e.getDot()) { this.clearHighlight(); } if (e.getSource() == asciiViewTextArea) { int startByte = e.getMark(); int endByte = e.getDot(); if (startByte > endByte) { int t = endByte; endByte = startByte; startByte = t; } int startRows = (startByte - (startByte % bytesPerLine)) / bytesPerLine; int endRows = (endByte - (endByte % bytesPerLine)) / bytesPerLine; startByte -= startRows; endByte -= endRows; if (asciiLastSelectionStart == startByte && asciiLastSelectionEnd == endByte) { return; } asciiLastSelectionStart = startByte; asciiLastSelectionEnd = endByte; this.setSelection(startByte, endByte); } else if (e.getSource() == hexViewTextArea) { int startByte = e.getMark(); int endByte = e.getDot(); if (startByte > endByte) { int t = endByte; endByte = startByte; startByte = t; } int startRows = (startByte - (startByte % bytesPerLine)) / (CHAR_ARRAY_SIZE * bytesPerLine); int endRows = (endByte - (endByte % bytesPerLine)) / (CHAR_ARRAY_SIZE * bytesPerLine); startByte -= startRows; startByte /= CHAR_ARRAY_SIZE; endByte -= endRows; endByte /= CHAR_ARRAY_SIZE; if (hexLastSelectionStart == startByte && hexLastSelectionEnd == endByte) { return; } hexLastSelectionStart = startByte; hexLastSelectionEnd = endByte; this.setSelection(startByte, endByte); } else { logger.log(Level.INFO, "Source of event was neither the ascii view or the hex view text area"); } }
Source:
<code>private synchronized void drainQueueForRequests() { final RecordsRetrieved recordsToDeliver = peekNextResult(); if (requestedResponses.get() > 0 && recordsToDeliver != null) { lastEventDeliveryTime = Instant.now(); subscriber.onNext(recordsToDeliver); <START> if(!shouldDrainEventOnAck.get()) { <END> log.debug("{} : Notifier thread takes over the draining control. Queue Size : {}, Demand : {}", shardId, getRecordsResultQueue.size(), requestedResponses.get()); shouldDrainEventOnAck.set(true); } } else { if(shouldDrainEventOnAck.get()){ log.debug("{} : Publisher thread takes over the draining control. Queue Size : {}, Demand : {}", shardId, getRecordsResultQueue.size(), requestedResponses.get()); shouldDrainEventOnAck.set(false); } } }</code><technical_language>nit: missing space if (</technical_language>

Target:
private synchronized void drainQueueForRequests() { final RecordsRetrieved recordsToDeliver = peekNextResult(); if (requestedResponses.get() > 0 && recordsToDeliver != null) { lastEventDeliveryTime = Instant.now(); subscriber.onNext(recordsToDeliver); if (!shouldDrainEventOnlyOnAck.get()) { log.debug("{} : Notifier thread takes over the draining control. Queue Size : {}, Demand : {}", shardId, getRecordsResultQueue.size(), requestedResponses.get()); shouldDrainEventOnlyOnAck.set(true); } } else { if (shouldDrainEventOnlyOnAck.get()) { log.debug("{} : Publisher thread takes over the draining control. Queue Size : {}, Demand : {}", shardId, getRecordsResultQueue.size(), requestedResponses.get()); shouldDrainEventOnlyOnAck.set(false); } } }
Source:
<code>public void checkFind() { projectExplorer.waitItem(PROJECT_NAME_2); projectExplorer.openItemByPath( PROJECT_NAME_2 + "/src/main/java/org/eclipse/qa/examples/AppController.java"); <START> editor.clickOnItemInContextMenu(FIND); <END> editor.waitContextMenuIsNotPresent(); findText.waitFindTextMainFormIsOpen(); findText.typeTextIntoFindField("class"); findText.waitTextIntoFindField("class"); loader.waitOnClosed(); findText.waitPathIntoRootField("/" + PROJECT_NAME_2 + "/src/main/java/org/eclipse/qa/examples"); findText.clickOnSearchButtonMainForm(); findText.waitFindInfoPanelIsOpen(); findText.waitExpectedTextInFindInfoPanel("AppController.java"); }</code><technical_language>this delete necessary</technical_language>

Target:
public void checkFind() { projectExplorer.waitItem(PROJECT_NAME_2); projectExplorer.openItemByPath( PROJECT_NAME_2 + "/src/main/java/org/eclipse/qa/examples/AppController.java"); editor.openContextMenuInEditor(); editor.clickOnItemInContextMenu(FIND); editor.waitContextMenuIsNotPresent(); findText.waitFindTextMainFormIsOpen(); findText.typeTextIntoFindField("class"); findText.waitTextIntoFindField("class"); loader.waitOnClosed(); findText.waitPathIntoRootField("/" + PROJECT_NAME_2 + "/src/main/java/org/eclipse/qa/examples"); findText.clickOnSearchButtonMainForm(); findText.waitFindInfoPanelIsOpen(); findText.waitExpectedTextInFindInfoPanel("AppController.java"); }
Source:
<code><START> public void appendNewLine(String content) { <END> waitForElementByElement(sourceModeTextArea); sourceModeTextArea.sendKeys(Keys.ENTER); sourceModeTextArea.sendKeys(content); PageObjectLogging.log("appendNewLine", "text "+content+" added to the source mode in new line", true); }</code><technical_language>This reverted private</technical_language>

Target:
private void appendNewLine(String content) { waitForElementByElement(sourceModeTextArea); sourceModeTextArea.sendKeys(Keys.ENTER); sourceModeTextArea.sendKeys(content); PageObjectLogging.log("appendNewLine", "text "+content+" added to the source mode in new line", true); }
Source:
<code>public void createNetworkInterfaceCard() { final NetworkInterfaceCardApi nicApi = api.getNetworkInterfaceCardApi(resourcegroup); final NetworkInterfaceCardProperties networkInterfaceCardProperties = NetworkInterfaceCardProperties.create(null, null, null, Arrays.asList(IpConfiguration.create("myipconfig", null, null, null, IpConfigurationProperties.create(null, null, "Dynamic", IdReference.create(subnetID), null)) ) <START> ); <END> final Map<String, String> tags = ImmutableMap.of("jclouds", "livetest"); NetworkInterfaceCard nic = nicApi.createOrUpdate(NETWORKINTERFACECARD_NAME, LOCATION, networkInterfaceCardProperties, tags); assertEquals(nic.name(), NETWORKINTERFACECARD_NAME); assertEquals(nic.location(), LOCATION); assertTrue(nic.properties().ipConfigurations().size() > 0); assertEquals(nic.properties().ipConfigurations().get(0).name(), "myipconfig"); assertEquals(nic.properties().ipConfigurations().get(0).properties().privateIPAllocationMethod(), "Dynamic"); assertEquals(nic.properties().ipConfigurations().get(0).properties().subnet().id(), subnetID); assertEquals(nic.tags().get("jclouds"), "livetest"); }</code><technical_language>Good candidates builders</technical_language>

Target:
public void createNetworkInterfaceCard() { final NetworkInterfaceCardApi nicApi = api.getNetworkInterfaceCardApi(resourcegroup); final NetworkInterfaceCardProperties networkInterfaceCardProperties = NetworkInterfaceCardProperties.builder().ipConfigurations( Arrays.asList(IpConfiguration.builder() .name("myipconfig") .properties(IpConfigurationProperties.builder() .privateIPAllocationMethod("Dynamic") .subnet(IdReference.create(subnetID)).build() ).build() )).build(); final Map<String, String> tags = ImmutableMap.of("jclouds", "livetest"); NetworkInterfaceCard nic = nicApi.createOrUpdate(NETWORKINTERFACECARD_NAME, LOCATION, networkInterfaceCardProperties, tags); assertEquals(nic.name(), NETWORKINTERFACECARD_NAME); assertEquals(nic.location(), LOCATION); assertTrue(nic.properties().ipConfigurations().size() > 0); assertEquals(nic.properties().ipConfigurations().get(0).name(), "myipconfig"); assertEquals(nic.properties().ipConfigurations().get(0).properties().privateIPAllocationMethod(), "Dynamic"); assertEquals(nic.properties().ipConfigurations().get(0).properties().subnet().id(), subnetID); assertEquals(nic.tags().get("jclouds"), "livetest"); }
Source:
<code>public boolean equals (Object obj) { if (obj == null) return false; if (obj == this) return true; if (obj instanceof AtomicTransaction) { try { AtomicTransaction tx = (AtomicTransaction) obj; ControlWrapper txControl = tx._theAction; if ((_theAction == null) && (txControl == null)) { return true; } <START> else if ((_theAction != null) && (txControl==null)) { <END> return false; } else { return _theAction.equals(txControl); } } catch (Exception e) { } } return false; }</code><technical_language>is problem addressing here? this instead check for null _theAction, _theAction.equals(txControl) check handles null txControl case: else if (_theAction == null) return false;</technical_language>

Target:
public boolean equals (Object obj) { if (obj == null) return false; if (obj == this) return true; if (obj instanceof AtomicTransaction) { try { AtomicTransaction tx = (AtomicTransaction) obj; ControlWrapper txControl = tx._theAction; if ((_theAction == null) && (txControl == null)) { return true; } else if (_theAction == null) { return false; } else { return _theAction.equals(txControl); } } catch (Exception e) { } } return false; }
Source:
<code>public void getFileName_ReturnsFileNameForSVG() { <START> Embedding embedding = new Embedding("image/svg+xml", "some data", null); <END> String fileName = embedding.getFileName(); assertThat(fileName).isEqualTo("embedding_-642587818.svg"); }</code><technical_language>consider leave constructor add new</technical_language>

Target:
public void getFileName_ReturnsFileNameForSVG() { Embedding embedding = new Embedding("image/svg+xml", "some data"); String fileName = embedding.getFileName(); assertThat(fileName).isEqualTo("embedding_-642587818.svg"); }
Source:
<code>public Properties getPropertiesForAnnotation(TestPropertyOverride annotation) { Properties properties = new Properties(); if (annotation == null) { return properties; } for (String fileName : annotation.propertyFiles()) { try { InputStream propFileStream = this.getClass().getClassLoader().getResourceAsStream(fileName); if(propFileStream != null) { properties.load(propFileStream); } else { throw new FileNotFoundException(fileName); } <START> properties.load(propFileStream); <END> } catch (IOException e) { throw new TestConfigException("Failed to load property file from classpath", e); } } for (String override : annotation.value()) { String[] parts = override.split("=", 2); if (parts.length < 2) { throw new TestConfigException("Error parsing TestPropertyOverride for: " + annotation.value() + " Please ensure you are specifying overrides in the form \"key=value\""); } properties.put(parts[0], parts[1]); } return properties; }</code><technical_language>duplicate load of file</technical_language>

Target:
public Properties getPropertiesForAnnotation(TestPropertyOverride annotation) { Properties properties = new Properties(); if (annotation == null) { return properties; } for (String fileName : annotation.propertyFiles()) { try { InputStream propFileStream = this.getClass().getClassLoader().getResourceAsStream(fileName); if(propFileStream != null) { properties.load(propFileStream); } else { throw new FileNotFoundException(fileName); } } catch (IOException e) { throw new TestConfigException("Failed to load property file from classpath", e); } } for (String override : annotation.value()) { String[] parts = override.split("=", 2); if (parts.length < 2) { throw new TestConfigException("Error parsing TestPropertyOverride for: " + annotation.value() + " Please ensure you are specifying overrides in the form \"key=value\""); } properties.put(parts[0], parts[1]); } return properties; }
Source:
<code>public void stop() { <START> running = false; <END> }</code><technical_language>executorService.shutdown() well</technical_language>

Target:
public void stop() { running = false; executorService.shutdown(); }
Source:
<code>public void generateReport_OnInvalidPath_ThrowsException() { <START> setUpWithJson(SAMPLE_JSON); <END> page = new FeaturesOverviewPage(reportResult, configuration) { @Override public String getWebPage() { return StringUtils.EMPTY; } }; thrown.expect(ValidationException.class); Deencapsulation.invoke(page, "generatePage"); }</code><technical_language>needed copy again</technical_language>

Target:
public void generateReport_OnInvalidPath_ThrowsException() { page = new FeaturesOverviewPage(reportResult, configuration) { @Override public String getWebPage() { return StringUtils.EMPTY; } }; thrown.expect(ValidationException.class); Deencapsulation.invoke(page, "generatePage"); }
Source:
<code>private void createCommentAnnotations(IDocument document, AnnotationModelEvent event, IComment comment) { int startLine = 0; int endLine = 0; for (ILocation location : comment.getLocations()) { if (location instanceof ILineLocation) { ILineLocation lineLocation = (ILineLocation) location; try { startLine = lineLocation.getRangeMin(); endLine = lineLocation.getRangeMax(); int offset = 0; int length = 0; if (startLine != 0) { offset = document.getLineOffset(startLine - 1); if (endLine == 0) { endLine = startLine; } length = Math.max(document.getLineOffset(endLine - 1) - offset, 0); } length = Math.max(1, length); <START> CommentAnnotation ca = new CommentAnnotation(offset, length, comment); <END> if (!annotations.contains(ca)) { annotations.add(ca); event.annotationAdded(ca); } } catch (BadLocationException e) { StatusHandler.log(new Status(IStatus.ERROR, ReviewsUiPlugin.PLUGIN_ID, "Unable to add annotation.", e)); } } } }</code><technical_language>a LinkedHashSet preserve order</technical_language>

Target:
private void createCommentAnnotations(IDocument document, AnnotationModelEvent event, IComment comment) { int startLine = 0; int endLine = 0; for (ILocation location : comment.getLocations()) { if (location instanceof ILineLocation) { ILineLocation lineLocation = (ILineLocation) location; try { startLine = lineLocation.getRangeMin(); endLine = lineLocation.getRangeMax(); int offset = 0; int length = 0; if (startLine != 0) { offset = document.getLineOffset(startLine - 1); if (endLine == 0) { endLine = startLine; } length = Math.max(document.getLineOffset(endLine - 1) - offset, 0); } length = Math.max(1, length); CommentAnnotation ca = new CommentAnnotation(offset, length, comment); if (annotations.add(ca)) { event.annotationAdded(ca); } } catch (BadLocationException e) { StatusHandler.log(new Status(IStatus.ERROR, ReviewsUiPlugin.PLUGIN_ID, "Unable to add annotation.", e)); } } } }
Source:
<code>public Optional<PlanNodeStatsEstimate> doCalculate(RowNumberNode node, StatsProvider statsProvider, Lookup lookup, Session session, TypeProvider types) { PlanNodeStatsEstimate sourceStats = statsProvider.getStats(node.getSource()); if (sourceStats.isOutputRowCountUnknown()) { return Optional.of(PlanNodeStatsEstimate.unknown()); } double partitionCount = 1; for (Symbol groupBySymbol : node.getPartitionBy()) { SymbolStatsEstimate symbolStatistics = sourceStats.getSymbolStatistics(groupBySymbol); int nullRow = (symbolStatistics.getNullsFraction() == 0.0) ? 0 : 1; partitionCount *= symbolStatistics.getDistinctValuesCount() + nullRow; } <START> partitionCount = min(sourceStats.getOutputRowCount(), partitionCount); <END> if (isNaN(partitionCount)) { return Optional.of(PlanNodeStatsEstimate.unknown()); } double sourceRowsCount = sourceStats.getOutputRowCount(); double rowsPerPartition = sourceRowsCount / partitionCount; if (node.getMaxRowCountPerPartition().isPresent()) { rowsPerPartition = min(rowsPerPartition, node.getMaxRowCountPerPartition().get()); } double outputRowsCount = partitionCount * rowsPerPartition; return Optional.of(PlanNodeStatsEstimate.buildFrom(sourceStats) .setOutputRowCount(outputRowsCount) .addSymbolStatistics(node.getRowNumberSymbol(), SymbolStatsEstimate.builder() .setLowValue(0) .setHighValue(rowsPerPartition) .setDistinctValuesCount(rowsPerPartition) .setNullsFraction(0.0) .setAverageRowSize(BIGINT.getFixedSize()) .build()) .build()); }</code><technical_language>This formula assumes correlation partitioned-by columns, right</technical_language>

Target:
public Optional<PlanNodeStatsEstimate> doCalculate(RowNumberNode node, StatsProvider statsProvider, Lookup lookup, Session session, TypeProvider types) { PlanNodeStatsEstimate sourceStats = statsProvider.getStats(node.getSource()); if (sourceStats.isOutputRowCountUnknown()) { return Optional.empty(); } double sourceRowsCount = sourceStats.getOutputRowCount(); double partitionCount = 1; for (Symbol groupBySymbol : node.getPartitionBy()) { SymbolStatsEstimate symbolStatistics = sourceStats.getSymbolStatistics(groupBySymbol); int nullRow = (symbolStatistics.getNullsFraction() == 0.0) ? 0 : 1; partitionCount *= symbolStatistics.getDistinctValuesCount() + nullRow; } partitionCount = min(sourceRowsCount, partitionCount); if (isNaN(partitionCount)) { return Optional.empty(); } double rowsPerPartition = sourceRowsCount / partitionCount; if (node.getMaxRowCountPerPartition().isPresent()) { rowsPerPartition = min(rowsPerPartition, node.getMaxRowCountPerPartition().get()); } double outputRowsCount = sourceRowsCount; if (node.getMaxRowCountPerPartition().isPresent()) { outputRowsCount = partitionCount * rowsPerPartition; } return Optional.of(PlanNodeStatsEstimate.buildFrom(sourceStats) .setOutputRowCount(outputRowsCount) .addSymbolStatistics(node.getRowNumberSymbol(), SymbolStatsEstimate.builder() .setLowValue(1) .setDistinctValuesCount(rowsPerPartition) .setNullsFraction(0.0) .setAverageRowSize(BIGINT.getFixedSize()) .build()) .build()); }
Source:
<code>public Host addCertificateInfo(Host host) { <START> VdcQueryReturnValue getVdsCertificateSubjectResult = <END> runQuery(VdcQueryType.GetVdsCertificateSubjectByVdsId, new GetVdsByVdsIdParameters(asGuid(host.getId()))); if (getVdsCertificateSubjectResult != null && getVdsCertificateSubjectResult.getSucceeded() && getVdsCertificateSubjectResult.getReturnValue() != null) { String subject = getVdsCertificateSubjectResult.getReturnValue().toString(); if (subject != null){ host.setCertificate(new Certificate()); host.getCertificate().setSubject(subject); host.getCertificate().setOrganization(subject.split(",")[0].replace("O=", "")); } } else { LOG.error("Could not fetch certificate info for host " + host.getId()); } return host; }</code><technical_language>bad variable name getVdsCertificateSubjectResult</technical_language>

Target:
public Host addCertificateInfo(Host host) { VdcQueryReturnValue result = runQuery(VdcQueryType.GetVdsCertificateSubjectByVdsId, new GetVdsByVdsIdParameters(asGuid(host.getId()))); if (result != null && result.getSucceeded() && result.getReturnValue() != null) { String subject = result.getReturnValue().toString(); if (subject != null){ host.setCertificate(new Certificate()); host.getCertificate().setSubject(subject); host.getCertificate().setOrganization(subject.split(",")[0].replace("O=", "")); } } else { LOG.error("Could not fetch certificate info for host " + host.getId()); } return host; }
Source:
<code>public void testSubquerySimplification() throws Exception { Client client = getClient(); String sql; client.callProcedure("@AdHoc", "insert into R5 values (1,2,3)"); client.callProcedure("@AdHoc", "insert into R5 values (4,5,6)"); sql = "select * from (select C as D, D from R5) T;"; <START> validateTableOfLongs(client, sql, new long[][] {{2, 3}, {5,6}}); <END> sql = "select * from (select A as C, C as D, D from R5) T where C = 1;"; validateTableOfLongs(client, sql, new long[][] {{1, 2, 3}}); sql = "select * from (select A + C + D ACD from R5) T where ACD = 6;"; validateTableOfLongs(client, sql, new long[][] {{6}}); }</code><technical_language>other tests in vein? basic idea is try trick planner producing invalid plan. curious levels of nested queries: SQL select * (select * (select * (select * t))) In this case, optimize deeply nested up, able convert this into: SQL select * t; Is right</technical_language>

Target:
public void testSubquerySimplification() throws Exception { Client client = getClient(); String sql; client.callProcedure("@AdHoc", "insert into R5 values (1,2,3)"); client.callProcedure("@AdHoc", "insert into R5 values (4,5,6)"); sql = "select * from (select C as D, D from R5) T;"; validateTableOfLongs(client, sql, new long[][] {{2, 3}, {5,6}}); sql = "select * from (select A as C, C as D, D from R5) T where C = 1;"; validateTableOfLongs(client, sql, new long[][] {{1, 2, 3}}); sql = "select a from (select * from (select d as a, c, a as d from R5) T1) T2;"; validateTableOfLongs(client, sql, new long[][] {{3}, {6}}); sql = "select * from (select A + C + D ACD from R5) T where ACD = 6;"; validateTableOfLongs(client, sql, new long[][] {{6}}); sql = "select * from (select A + C + D ACD, A*C*D ACD from R5) T;"; validateTableOfLongs(client, sql, new long[][] {{6, 6}, {15, 120}}); sql = "select * from (select * from (select * from R5) T1) T2;"; validateTableOfLongs(client, sql, new long[][] {{1,2,3}, {4,5,6}}); sql = "select MAX(C), D from (select A C, C D from R5) T1 GROUP BY D HAVING MAX(C) > 1;"; validateTableOfLongs(client, sql, new long[][] {{4,5}}); }
Source:
<code>private void failBootstrapLoad(WarehouseInstance.Tuple tuple, int failAfterNumTables) throws Throwable { BehaviourInjection<CallerArguments, Boolean> callerVerifier = new BehaviourInjection<CallerArguments, Boolean>() { int cntTables = 0; @Nullable @Override public Boolean apply(@Nullable CallerArguments args) { <START> cntTables++; <END> if (args.dbName.equalsIgnoreCase(replicatedDbName) && cntTables > failAfterNumTables) { injectionPathCalled = true; LOG.warn("Verifier - DB : " + args.dbName + " TABLE : " + args.tblName); return false; } return true; } }; InjectableBehaviourObjectStore.setAlterTableModifier(callerVerifier); try { replica.loadFailure(replicatedDbName, tuple.dumpLocation); callerVerifier.assertInjectionsPerformed(true, false); } finally { InjectableBehaviourObjectStore.resetAlterTableModifier(); } }</code><technical_language>This stub called multiple times table is invoked methods in InjectableBehaviourObjectStore. Need increment count if encounter a new table</technical_language>

Target:
private void failBootstrapLoad(WarehouseInstance.Tuple tuple, int failAfterNumTables) throws Throwable { BehaviourInjection<CallerArguments, Boolean> callerVerifier = new BehaviourInjection<CallerArguments, Boolean>() { int cntTables = 0; String prevTable = null; @Nullable @Override public Boolean apply(@Nullable CallerArguments args) { if (prevTable == null || !prevTable.equalsIgnoreCase(args.tblName)) { cntTables++; } prevTable = args.tblName; if (args.dbName.equalsIgnoreCase(replicatedDbName) && cntTables > failAfterNumTables) { injectionPathCalled = true; LOG.warn("Verifier - DB : " + args.dbName + " TABLE : " + args.tblName); return false; } return true; } }; InjectableBehaviourObjectStore.setAlterTableModifier(callerVerifier); try { replica.loadFailure(replicatedDbName, tuple.dumpLocation); callerVerifier.assertInjectionsPerformed(true, false); } finally { InjectableBehaviourObjectStore.resetAlterTableModifier(); } }
Source:
<code>protected int doWork() { IOUtil.assertFileIsReadable(INPUT); IOUtil.assertFileIsReadable(SEQUENCE_DICTIONARY); IOUtil.assertFileIsReadable(CHAIN); IOUtil.assertFileIsWritable(OUTPUT); final LiftOver liftOver = new LiftOver(CHAIN); liftOver.setLiftOverMinMatch(MIN_LIFTOVER_PCT); final IntervalList fromIntervals = IntervalList.fromFile(INPUT); <START> final SAMFileHeader toHeader = SamReaderFactory.makeDefault().open(SEQUENCE_DICTIONARY).getFileHeader(); <END> liftOver.validateToSequences(toHeader.getSequenceDictionary()); final IntervalList toIntervals = new IntervalList(toHeader); boolean anyFailed = false; for (final Interval fromInterval : fromIntervals) { final Interval toInterval = liftOver.liftOver(fromInterval); if (toInterval != null) { toIntervals.add(toInterval); } else { anyFailed = true; LOG.warn("Liftover failed for ", fromInterval, "(len ", fromInterval.length(), ")"); final List<LiftOver.PartialLiftover> partials = liftOver.diagnosticLiftover(fromInterval); for (final LiftOver.PartialLiftover partial : partials) { LOG.info(partial); } } } toIntervals.sorted(); toIntervals.write(OUTPUT); return anyFailed ? 1 : 0; }</code><technical_language>is a method get header leaving open file handle</technical_language>

Target:
protected int doWork() { IOUtil.assertFileIsReadable(INPUT); IOUtil.assertFileIsReadable(SEQUENCE_DICTIONARY); IOUtil.assertFileIsReadable(CHAIN); IOUtil.assertFileIsWritable(OUTPUT); final LiftOver liftOver = new LiftOver(CHAIN); liftOver.setLiftOverMinMatch(MIN_LIFTOVER_PCT); final IntervalList fromIntervals = IntervalList.fromFile(INPUT); final SAMFileHeader toHeader = SamReaderFactory.makeDefault().getFileHeader(SEQUENCE_DICTIONARY); liftOver.validateToSequences(toHeader.getSequenceDictionary()); final IntervalList toIntervals = new IntervalList(toHeader); boolean anyFailed = false; for (final Interval fromInterval : fromIntervals) { final Interval toInterval = liftOver.liftOver(fromInterval); if (toInterval != null) { toIntervals.add(toInterval); } else { anyFailed = true; LOG.warn("Liftover failed for ", fromInterval, "(len ", fromInterval.length(), ")"); final List<LiftOver.PartialLiftover> partials = liftOver.diagnosticLiftover(fromInterval); for (final LiftOver.PartialLiftover partial : partials) { LOG.info(partial); } } } toIntervals.sorted(); toIntervals.write(OUTPUT); return anyFailed ? 1 : 0; }
Source:
<code><START> private Pair<Double, PointSensitivityBuilder> compositionFactorAndSensitivityNonCutoff() { <END> if (nextFixing.isBefore(lastFixingNonCutoff)) { LocalDate startDate = index.calculateEffectiveFromFixing(nextFixing); LocalDate endDate = index.calculateMaturityFromEffective(index .calculateEffectiveFromFixing(lastFixingNonCutoff)); double accrualFactor = index.getDayCount().yearFraction(startDate, endDate); double rate = provider.overnightIndexRatePeriod(index, startDate, endDate); PointSensitivityBuilder rateSensitivity = provider.overnightIndexRatePeriodSensitivity(index, startDate, endDate); rateSensitivity = rateSensitivity.multipliedBy(accrualFactor); return Pair.of(1.0d + accrualFactor * rate, rateSensitivity); } return Pair.of(1.0d, PointSensitivityBuilder.none()); }</code><technical_language>ObjectDoublePair similar methods for performance (one object boxing)</technical_language>

Target:
private ObjectDoublePair<PointSensitivityBuilder> compositionFactorAndSensitivityNonCutoff() { if (nextFixing.isBefore(lastFixingNonCutoff)) { LocalDate startDate = index.calculateEffectiveFromFixing(nextFixing); LocalDate endDate = index.calculateMaturityFromEffective( index.calculateEffectiveFromFixing(lastFixingNonCutoff)); double accrualFactor = index.getDayCount().yearFraction(startDate, endDate); double rate = provider.overnightIndexRatePeriod(index, startDate, endDate); PointSensitivityBuilder rateSensitivity = provider.overnightIndexRatePeriodSensitivity(index, startDate, endDate); rateSensitivity = rateSensitivity.multipliedBy(accrualFactor); return ObjectDoublePair.of(rateSensitivity, 1.0d + accrualFactor * rate); } return ObjectDoublePair.of(PointSensitivityBuilder.none(), 1.0d); }
Source:
<code>protected void run() throws Exception { if (all) { Map<String, Ref> allRefs = db.getRefDatabase().getRefs(ALL); for (final Ref r : allRefs.values()) { <START> ObjectId objectId = r.getObjectId(); outw.println(objectId != null ? objectId.name() : r.getName()); <END> } } else { if (verify && commits.size() > 1) { throw new CmdLineException(CLIText.get().needSingleRevision); } for (final ObjectId o : commits) { outw.println(o.name()); } } }</code><technical_language>getRefs skips dangling symrefs, r.getObjectId() null. This error out: ObjectId id = r.getObjectId(); if (id == null) { throw new AssertionError( String.format("getRefs returned unresolved ref %s", r)); } outw.println(id.name());</technical_language>

Target:
protected void run() throws Exception { if (all) { Map<String, Ref> allRefs = db.getRefDatabase().getRefs(ALL); for (final Ref r : allRefs.values()) { ObjectId objectId = r.getObjectId(); assert objectId != null; outw.println(objectId.name()); } } else { if (verify && commits.size() > 1) { throw new CmdLineException(CLIText.get().needSingleRevision); } for (final ObjectId o : commits) { outw.println(o.name()); } } }
Source:
<code>public Config createConfig(Map<String, Object> configInput) throws IOException { <START> return loader.loadString(mapper.writeValueAsString(configInput)).toConfig(configFactory); <END> }</code><technical_language>this code create Config instance: import static io.digdag.client.DigdagClient.objectMapper; Config static newConfig() { return new ConfigFactory(objectMapper()).create() } ... import static XyzUtils.newConfig; return newConfig() .set("host", "foobar1.org"). .set("port", 6543). .set("user", "user1");</technical_language>

Target:
public Config createConfig(Map<String, Object> configInput) throws IOException { return configFactory.create(configInput); }
Source:
<code>protected void updateCpuPinningVisibility() { if (getModel().getIsAutoAssign().getEntity() == null) { return; } if (getModel().getSelectedCluster() != null) { boolean isLocalSD = getModel().getSelectedDataCenter() != null && getModel().getSelectedDataCenter().isLocal(); boolean hasCpuPinning = Boolean.FALSE.equals(getModel().getIsAutoAssign().getEntity()) || isLocalSD; <START> getModel().getCpuPinning().setIsChangeable(hasCpuPinning); <END> if (!hasCpuPinning) { getModel().getCpuPinning().setChangeProhibitionReason(constants.cpuPinningUnavailable()); } getModel().getCpuPinning().setIsChangeable(hasCpuPinning); } }</code><technical_language>#836</technical_language>

Target:
protected void updateCpuPinningVisibility() { if (getModel().getIsAutoAssign().getEntity() == null) { return; } if (getModel().getSelectedCluster() != null) { boolean isLocalSD = getModel().getSelectedDataCenter() != null && getModel().getSelectedDataCenter().isLocal(); boolean hasCpuPinning = Boolean.FALSE.equals(getModel().getIsAutoAssign().getEntity()) || isLocalSD; getModel().getCpuPinning().setIsChangeable(hasCpuPinning); if (!hasCpuPinning) { getModel().getCpuPinning().setChangeProhibitionReason(constants.cpuPinningUnavailable()); } } }