auphong2707/dl4se-code-review-dataset huggingface dataset:
Source:
<code><START> public default void close() throws Exception { <END> for (AutoCloseable closeableStep : TraversalHelper.getStepsOfAssignableClassRecursively(AutoCloseable.class, asAdmin())) { closeableStep.close(); } }</code><technical_language>This is bad. Steps TraversalParents responsible for propagating operations below. I do following: // Traversal.close() for(final Step<?,?> step : this.getSteps()) { if(step instanceof AutoCloseable) step.close(); } Next, I TraversalParent extend AutoCloseable default close() method being: // TraversalParent.close() for(final Traversal.Admin<?,?> traversal : this.getLocalChildren()) { traversal.close() } for(final Traversal.Admin<?,? traversal: this.getGlobalChildren()) { traversal.close(); }</technical_language>

Target:
public default void close() throws Exception { for(final Step<?,?> step : this.asAdmin().getSteps()) { if(step instanceof AutoCloseable) ((AutoCloseable) step).close(); } }
Source:
<code>static void tintResources(MainActivity mainActivity) { String primaryColorOverride = getPrimaryColorForDisplay(mainActivity); <START> if (primaryColorOverride.equals("#4caf50")) { <END> return; } int primaryColor = Color.parseColor(primaryColorOverride); ImageView launcherButton = (ImageView) mainActivity.findViewById(R.id.launcherButton); launcherButton.setColorFilter(primaryColor); mainActivity.findViewById(R.id.main_kissbar).setBackgroundColor(primaryColor); }</code><technical_language>special "#4caf50" exposed a class-wide constant that</technical_language>

Target:
static void tintResources(MainActivity mainActivity) { String primaryColorOverride = getPrimaryColor(mainActivity); if (primaryColorOverride.equals(DEFAULT_GREEN)) { return; } int primaryColor = Color.parseColor(primaryColorOverride); ImageView launcherButton = (ImageView) mainActivity.findViewById(R.id.launcherButton); launcherButton.setColorFilter(primaryColor); mainActivity.findViewById(R.id.main_kissbar).setBackgroundColor(primaryColor); }
Source:
<code>private void logoutIfNeeded() throws InterruptedException { <START> if (isViewDisplayed(getViewById(R.id.list_root)) == false) { <END> return; } loadSettingsFromNotesList(); onView(withId(R.id.preferences_container)).perform(swipeUp()); selectSettingsOption(R.string.log_out, logoutPosition); waitForViewMatching(withId(R.id.button_login), 1000); }</code><technical_language>suggestion if (!isViewDisplayed(getViewById(R.id.list_root))) { simplify !isViewDisplayed(getViewById(R.id.list_root)) isViewDisplayed(getViewById(R.id.list_root)) == false</technical_language>

Target:
private void logoutIfNeeded() { if (!isViewDisplayed(getViewById(R.id.list_root))) { return; } loadSettingsFromNotesList(); onView(withId(R.id.preferences_container)).perform(swipeUp()); selectSettingsOption(R.string.log_out, logoutPosition); waitForViewMatching(withId(R.id.button_login), 1000); }
Source:
<code>public void testGettingImagesFromDockerHub() { final ApiClient webClient = getWebClient(USER_2_USERNAME, testingPostgres); WorkflowsApi workflowsApi = new WorkflowsApi(webClient); final io.dockstore.openapi.client.ApiClient openAPIClient = getOpenAPIWebClient(USER_2_USERNAME, testingPostgres); Ga4Ghv20Api ga4Ghv20Api = new Ga4Ghv20Api(openAPIClient); WorkflowVersion version = snapshotWorkflowVersion(workflowsApi, "dockstore-testing/broad-prod-wgs-germline-snps-indels", DescriptorType.WDL.toString(), "/JointGenotypingWf.wdl", "1.1.2"); <START> WorkflowVersion version2 = snapshotWorkflowVersion(workflowsApi, "NatalieEO/broad-prod-wgs-germline-snps-indels", DescriptorType.WDL.toString(), "/JointGenotypingWf.wdl", "1.1.2"); <END> version.getImages(); assertEquals("Should 10 images in this workflow", 10, version.getImages().size()); verifyImageChecksumsAreSaved(version); List<ToolVersion> versions = ga4Ghv20Api.toolsIdVersionsGet("#workflow/github.com/dockstore-testing/broad-prod-wgs-germline-snps-indels"); verifyTRSImageConversion(versions, "1.1.2", 10); }</code><technical_language>Consider putting this dockstore-testing</technical_language>

Target:
public void testGettingImagesFromDockerHub() { final ApiClient webClient = getWebClient(USER_2_USERNAME, testingPostgres); WorkflowsApi workflowsApi = new WorkflowsApi(webClient); final io.dockstore.openapi.client.ApiClient openAPIClient = getOpenAPIWebClient(USER_2_USERNAME, testingPostgres); Ga4Ghv20Api ga4Ghv20Api = new Ga4Ghv20Api(openAPIClient); WorkflowVersion version = snapshotWorkflowVersion(workflowsApi, "dockstore-testing/broad-prod-wgs-germline-snps-indels", DescriptorType.WDL.toString(), "/JointGenotypingWf.wdl", "1.1.2"); assertEquals("Should 10 images in this workflow", 10, version.getImages().size()); verifyImageChecksumsAreSaved(version); List<ToolVersion> versions = ga4Ghv20Api.toolsIdVersionsGet("#workflow/github.com/dockstore-testing/broad-prod-wgs-germline-snps-indels"); verifyTRSImageConversion(versions, "1.1.2", 10); }
Source:
<code><START> public void rollback() { <END> if (connection == null) { throw new IllegalStateException(); } try { connection.commit(); } finally { connection.close(); } }</code><technical_language>body extracted commit() method avoid code duplication</technical_language>

Target:
public void rollback() { endTransaction(false); }
Source:
<code>private static <T extends EntityResponse> T waitFor(InvokeFuture<T> future) throws EntityException { <START> boolean interrupted = false; <END> try { while (true) { try { return future.get(); } catch (InterruptedException e) { interrupted = true; } } } finally { if (interrupted) { Thread.currentThread().interrupt(); } } }</code><technical_language>code boolean interrupted = Thread.interrupted() is a initialization here</technical_language>

Target:
private static <T extends EntityResponse> T waitFor(InvokeFuture<T> future) throws EntityException { boolean interrupted = Thread.interrupted(); try { while (true) { try { return future.get(); } catch (InterruptedException e) { interrupted = true; } } } finally { if (interrupted) { Thread.currentThread().interrupt(); } } }
Source:
<code>public void endTaskStep(Guid stepId, JobExecutionStatus exitStatus) { try { if (stepId != null) { Step step = jobRepository.getStep(stepId); if (step != null) { <START> step.setProgress(100); <END> step.markStepEnded(exitStatus); jobRepository.updateStep(step); } } } catch (Exception e) { log.error("Failed to terminate step '{}' with status '{}': {}", stepId, exitStatus, e.getMessage()); log.debug("Exception", e); } }</code><technical_language>pls avoid magic numbers</technical_language>

Target:
public void endTaskStep(Guid stepId, JobExecutionStatus exitStatus) { try { if (stepId != null) { Step step = jobRepository.getStep(stepId); if (step != null) { step.markStepEnded(exitStatus); jobRepository.updateStep(step); } } } catch (Exception e) { log.error("Failed to terminate step '{}' with status '{}': {}", stepId, exitStatus, e.getMessage()); log.debug("Exception", e); } }
Source:
<code>public boolean checkAccess(OzoneObj ozObject, RequestContext context) throws OMException { Objects.requireNonNull(ozObject); Objects.requireNonNull(context); Objects.requireNonNull(context.getClientUgi()); String volume = ozObject.getVolumeName(); String bucket = ozObject.getBucketName(); String keyName = ozObject.getKeyName(); metadataManager.getLock().acquireBucketLock(volume, bucket); try { validateBucket(volume, bucket); String objectKey = metadataManager.getOzoneKey(volume, bucket, keyName); OmKeyInfo keyInfo = metadataManager.getKeyTable().get(objectKey); if (keyInfo == null) { objectKey = OzoneFSUtils.addTrailingSlashIfNeeded(objectKey); keyInfo = metadataManager.getKeyTable().get(objectKey); if(keyInfo == null) { keyInfo = metadataManager.getOpenKeyTable().get(objectKey); if (keyInfo == null) { throw new OMException("Key not found, checkAccess failed. Key:" + objectKey, KEY_NOT_FOUND); } } } <START> boolean hasAccess = OzoneUtils.checkAclRight(keyInfo.getAcls(), context); <END> LOG.debug("user:{} has access rights for key:{} :{} ", context.getClientUgi(), ozObject.getKeyName(), hasAccess); return hasAccess; } catch (IOException ex) { if(ex instanceof OMException) { throw (OMException) ex; } LOG.error("CheckAccess operation failed for key:{}/{}/{}", volume, bucket, keyName, ex); throw new OMException("Check access operation failed for " + "key:" + keyName, ex, INTERNAL_ERROR); } finally { metadataManager.getLock().releaseBucketLock(volume, bucket); } }</code><technical_language>whitespace:end of line</technical_language>

Target:
public boolean checkAccess(OzoneObj ozObject, RequestContext context) throws OMException { Objects.requireNonNull(ozObject); Objects.requireNonNull(context); Objects.requireNonNull(context.getClientUgi()); String volume = ozObject.getVolumeName(); String bucket = ozObject.getBucketName(); String keyName = ozObject.getKeyName(); metadataManager.getLock().acquireLock(BUCKET_LOCK, volume, bucket); try { validateBucket(volume, bucket); String objectKey = metadataManager.getOzoneKey(volume, bucket, keyName); OmKeyInfo keyInfo = metadataManager.getKeyTable().get(objectKey); if (keyInfo == null) { objectKey = OzoneFSUtils.addTrailingSlashIfNeeded(objectKey); keyInfo = metadataManager.getKeyTable().get(objectKey); if(keyInfo == null) { keyInfo = metadataManager.getOpenKeyTable().get(objectKey); if (keyInfo == null) { throw new OMException("Key not found, checkAccess failed. Key:" + objectKey, KEY_NOT_FOUND); } } } boolean hasAccess = OzoneUtils.checkAclRight(keyInfo.getAcls(), context); LOG.debug("user:{} has access rights for key:{} :{} ", context.getClientUgi(), ozObject.getKeyName(), hasAccess); return hasAccess; } catch (IOException ex) { if(ex instanceof OMException) { throw (OMException) ex; } LOG.error("CheckAccess operation failed for key:{}/{}/{}", volume, bucket, keyName, ex); throw new OMException("Check access operation failed for " + "key:" + keyName, ex, INTERNAL_ERROR); } finally { metadataManager.getLock().releaseLock(BUCKET_LOCK, volume, bucket); } }
Source:
<code>public void sendAdvertisedRefs(final RefAdvertiser adv) throws IOException { final RevFlag advertised = walk.newFlag("ADVERTISED"); adv.init(walk, advertised); adv.advertiseCapability(CAPABILITY_DELETE_REFS); adv.advertiseCapability(CAPABILITY_REPORT_STATUS); if (allowOfsDelta) adv.advertiseCapability(CAPABILITY_OFS_DELTA); refs = new HashMap<String, Ref>(db.getAllRefs()); final Ref head = refs.remove(Constants.HEAD); adv.send(refs.values()); <START> if (head instanceof ObjectIdRef) <END> adv.advertiseHave(head.getObjectId()); adv.includeAdditionalHaves(); if (adv.isEmpty()) adv.advertiseId(ObjectId.zeroId(), "capabilities^{}"); adv.end(); }</code><technical_language>fond of instanceof tests</technical_language>

Target:
public void sendAdvertisedRefs(final RefAdvertiser adv) throws IOException { final RevFlag advertised = walk.newFlag("ADVERTISED"); adv.init(walk, advertised); adv.advertiseCapability(CAPABILITY_DELETE_REFS); adv.advertiseCapability(CAPABILITY_REPORT_STATUS); if (allowOfsDelta) adv.advertiseCapability(CAPABILITY_OFS_DELTA); refs = db.getAllRefs(); final Ref head = refs.remove(Constants.HEAD); adv.send(refs.values()); if (!head.isSymbolic()) adv.advertiseHave(head.getObjectId()); adv.includeAdditionalHaves(); if (adv.isEmpty()) adv.advertiseId(ObjectId.zeroId(), "capabilities^{}"); adv.end(); }
Source:
<code>public String toString() { StringBuilder builder = new StringBuilder(); builder.append("NetworkCluster {id=") .append(getId()) .append(", status=") .append(getstatus()) <START> .append(", isDisplay=") <END> .append(isDisplay()) .append(", required=") .append(isRequired()) .append("}"); return builder.toString(); }</code><technical_language>"display"</technical_language>

Target:
public String toString() { StringBuilder builder = new StringBuilder(); builder.append("NetworkCluster {id=") .append(getId()) .append(", status=") .append(getStatus()) .append(", display=") .append(isDisplay()) .append(", required=") .append(isRequired()) .append("}"); return builder.toString(); }
Source:
<code>private NettyServer getNettyServer(Properties properties) throws InstantiationException, IOException { if (properties == null) { properties = new Properties(); } VerifiableProperties verifiableProperties = new VerifiableProperties(properties); NettyConfig nettyConfig = new NettyConfig(verifiableProperties); NettyMetrics nettyMetrics = new NettyMetrics(new MetricRegistry()); RestRequestHandler requestHandler = new MockRestRequestResponseHandler(); PublicAccessLogger publicAccessLogger = new PublicAccessLogger(new String[]{}, new String[]{}); <START> VIPHealthCheckService vipHealthCheckService = new VIPHealthCheckService("/ambry-frontend/admin"); <END> return new NettyServer(nettyConfig, nettyMetrics, requestHandler, publicAccessLogger, vipHealthCheckService); }</code><technical_language>url</technical_language>

Target:
private NettyServer getNettyServer(Properties properties) throws InstantiationException, IOException { if (properties == null) { properties = new Properties(); } VerifiableProperties verifiableProperties = new VerifiableProperties(properties); NettyConfig nettyConfig = new NettyConfig(verifiableProperties); NettyMetrics nettyMetrics = new NettyMetrics(new MetricRegistry()); RestRequestHandler requestHandler = new MockRestRequestResponseHandler(); PublicAccessLogger publicAccessLogger = new PublicAccessLogger(new String[]{}, new String[]{}); RestServerState restServerState = new RestServerState("/healthCheck"); return new NettyServer(nettyConfig, nettyMetrics, requestHandler, publicAccessLogger, restServerState); }
Source:
<code><START> public void setContextService(ContextCurrentService contextService) { <END> this.contextService = contextService; }</code><technical_language>shouldnt this method static</technical_language>

Target:
public static void setContextService(ContextCurrentService contextService) { OsgiHelper.contextService = contextService; }
Source:
<code><START> public void configurePersister(XStreamPersister persister, XStreamMessageConverter converter) { <END> XStream xstream = persister.getXStream(); xstream.alias( "keyword", KeywordInfo.class); xstream.addDefaultImplementation(Keyword.class, KeywordInfo.class); persister.setCallback(new XStreamPersister.Callback() { @Override protected Class<LayerGroupInfo> getObjectClass() { return LayerGroupInfo.class; } @Override protected CatalogInfo getCatalogObject() { Map<String, String> uriTemplateVars = (Map<String, String>) RequestContextHolder.getRequestAttributes().getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE, RequestAttributes.SCOPE_REQUEST); String workspace = uriTemplateVars.get("workspaceName"); String layerGroup = uriTemplateVars.get("layerGroupName"); if (layerGroup == null) { return null; } return catalog.getLayerGroupByName(workspace, layerGroup); } @Override protected void postEncodeReference(Object obj, String ref, String prefix, HierarchicalStreamWriter writer, MarshallingContext context) { if ( obj instanceof StyleInfo ) { StringBuilder link = new StringBuilder(); if (prefix != null) { link.append("/workspaces/").append(converter.encode(prefix)); } link.append("/styles/").append(converter.encode(ref)); converter.encodeLink(link.toString(), writer); } if ( obj instanceof LayerInfo ) { converter.encodeLink("/layers/" + converter.encode(ref), writer); } } }); }</code><technical_language>Suspicious, ServiceInfo ResourceInfo need treatment? a keywords field. check XStreamPersister, a custom converter is registered in class for ResourceInfo ServiceInfo (even output, maintain consistency)</technical_language>

Target:
public void configurePersister(XStreamPersister persister, XStreamMessageConverter converter) { persister.setCallback(new XStreamPersister.Callback() { @Override protected Class<LayerGroupInfo> getObjectClass() { return LayerGroupInfo.class; } @Override protected CatalogInfo getCatalogObject() { Map<String, String> uriTemplateVars = (Map<String, String>) RequestContextHolder.getRequestAttributes().getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE, RequestAttributes.SCOPE_REQUEST); String workspace = uriTemplateVars.get("workspaceName"); String layerGroup = uriTemplateVars.get("layerGroupName"); if (layerGroup == null) { return null; } return catalog.getLayerGroupByName(workspace, layerGroup); } @Override protected void postEncodeReference(Object obj, String ref, String prefix, HierarchicalStreamWriter writer, MarshallingContext context) { if ( obj instanceof StyleInfo ) { StringBuilder link = new StringBuilder(); if (prefix != null) { link.append("/workspaces/").append(converter.encode(prefix)); } link.append("/styles/").append(converter.encode(ref)); converter.encodeLink(link.toString(), writer); } if ( obj instanceof LayerInfo ) { converter.encodeLink("/layers/" + converter.encode(ref), writer); } } }); }
Source:
<code>public void finish() { String workingSetName = fWorkingSetName.getText(); ArrayList<IBreakpoint> elements = new ArrayList<>(); for (Object <START> element : <END> fTViewer.getCheckedElements()) { IBreakpoint breakpoint = (IBreakpoint)DebugPlugin.getAdapter(element, IBreakpoint.class); if(breakpoint != null) { elements.add(breakpoint); } } if (fWorkingSet == null) { IWorkingSetManager workingSetManager= PlatformUI.getWorkbench().getWorkingSetManager(); fWorkingSet = workingSetManager.createWorkingSet(workingSetName, elements.toArray(new IAdaptable[elements.size()])); } else { fWorkingSet.setName(workingSetName); fWorkingSet.setElements(elements.toArray(new IAdaptable[elements.size()])); } }</code><technical_language>adaptableElement</technical_language>

Target:
public void finish() { String workingSetName = fWorkingSetName.getText(); ArrayList<IBreakpoint> elements = new ArrayList<>(); for (Object adaptableElement : fTViewer.getCheckedElements()) { IBreakpoint breakpoint = (IBreakpoint)DebugPlugin.getAdapter(adaptableElement, IBreakpoint.class); if(breakpoint != null) { elements.add(breakpoint); } } if (fWorkingSet == null) { IWorkingSetManager workingSetManager= PlatformUI.getWorkbench().getWorkingSetManager(); fWorkingSet = workingSetManager.createWorkingSet(workingSetName, elements.toArray(new IAdaptable[elements.size()])); } else { fWorkingSet.setName(workingSetName); fWorkingSet.setElements(elements.toArray(new IAdaptable[elements.size()])); } }
Source:
<code>Response status(URI lraId, URI parentId) { if (participantStatusMap.containsKey(lraId)) { Optional<?> optional = participantStatusMap.get(lraId); if (optional.isPresent()) { participantStatusMap.remove(lraId); Object result = optional.get(); if (shouldInvokeStatusMethod(result)) { <START> return invokeParticipantMethod(statusMethod, lraId, parentId, STATUS); <END> } return processResult(optional.get(), lraId, statusMethod, STATUS); } else { return Response.accepted().build(); } } return invokeParticipantMethod(statusMethod, lraId, parentId, STATUS); }</code><technical_language>status method is optional do guarantee statusMethod is null</technical_language>

Target:
synchronized Response status(URI lraId, URI parentId) { if (participantStatusMap.containsKey(lraId)) { return processCompletionStageResult(statusMethod, lraId, parentId, STATUS); } return invokeParticipantMethod(statusMethod, lraId, parentId, STATUS); }
Source:
<code>public static ValueMatcher makeValueMatcher( final ColumnSelectorFactory columnSelectorFactory, final String columnName, final String value ) { final ColumnCapabilities capabilities = columnSelectorFactory.getColumnCapabilities(columnName); if (capabilities != null && capabilities.getType() == ValueType.LONG) { return getLongValueMatcher( columnSelectorFactory.makeLongColumnSelector(columnName), value ); } final ColumnSelectorPlus<ValueMatcherColumnSelectorStrategy> selector = <START> DimensionHandlerUtils.createColumnSelectorPluses( <END> ValueMatcherColumnSelectorStrategyFactory.instance(), ImmutableList.<DimensionSpec>of(DefaultDimensionSpec.of(columnName)), columnSelectorFactory )[0]; return selector.getColumnSelectorStrategy().makeValueMatcher(columnName, columnSelectorFactory, value); }</code><technical_language>create a helper method createColumnSelectorPlus() hides this ImmutableList.of() [0]</technical_language>

Target:
public static ValueMatcher makeValueMatcher( final ColumnSelectorFactory columnSelectorFactory, final String columnName, final String value ) { final ColumnCapabilities capabilities = columnSelectorFactory.getColumnCapabilities(columnName); if (capabilities != null && capabilities.getType() == ValueType.LONG) { return getLongValueMatcher( columnSelectorFactory.makeLongColumnSelector(columnName), value ); } final ColumnSelectorPlus<ValueMatcherColumnSelectorStrategy> selector = DimensionHandlerUtils.createColumnSelectorPlus( ValueMatcherColumnSelectorStrategyFactory.instance(), DefaultDimensionSpec.of(columnName), columnSelectorFactory ); return selector.getColumnSelectorStrategy().makeValueMatcher(selector.getSelector(), value); }
Source:
<code>public ConfigSaveState updateConfig(UpdateConfigCommand command) { ConfigSaveState configSaveState = null; LOGGER.info("Config update request by is in queue - {}", UserHelper.getUserName().getUsername(), command); synchronized (GoConfigWriteLock.class) { try { LOGGER.info("Config update request by is being processed", command, UserHelper.getUserName().getUsername()); if (command instanceof CheckedUpdateCommand) { CheckedUpdateCommand checkedCommand = (CheckedUpdateCommand) command; if (!checkedCommand.canContinue(cachedConfigService.currentConfig())) { throw new ConfigUpdateCheckFailedException(); } } configSaveState = cachedConfigService.writeWithLock(command); } catch (Exception e) { <START> LOGGER.info("Config update failed.", e); <END> throw e; } finally { if (command instanceof ConfigAwareUpdate) { ((ConfigAwareUpdate) command).afterUpdate(clonedConfig()); } LOGGER.info("Config update request by is completed", UserHelper.getUserName().getUsername()); } } return configSaveState; }</code><technical_language>change log level error</technical_language>

Target:
public ConfigSaveState updateConfig(UpdateConfigCommand command) { ConfigSaveState configSaveState = null; LOGGER.info("Config update request by is in queue - {}", UserHelper.getUserName().getUsername(), command); synchronized (GoConfigWriteLock.class) { try { LOGGER.info("Config update request by is being processed", command, UserHelper.getUserName().getUsername()); if (command instanceof CheckedUpdateCommand) { CheckedUpdateCommand checkedCommand = (CheckedUpdateCommand) command; if (!checkedCommand.canContinue(cachedConfigService.currentConfig())) { throw new ConfigUpdateCheckFailedException(); } } configSaveState = cachedConfigService.writeWithLock(command); } catch (Exception e) { LOGGER.error("Config update failed.", e); throw e; } finally { if (command instanceof ConfigAwareUpdate) { ((ConfigAwareUpdate) command).afterUpdate(clonedConfig()); } LOGGER.info("Config update request by is completed", UserHelper.getUserName().getUsername()); } } return configSaveState; }
Source:
<code>public boolean validate() { getName().validateEntity(new IValidation[] { new NotEmptyValidation(), new AsciiNameValidation() }); boolean ipv4 = getIpVersion().getSelectedItem() == IpVersion.IPV4; getCidr().validateEntity(new IValidation[] { ipv4 ? new CidrValidation() : new NotEmptyValidation() }); getIpVersion().validateSelectedItem(new IValidation[] { new NotEmptyValidation() }); <START> if (getGateway().getEntity() != null && !getGateway().getEntity().isEmpty() && ipv4) { <END> getGateway().validateEntity(new IValidation[] { new IpAddressValidation() }); } boolean dnsServersValid = true; for (EntityModel<String> dnsServer : getDnsServers().getItems()) { if (dnsServer.getEntity() != null && !dnsServer.getEntity().isEmpty() && ipv4) { dnsServer.validateEntity(new IValidation[] { new IpAddressValidation() }); } dnsServersValid &= dnsServer.getIsValid(); } return getName().getIsValid() && getCidr().getIsValid() && getIpVersion().getIsValid() && getGateway().getIsValid() && dnsServersValid; }</code><technical_language>StringHelper.isNullOrEmpty()</technical_language>

Target:
public boolean validate() { getName().validateEntity(new IValidation[] { new AsciiNameValidation() }); boolean ipv4 = getIpVersion().getSelectedItem() == IpVersion.IPV4; getCidr().validateEntity(new IValidation[] { ipv4 ? new CidrValidation() : new NotEmptyValidation() }); getIpVersion().validateSelectedItem(new IValidation[] { new NotEmptyValidation() }); if (StringUtils.isNotEmpty(getGateway().getEntity()) && ipv4) { getGateway().validateEntity(new IValidation[] { new IpAddressValidation() }); } boolean dnsServersValid = true; for (EntityModel<String> dnsServer : getDnsServers().getItems()) { if (StringUtils.isNotEmpty(dnsServer.getEntity()) && ipv4) { dnsServer.validateEntity(new IValidation[] { new IpAddressValidation() }); } dnsServersValid &= dnsServer.getIsValid(); } return getName().getIsValid() && getCidr().getIsValid() && getIpVersion().getIsValid() && getGateway().getIsValid() && dnsServersValid; }
Source:
<code>void emit(long previousRequested) { <START> if (requested == Long.MAX_VALUE) { <END> if (previousRequested == 0) { try { for (Object value : deque) { notification.accept(subscriber, value); } } catch (Throwable e) { subscriber.onError(e); } finally { deque.clear(); } } else { } } else { if (previousRequested == 0) { while (true) { long numToEmit = requested; int emitted = 0; Object o; while (--numToEmit >= 0 && (o = deque.poll()) != null) { if (subscriber.isUnsubscribed()) { return; } if (notification.accept(subscriber, o)) { return; } else { emitted++; } } if (REQUESTED_UPDATER.addAndGet(this, -emitted) == 0) { return; } } } } }</code><technical_language>Ha! a fun bug, totally missed -1 MAX_VALUE. I bet worth complexity of a fast-path cost of queue/deque is worse counter, hit counter end anyways</technical_language>

Target:
void emit(long previousRequested) { if (requested == Long.MAX_VALUE) { if (previousRequested == 0) { try { for (Object value : deque) { notification.accept(subscriber, value); } } catch (Throwable e) { subscriber.onError(e); } finally { deque.clear(); } } else { } } else { if (previousRequested == 0) { while (true) { long numToEmit = requested; int emitted = 0; Object o; while (--numToEmit >= 0 && (o = deque.poll()) != null) { if (subscriber.isUnsubscribed()) { return; } if (notification.accept(subscriber, o)) { return; } else { emitted++; } } for (;;) { long oldRequested = requested; long newRequested = oldRequested - emitted; if (oldRequested == Long.MAX_VALUE) { break; } if (REQUESTED_UPDATER.compareAndSet(this, oldRequested, newRequested)) { if (newRequested == 0) { return; } break; } } } } } }
Source:
<code>private void testModerateResponsesButton() { resultsPage = loginToInstructorFeedbackResultsPage("CFResultsUiT.instr", "Open Session"); resultsPage.displayByQuestion(); clickAjaxLoadedPanelAndWaitForExpansion("panelHeading-2", "ajax_auto"); clickAjaxLoadedPanelAndWaitForExpansion("panelHeading-4", "ajax_auto"); ______TS("Typical case: test moderate responses button for individual response (including no response)"); <START> ThreadHelper.waitFor(1000); <END> verifyModerateResponsesButton(2, "CFResultsUiT.alice.b@gmail.tmt", "CFResultsUiT.benny.c@gmail.tmt", "CFResultsUiT.fred.g@gmail.tmt", "CFResultsUiT.charlie.d@gmail.tmt", "CFResultsUiT.danny.e@gmail.tmt", "drop.out@gmail.tmt", "extra.guy@gmail.tmt", "CFResultsUiT.emily.f@gmail.tmt"); ______TS("Typical case: test moderate responses button for team response"); verifyModerateResponsesButton(4, "Team 1</td></div>'\""); resultsPage = loginToInstructorFeedbackResultsPage("CFResultsUiT.instr", "Session with Instructors as Givers"); resultsPage.displayByQuestion(); clickAjaxLoadedPanelAndWaitForExpansion("panelHeading-1", "ajax_auto"); ______TS("Typical case: test moderate responses button for instructors as givers"); verifyModerateResponsesButton(1, "CFResultsUiT.instr@gmail.tmt", "CFResultsUiT.instr@gmail.tmt", "CFResultsUiT.instr@gmail.tmt"); }</code><technical_language>ThreadHelper here</technical_language>

Target:
private void testModerateResponsesButton() { resultsPage = loginToInstructorFeedbackResultsPage("CFResultsUiT.instr", "Open Session"); resultsPage.displayByQuestion(); clickAjaxLoadedPanelAndWaitForExpansion("panelHeading-2", "ajax_auto"); clickAjaxLoadedPanelAndWaitForExpansion("panelHeading-4", "ajax_auto"); ______TS("Typical case: test moderate responses button for individual response (including no response)"); verifyModerateResponsesButton(2, "CFResultsUiT.alice.b@gmail.tmt", "CFResultsUiT.benny.c@gmail.tmt", "CFResultsUiT.fred.g@gmail.tmt", "CFResultsUiT.charlie.d@gmail.tmt", "CFResultsUiT.danny.e@gmail.tmt", "drop.out@gmail.tmt", "extra.guy@gmail.tmt", "CFResultsUiT.emily.f@gmail.tmt"); ______TS("Typical case: test moderate responses button for team response"); verifyModerateResponsesButton(4, "Team 1</td></div>'\""); resultsPage = loginToInstructorFeedbackResultsPage("CFResultsUiT.instr", "Session with Instructors as Givers"); resultsPage.displayByQuestion(); clickAjaxLoadedPanelAndWaitForExpansion("panelHeading-1", "ajax_auto"); ______TS("Typical case: test moderate responses button for instructors as givers"); verifyModerateResponsesButton(1, "CFResultsUiT.instr@gmail.tmt", "CFResultsUiT.instr@gmail.tmt", "CFResultsUiT.instr@gmail.tmt"); }
Source:
<code>public static MessageViewInfo createWithErrorState(Message message) { <START> return new MessageViewInfo(message, null, null, null, null, null, null); <END> }</code><technical_language>ugly potentially a source of future NPEs</technical_language>

Target:
public static MessageViewInfo createWithErrorState(Message message) { return new MessageViewInfo(message, null, null, null, null, null, null, null); }
Source:
<code>public Stream<RoleDTO> getUserRoles(@PathParam("username") @Verify(User.class) String username) { UserInfo user = this.fetchUserByUsername(username); Collection<? extends RoleInfo> roles = user.getRoles(); if (roles != null) { UserDTO udto = this.modelTranslator.translate(user, UserDTO.class); Set<UserDTO> users = Collections.singleton(udto); return roles.stream() .map(this.modelTranslator.getStreamMapper(RoleInfo.class, RoleDTO.class)) <START> .peek(e -> e.setUsers(users.stream().collect(Collectors.toList()))); <END> } return Stream.<RoleDTO>empty(); }</code><technical_language>ArrayList constructor instead of stream. java new ArrayList<UserDTO>(users) point. I there, peek is intended for debugging. Map clearer. java .map(e -> e.users(new ArrayList<>(users)));</technical_language>

Target:
public Stream<RoleDTO> getUserRoles(@PathParam("username") @Verify(User.class) String username) { UserInfo user = this.fetchUserByUsername(username); Collection<? extends RoleInfo> roles = user.getRoles(); if (roles != null) { UserDTO udto = this.modelTranslator.translate(user, UserDTO.class); Set<UserDTO> users = Collections.singleton(udto); return roles.stream() .map(this.modelTranslator.getStreamMapper(RoleInfo.class, RoleDTO.class)) .map(e -> e.users(new HashSet<>(users))); } return Stream.<RoleDTO>empty(); }
Source:
<code>private void hideResponsesGiverRecipient() { for (FeedbackResponseAttributes response : responses) { String name = emailNameTable.get(response.recipient); FeedbackQuestionAttributes question = questions.get(response.feedbackQuestionId); FeedbackParticipantType participantType = question.recipientType; if (participantType == FeedbackParticipantType.SELF) { participantType = question.giverType; } if (!isRecipientVisible(response)) { String anonEmail = getAnonEmail(participantType, name); name = getAnonName(participantType, name); emailNameTable.put(anonEmail, name); emailTeamNameTable.put(anonEmail, name + Const.TEAM_OF_EMAIL_OWNER); response.recipient = anonEmail; } name = emailNameTable.get(response.giver); participantType = question.giverType; if (!isGiverVisible(response)) { String anonEmail = getAnonEmail(participantType, name); name = getAnonName(participantType, name); emailNameTable.put(anonEmail, name); emailTeamNameTable.put(anonEmail, name + Const.TEAM_OF_EMAIL_OWNER); if (participantType == FeedbackParticipantType.TEAMS) { emailTeamNameTable.put(anonEmail, name); } response.giver = anonEmail; <START> response.giverEmail = Const.DISPLAYED_NAME_FOR_ANONYMOUS_PARTICIPANT; <END> } } }</code><technical_language>email assigning a name</technical_language>

Target:
private void hideResponsesGiverRecipient() { for (FeedbackResponseAttributes response : responses) { String name = emailNameTable.get(response.recipient); FeedbackQuestionAttributes question = questions.get(response.feedbackQuestionId); FeedbackParticipantType participantType = question.recipientType; if (participantType == FeedbackParticipantType.SELF) { participantType = question.giverType; } if (!isRecipientVisible(response)) { String anonEmail = getAnonEmail(participantType, name); name = getAnonName(participantType, name); emailNameTable.put(anonEmail, name); emailTeamNameTable.put(anonEmail, name + Const.TEAM_OF_EMAIL_OWNER); response.recipient = anonEmail; } name = emailNameTable.get(response.giver); participantType = question.giverType; if (!isGiverVisible(response)) { String anonEmail = getAnonEmail(participantType, name); name = getAnonName(participantType, name); emailNameTable.put(anonEmail, name); emailTeamNameTable.put(anonEmail, name + Const.TEAM_OF_EMAIL_OWNER); if (participantType == FeedbackParticipantType.TEAMS) { emailTeamNameTable.put(anonEmail, name); } response.giver = anonEmail; } } }
Source:
<code>public static Double quantileAtValueDouble(@SqlType("tdigest(double)") Slice input, @SqlType(StandardTypes.DOUBLE) double value) { <START> return new TDigest(input).getCdf(value); <END> }</code><technical_language>behavior input is min/max values</technical_language>

Target:
public static double quantileAtValueDouble(@SqlType("tdigest(double)") Slice input, @SqlType(StandardTypes.DOUBLE) double value) { return createTDigest(input).getCdf(value); }
Source:
<code>public void update() { fboId = frameBuffersManager.getFBO(this.getValue()).fboId; <START> task.setFboToBind(fboId); <END> }</code><technical_language>I imagine -if- state change is redundant remain in intermediate pipeline list generate a task variable task null, generating a NPE. However, checking if task is null, subscribe FBM -only- if a task is generated? Also, I realize a state change in intermediate list redundant moment, needed another redundant user changes settings. In particular, if a needed state change is redundant, is functionality unsubscribe FBM state needed again. I ok leave task in memory Finally, StateChange.value "protected" write: fboId = frameBuffersManager.getFBO(value).fboId; said, I wish AbstractStateChange write: fboId = frameBuffersManager.getFBO(fboName).fboId;</technical_language>

Target:
public void update() { fboId = frameBuffersManager.getFBO(fboName).fboId; task.setFboId(fboId); }
Source:
<code>public void onSaveClick() { editView.setSaveState(true); WikidataDescriptionEditDataClient client = new WikidataDescriptionEditDataClient(); <START> client.submitDescription(pageTitle, editView.getDescription(), <END> new WikidataDescriptionEditDataClient.Callback() { @Override public void success() { editView.setSaveState(false); L.i("WD description edit successful"); } @Override public void failure(@NonNull Throwable caught) { editView.setSaveState(false); L.e("WD description edit failed: ", caught); } }); }</code><technical_language>this is a Fragment a lifecycle, consider holding a reference Call<?> canceling in onDestroy() if Call<?> is nonnull</technical_language>

Target:
public void onSaveClick() { editView.setSaveState(true); if (client == null) { client = new WikidataDescriptionEditDataClient(); } client.request(pageTitle, editView.getDescription(), new WikidataDescriptionEditDataClient.Callback() { @Override public void success() { editView.setSaveState(false); L.i("WD description edit successful"); } @Override public void failure(@NonNull Throwable caught) { editView.setSaveState(false); L.e("WD description edit failed: ", caught); } }); }
Source:
<code>@Test public void definedAsField() throws IOException { ClassWriter classWriter = ClassWriter.forClassName(className); FieldWriter threadField = classWriter.addField(threadName, "thread"); AnonymousClassWriter threadWriter = AnonymousClassWriter.forClassName(threadName); MethodWriter threadStartMethod = threadWriter.addMethod(void.class, "start"); threadStartMethod.annotate(Override.class); threadStartMethod.addModifiers(PUBLIC); threadStartMethod.body().addSnippet("System.out.println(\"Hello World!\");"); threadField.setInitializer("%s", threadWriter); StringBuilder stringBuilder = new StringBuilder(); <START> assertThat(classWriter.writeTypeToAppendable(stringBuilder).toString()).isEqualTo("" <END> + "package com.foo;\n" + "\n" + "class Bar {\n" + " Thread thread = new Thread() {\n" + " @Override\n" + " public void start() {\n" + " System.out.println(\"Hello World!\");\n" + " }\n" + " };\n" + "}\n"); }</code><technical_language>Writeables.writeToString</technical_language>

Target:
@Test public void definedAsField() throws IOException { ClassWriter classWriter = ClassWriter.forClassName(className); FieldWriter threadField = classWriter.addField(threadName, "thread"); AnonymousClassWriter threadWriter = AnonymousClassWriter.forClassName(threadName); MethodWriter threadStartMethod = threadWriter.addMethod(void.class, "start"); threadStartMethod.annotate(Override.class); threadStartMethod.addModifiers(PUBLIC); threadStartMethod.body().addSnippet("System.out.println(\"Hello World!\");"); threadField.setInitializer("%s", threadWriter); assertThat(classWriter.toString()).isEqualTo("" + "package com.foo;\n" + "\n" + "class Bar {\n" + " Thread thread = new Thread() {\n" + " @Override\n" + " public void start() {\n" + " System.out.println(\"Hello World!\");\n" + " }\n" + " };\n" + "}\n"); }
Source:
<code>public ProcessInstance execute(CommandContext commandContext) { <START> if (processDefinitionId == null && processDefinitionKey == null) { throw new ActivitiIllegalArgumentException("processDefinitionKey and processDefinitionId are null"); } DeploymentManager deploymentCache = commandContext.getProcessEngineConfiguration().getDeploymentManager(); ProcessDefinition processDefinition = this.getProcessDefinitionByProcessDefinitionId(processDefinitionId, deploymentCache); if(processDefinition == null) { processDefinition = (processDefinitionKey != null && hasNoTenant(tenantId)) ? this.getProcessDefinitionByProcessDefinitionKey(processDefinitionKey, tenantId, deploymentCache): this.getProcessDefinitionByProcessDefinitionKeyAndTenantId(processDefinitionKey, tenantId, deploymentCache); if (processDefinition == null) { throw new ActivitiObjectNotFoundException("No process definition found for key '" + processDefinitionKey + "' for tenant identifier " + tenantId, ProcessDefinition.class); } } <END> processInstanceHelper = commandContext.getProcessEngineConfiguration().getProcessInstanceHelper(); return processInstanceHelper.createProcessInstance(processDefinition, businessKey, processInstanceName, variables, transientVariables); }</code><technical_language>prefer CreateProcessInstanceCmd StartProcessInstanceCmd sharing code retrieve process definition</technical_language>

Target:
public ProcessInstance execute(CommandContext commandContext) { if (processDefinitionId == null && processDefinitionKey == null) { throw new ActivitiIllegalArgumentException("processDefinitionKey and processDefinitionId are null"); } DeploymentManager deploymentCache = commandContext.getProcessEngineConfiguration().getDeploymentManager(); ProcessDefinition processDefinition = this.getProcessDefinitionByProcessDefinitionId(processDefinitionId, deploymentCache); if(processDefinition == null) { processDefinition = (processDefinitionKey != null && hasNoTenant(tenantId)) ? this.getProcessDefinitionByProcessDefinitionKey(processDefinitionKey, deploymentCache): this.getProcessDefinitionByProcessDefinitionKeyAndTenantId(processDefinitionKey, tenantId, deploymentCache); if (processDefinition == null) { throw new ActivitiObjectNotFoundException("No process definition found for key '" + processDefinitionKey + "' for tenant identifier " + tenantId, ProcessDefinition.class); } } processInstanceHelper = commandContext.getProcessEngineConfiguration().getProcessInstanceHelper(); return processInstanceHelper.createProcessInstance(processDefinition, businessKey, processInstanceName, variables, transientVariables); }
Source:
<code>public void testOpenTrace() { assertNotNull(fixture); final TmfTraceElement traceElement = fixture.getTracesFolder().getTraces().get(0); try { traceElement.getTrace(); fail("There should be an exception because of thread access"); } catch (RuntimeException e) { assertTrue(true); } Thread thread = new Thread() { @Override public void run() { ITmfTrace trace = traceElement.getTrace(); <START> assertNull(trace); <END> } }; thread.start(); ITmfTrace trace = traceElement.instantiateTrace(); try { trace.initTrace(traceElement.getResource(), traceElement.getLocation().getPath(), TmfEvent.class); TmfSignalManager.dispatchSignal(new TmfTraceOpenedSignal(this, trace, null)); ITmfTrace trace2 = traceElement.getTrace(); assertTrue(trace2 == trace); TmfSignalManager.dispatchSignal(new TmfTraceClosedSignal(this, trace)); } catch (TmfTraceException e) { fail("Could not initialize trace"); } try { Thread.sleep(15000); } catch (InterruptedException e) { fail(e.getMessage()); } }</code><technical_language>this fail unit test a separate thread. a print-out console. need check thread missed</technical_language>

Target:
public void testOpenTrace() { assertNotNull(fixture); final TmfTraceElement traceElement = fixture.getTracesFolder().getTraces().get(0); ITmfTrace trace = traceElement.getTrace(); assertNull(trace); TmfOpenTraceHelper.openTraceFromElement(traceElement); ProjectModelTestData.delayThread(5000); trace = traceElement.getTrace(); assertNotNull(trace); TmfOpenTraceHelper.openTraceFromElement(traceElement); ProjectModelTestData.delayThread(5000); ITmfTrace trace2 = TmfTraceManager.getInstance().getActiveTrace(); assertFalse(trace2 == trace); trace = traceElement.getTrace(); assertTrue(trace2 == trace); }
Source:
<code>public void ensureSavingAfterInitialUser() { r.addStep(new Statement() { <START> @Override <END> public void evaluate() throws Throwable { r.j.jenkins.setSecurityRealm(new HudsonPrivateSecurityRealm(true)); r.j.jenkins.setAuthorizationStrategy(new GlobalMatrixAuthorizationStrategy()); r.j.jenkins.save(); JenkinsRule.WebClient wc = r.j.createWebClient(); SignupPage signup = new SignupPage(wc.goTo("signup")); signup.enterUsername("alice"); signup.enterPassword("alice"); signup.enterFullName("Alice User"); HtmlPage success = signup.submit(r.j); try (ACLContext _ = ACL.as(User.get("alice"))) { Assert.assertTrue(r.j.jenkins.getACL().hasPermission(Jenkins.ADMINISTER)); } } }); r.addStep(new Statement() { @Override public void evaluate() throws Throwable { try (ACLContext _ = ACL.as(User.get("alice"))) { Assert.assertTrue(r.j.jenkins.getACL().hasPermission(Jenkins.ADMINISTER)); } } }); }</code><technical_language>BTW 2.60.x+ this a lot prettier lambdas</technical_language>

Target:
public void ensureSavingAfterInitialUser() { r.addStep(new Statement() { @Override public void evaluate() throws Throwable { r.j.jenkins.setSecurityRealm(new HudsonPrivateSecurityRealm(true)); r.j.jenkins.setAuthorizationStrategy(new GlobalMatrixAuthorizationStrategy()); r.j.jenkins.save(); JenkinsRule.WebClient wc = r.j.createWebClient(); SignupPage signup = new SignupPage(wc.goTo("signup")); signup.enterUsername("alice"); signup.enterPassword("alice"); signup.enterFullName("Alice User"); HtmlPage success = signup.submit(r.j); Assert.assertTrue(r.j.jenkins.getACL().hasPermission(User.get("alice").impersonate(), Jenkins.ADMINISTER)); } }); r.addStep(new Statement() { @Override public void evaluate() throws Throwable { Assert.assertTrue(r.j.jenkins.getACL().hasPermission(User.get("alice").impersonate(), Jenkins.ADMINISTER)); } }); }
Source:
<code>public void onNameDeclarationSelected(NameDeclaration declaration) { sourceEditorController.clearNameOccurences(); Optional.ofNullable(declaration.getNode().getScope().getDeclarations().get(declaration)) <START> .ifPresent(sourceEditorController::highlightNameOccurrences); <END> Platform.runLater(() -> onNodeItemSelected(declaration.getNode())); }</code><technical_language>this over-complex of if null (allocating object way). I love functional, feel this is more abuse a proper use. totally personal biased opinion 'though, do feel is best</technical_language>

Target:
public void onNameDeclarationSelected(NameDeclaration declaration) { sourceEditorController.clearNameOccurences(); List<NameOccurrence> occurrences = declaration.getNode().getScope().getDeclarations().get(declaration); if (occurrences != null) { sourceEditorController.highlightNameOccurrences(occurrences); } Platform.runLater(() -> onNodeItemSelected(declaration.getNode())); }
Source:
<code>public void onStart() { super.onStart(); if (Config.FabricBranchConfig.isBranchEnabled(config.getFabricConfig())) { <START> Branch.getInstance().initSession((referringParams, error) -> { <END> if (error == null) { if (referringParams.optBoolean(DeeplinkManager.KEY_CLICKED_BRANCH_LINK)) { try { DeeplinkManager.parseAndReact(SplashActivity.this, referringParams); } catch (JSONException e) { logger.error(e, true); } } } else { if (NetworkUtil.isConnected(getApplicationContext())) { logger.error(new Exception("Branch not configured properly, error:\n" + error.getMessage()), true); } } }, this.getIntent().getData(), this); finish(); } }</code><technical_language>lamda notation in this project</technical_language>

Target:
public void onStart() { super.onStart(); if (Config.FabricBranchConfig.isBranchEnabled(config.getFabricConfig())) { Branch.getInstance().initSession((referringParams, error) -> { if (error == null) { if (referringParams.optBoolean(DeepLinkManager.KEY_CLICKED_BRANCH_LINK)) { try { DeepLinkManager.parseAndReact(SplashActivity.this, referringParams); } catch (JSONException e) { logger.error(e, true); } } } else { if (NetworkUtil.isConnected(getApplicationContext())) { logger.error(new Exception("Branch not configured properly, error:\n" + error.getMessage()), true); } } }, this.getIntent().getData(), this); finish(); } }
Source:
<code>private void setHttpHeader(final HttpMethodBase m) { m.setRequestHeader(CONTENT_TYPE, CONTENT_JSON); m.setRequestHeader(ACCEPT, CONTENT_JSON); m.setRequestHeader(HTTP_HEADER_INSTANCE_ID, CLOUDSTACK_INSTANCE_ID + "-" + zoneId); <START> if (! "".equals(hash)) { <END> m.setRequestHeader(HASH_MATCH, hash); } String authString = username + ":" + password; String encodedAuthString = "Basic " + Base64.encodeBase64String(authString.getBytes(Charset.forName("UTF-8"))); m.setRequestHeader("Authorization", encodedAuthString); }</code><technical_language>StringUtils.isNotEmpty(hash)? <LINK_0></technical_language>

Target:
private void setHttpHeader(final HttpMethodBase m) { m.setRequestHeader(CONTENT_TYPE, CONTENT_JSON); m.setRequestHeader(ACCEPT, CONTENT_JSON); m.setRequestHeader(HTTP_HEADER_INSTANCE_ID, CLOUDSTACK_INSTANCE_ID + "-" + zoneId); if (StringUtils.isNotEmpty(hash)) { m.setRequestHeader(HASH_MATCH, hash); } String authString = username + ":" + password; String encodedAuthString = "Basic " + Base64.encodeBase64String(authString.getBytes(Charset.forName("UTF-8"))); m.setRequestHeader("Authorization", encodedAuthString); }