auphong2707/dl4se-code-review-dataset huggingface dataset:
Source:
<code>public void testStoreResult() throws IOException, ProtocolException { final IMAPResponse[] content = new IMAPResponse[2]; content[0] = new IMAPResponse("* 1 FETCH (UID 4 MODSEQ (12121231000))"); content[1] = new IMAPResponse("* VANISHED (EARLIER) 41,43:116,118,120:211,214:540"); final List<IMAPResponse> imapResponses = Arrays.asList(content); final MessageNumberSet[] modifiedMsgNums = { new MessageNumberSet(1L, 1L) }; final StoreResult storeResult = new StoreResult(1L, imapResponses, modifiedMsgNums); <START> final long highestModSeq = storeResult.getHighestModSeq(); <END> final List<IMAPResponse> responses = storeResult.getIMAPResponses(); Assert.assertEquals(responses.size(), 2, "Result mismatched."); Assert.assertEquals(highestModSeq, 1L, "Result mismatched."); Assert.assertTrue(responses.get(0).keyEquals("FETCH"), "Result mismatched."); final long fetchedModSeq = new FetchResponse(responses.get(0)).getItem(MODSEQ.class).modseq; Assert.assertEquals(fetchedModSeq, 12121231000L, "Result mismatched."); Assert.assertTrue(responses.get(1).keyEquals("VANISHED"), "Result mismatched."); final String modifiedMsgsets = MessageNumberSet.buildString(storeResult.getModifiedMsgSets()); Assert.assertEquals(storeResult.getModifiedMsgSets().length, 1, "Result mismatched."); Assert.assertEquals(modifiedMsgsets, "1", "Result mismatched."); }</code><technical_language>above, handle nullable fields appropriately</technical_language>

Target:
public void testStoreResult() throws IOException, ProtocolException { final FetchResponse fr = new FetchResponse(new IMAPResponse("* 1 FETCH (UID 4 MODSEQ (12121231000))")); final List<FetchResponse> fetchResponses = Collections.singletonList(fr); final MessageNumberSet[] modifiedMsgSet = { new MessageNumberSet(1L, 1L) }; final StoreResult storeResult = new StoreResult(1L, fetchResponses, modifiedMsgSet); final Long highestModSeq = storeResult.getHighestModSeq(); final List<FetchResponse> responses = storeResult.getFetchResponses(); Assert.assertEquals(responses.size(), 1, "getFetchResponses() mismatched."); Assert.assertNotNull(highestModSeq, "getHighestModSeq() should not return null"); Assert.assertEquals(highestModSeq, Long.valueOf(1L), "getHighestModSeq() mismatched."); final MessageNumberSet[] modifiedMsgsets = storeResult.getModifiedMsgSets(); Assert.assertNotNull(modifiedMsgsets, "getModifiedMsgSets() should not return null."); Assert.assertEquals(modifiedMsgsets.length, 1, "getModifiedMsgSets() size mismatched."); Assert.assertEquals(modifiedMsgsets[0], modifiedMsgSet[0], "getModifiedMsgSets() mismatched."); }
Source:
<code>public Topology getTopology(Map<String, String> options) { return Topology.builder() .addComputation(EvaluateRuleComputation::new, <START> Arrays.asList(INPUT_1 + ":" + ACTION_NAME, OUTPUT_1 + ":" + STATUS_STREAM)) <END> .build(); }</code><technical_language>replaced List.of</technical_language>

Target:
public Topology getTopology(Map<String, String> options) { return Topology.builder() .addComputation(EvaluateRuleComputation::new, List.of(INPUT_1 + ":" + ACTION_NAME, OUTPUT_1 + ":" + STATUS_STREAM)) .build(); }
Source:
<code>public static String account(String acc) { StringBuilder result = new StringBuilder(100); result.append('\"').append(acc) .append("\":{\"googleId\":\"").append(acc) .append("\",\"name\":\"").append(acc) .append("\",\"email\":\"").append(acc).append("@gmail.com\",\"institute\":\"\"}"); <START> return result.toString(); <END> }</code><technical_language>This return ... + ... + ... right</technical_language>

Target:
public static String account(String acc) { return "\"" + acc + "\":{\"googleId\":\"" + acc + "\",\"name\":\"" + acc + "\",\"email\":\"" + acc + "@gmail.com\",\"institute\":\"\"}"; }
Source:
<code>public void setInternal(String key, String value) { ValueEntry valueEntry = map.get(key); if (valueEntry != null) { valueEntry.value = value; } else { <START> valueEntry = new ValueEntry(); <END> valueEntry.scope = isLocalKey(key) ? Scope.LOCAL : Scope.TRANSIENT; map.put(key, valueEntry); } }</code><technical_language>Right</technical_language>

Target:
public void setInternal(String key, String value) { ValueEntry valueEntry = map.get(key); if (valueEntry != null) { valueEntry.value = value; } else { valueEntry = new ValueEntry(); valueEntry.scope = isLocalKey(key) ? Scope.LOCAL : Scope.TRANSIENT; valueEntry.value = value; map.put(key, valueEntry); } }
Source:
<code>public static String currentTime() { <START> Calendar calendar = Calendar.getInstance(); <END> return FormatUtil.getTimeZoneFormat().format(calendar.getTime()); }</code><technical_language>SystemTime get calendar</technical_language>

Target:
public static String currentTime() { Calendar calendar = SystemTime.asCalendar(); return FormatUtil.getTimeZoneFormat().format(calendar.getTime()); }
Source:
<code>public void indexesShouldBeCreated() throws UnknownHostException { String dbName = mongoRule.getRandomTemporaryDatabaseName(); MongoOperations mongoOperations = MongoDBHelper.getDefaultMongoOperations(dbName); DBCollection dbCollection = mongoOperations.getCollection(collectionName); variantMongoWriter = new VariantMongoWriter(collectionName, mongoOperations, variantToMongoDbObjectConverter); Set<String> createdIndexes = dbCollection.getIndexInfo().stream().map(o -> o.get("name").toString()) .collect(Collectors.toSet()); Set<String> expectedIndexes = Sets.newHashSet("annot.xrefs.id_1_background_", "ids_1_background_", "_id_", "files.sid_1_files.fid_1_background_", <START> "chr_1_start_1_end_1_background_", "annot_1_background_"); <END> assertEquals(expectedIndexes, createdIndexes); }</code><technical_language>extra dependency is worth for this... This equivalent: Set<String> expectedIndexes = new HashSet<>(); expectedIndexes.addAll("annot.xrefs.id_1_background_", "ids_1_background_", "_id_", "files.sid_1_files.fid_1_background_", "chr_1_start_1_end_1_background_", "annot_1_background_");</technical_language>

Target:
public void indexesShouldBeCreated() throws UnknownHostException { String dbName = mongoRule.getRandomTemporaryDatabaseName(); MongoOperations mongoOperations = MongoDBHelper.getDefaultMongoOperations(dbName); DBCollection dbCollection = mongoOperations.getCollection(collectionName); variantMongoWriter = new VariantMongoWriter(collectionName, mongoOperations, variantToMongoDbObjectConverter); Set<String> createdIndexes = dbCollection.getIndexInfo().stream().map(o -> o.get("name").toString()) .collect(Collectors.toSet()); Set<String> expectedIndexes = new HashSet<>(); expectedIndexes.addAll(Arrays.asList("annot.xrefs.id_1_background_", "ids_1_background_", "_id_", "files.sid_1_files.fid_1_background_", "chr_1_start_1_end_1_background_", "annot_1_background_")); assertEquals(expectedIndexes, createdIndexes); }
Source:
<code>private Button createCloseButton(Composite composite) { Button closeButton = new Button(composite, SWT.NONE); closeButton.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false)); <START> closeButton.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_TOOL_DELETE)); <END> closeButton.addMouseListener(new MouseAdapter() { @Override public void mouseDown(MouseEvent e2) { clearFilter(); close(); } }); return closeButton; }</code><technical_language>add a externalize tooltip text button: "Close (Esc)"</technical_language>

Target:
private Button createCloseButton(Composite composite) { Button closeButton = new Button(composite, SWT.NONE); closeButton.setToolTipText(Messages.TimeEventFilterDialog_CloseButton); closeButton.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false)); closeButton.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_TOOL_DELETE)); closeButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { clearFilter(); close(); } }); return closeButton; }
Source:
<code>public static boolean isUserClosed(String userUid) throws ApiCallException { <START> if (Session.getCredentials() == null || Session.getCredentials().isDemoCredentials()) { <END> return false; } String url = PreferencesState.getInstance().getDhisURL() + "/api/" + TAG_USER + String.format( QUERY_USER_ATTRIBUTES, userUid); url = ServerApiUtils.encodeBlanks(url); Date closedDate = null; Response response = ServerApiCallExecution.executeCall(null, url, "GET"); JsonNode jsonNode = ServerApiUtils.getJsonNodeMappedResponse(ServerApiUtils.getApiResponseAsJSONObject(response)); JsonNode jsonNodeArray = jsonNode.get(ATTRIBUTEVALUES); String closeDateAsString = ""; for (int i = 0; i < jsonNodeArray.size(); i++) { if (jsonNodeArray.get(i).get(ATTRIBUTE).get(CODE).textValue().equals( UserDB.ATTRIBUTE_USER_CLOSE_DATE)) { closeDateAsString = jsonNodeArray.get(i).get(VALUE).textValue(); } } if (closeDateAsString == null || closeDateAsString.equals("")) { return false; } closedDate = Utils.parseStringToCalendar(closeDateAsString, DHIS2_GMT_NEW_DATE_FORMAT).getTime(); if(closedDate == null) { return false; } return closedDate.before(new Date()); }</code><technical_language>null credentials demo credentials is case</technical_language>

Target:
public static boolean isUserClosed(String userUid) throws ApiCallException { if (Session.getCredentials() != null && Session.getCredentials().isDemoCredentials()) { return false; } String url = PreferencesState.getInstance().getDhisURL() + "/api/" + TAG_USER + String.format( QUERY_USER_ATTRIBUTES, userUid); url = ServerApiUtils.encodeBlanks(url); Date closedDate = null; Response response = ServerApiCallExecution.executeCall(null, url, "GET"); JsonNode jsonNode = ServerApiUtils.getJsonNodeMappedResponse(ServerApiUtils.getApiResponseAsJSONObject(response)); JsonNode jsonNodeArray = jsonNode.get(ATTRIBUTEVALUES); String closeDateAsString = ""; for (int i = 0; i < jsonNodeArray.size(); i++) { if (jsonNodeArray.get(i).get(ATTRIBUTE).get(CODE).textValue().equals( UserDB.ATTRIBUTE_USER_CLOSE_DATE)) { closeDateAsString = jsonNodeArray.get(i).get(VALUE).textValue(); } } if (closeDateAsString == null || closeDateAsString.equals("")) { return false; } closedDate = Utils.parseStringToCalendar(closeDateAsString, DHIS2_GMT_NEW_DATE_FORMAT).getTime(); if(closedDate == null) { return false; } return closedDate.before(new Date()); }
Source:
<code>protected Map<UUID, Long> collectMessagesCountByNodeId(String metricName) { Map<UUID, Long> res = new HashMap<>(); String mregPrefix = COMMUNICATION_METRICS_GROUP_NAME + MetricUtils.SEPARATOR; <START> for (MetricRegistry mreg : mmgr) { <END> if (mreg.name().startsWith(mregPrefix)) { String nodeIdStr = mreg.name().substring(mregPrefix.length()); try { UUID nodeId = UUID.fromString(nodeIdStr); res.put(nodeId, mreg.<LongMetric>findMetric(metricName).value()); } catch (IllegalArgumentException ignore) { } } } return res; }</code><technical_language>empty line required</technical_language>

Target:
protected Map<UUID, Long> collectMessagesCountByNodeId(String metricName) { Map<UUID, Long> res = new HashMap<>(); String mregPrefix = COMMUNICATION_METRICS_GROUP_NAME + SEPARATOR; for (MetricRegistry mreg : mmgr) { if (mreg.name().startsWith(mregPrefix)) { String nodeIdStr = mreg.name().substring(mregPrefix.length()); UUID nodeId = UUID.fromString(nodeIdStr); res.put(nodeId, mreg.<LongMetric>findMetric(metricName).value()); } } return res; }
Source:
<code>public void testGetId() { byte[] id0 = new UniqueId().getId(); byte[] id1 = new UniqueId().getId(); <START> assertNotEquals(id0, id1); <END> }</code><technical_language>instance of UniqueId [has internal counter called seq](<LINK_0> increments id is generated resets millisecond. id0 id1 equal getId calls fall millisecond. This is instances of UniqueId seq counter set 0</technical_language>

Target:
public void testGetId() { UniqueId uniqueId = new UniqueId(); assertNotEquals(uniqueId.getId(), uniqueId.getId()); }
Source:
<code>public String toString() { return "EmbeddedMaxIdleExpirableMetadata{" + <START> "version=" + version() + <END> ", maxIdle=" + maxIdle + '}'; }</code><technical_language>version is protected. I need access accessor</technical_language>

Target:
public String toString() { return "EmbeddedMaxIdleExpirableMetadata{" + "version=" + version + ", maxIdle=" + maxIdle + '}'; }
Source:
<code>public static GameObject getEntity(GameObjectDAO data, EntityType type) { switch (type) { case ENEMY_CHARACTER: { BoDCharacter enemy = null; Point2D position = new Point2D(data.x, data.y); switch (data.specialization) { case BLASTER: enemy = new Blaster(data.objectId, position, defaultImages.get(EntityType.ENEMY_CHARACTER)); break; case ROLLER: enemy = new Roller(data.objectId, position, defaultImages.get(EntityType.ENEMY_CHARACTER)); break; case HEAVY: enemy = new Heavy(data.objectId, position, defaultImages.get(EntityType.ENEMY_CHARACTER)); break; default: break; } <START> enemy.setNickname(data.nickname); <END> return enemy; } case BULLET: { return new Bullet(data.objectId, new Point2D(data.x, data.y), data.height, new Vector2(data.velocityX, data.velocityY), data.damage, data.bulletType, (Image) Weapon.getBulletImages().get(data.bulletType), data.ownerId); } default: return null; } }</code><technical_language>null if specialization is valid</technical_language>

Target:
public static GameObject getEntity(GameObjectDAO data, EntityType type) { switch (type) { case ENEMY_CHARACTER: { BoDCharacter enemy = null; Point2D position = new Point2D(data.x, data.y); switch (data.specialization) { case BLASTER: enemy = new Blaster(data.objectId, position, defaultImages.get(EntityType.ENEMY_CHARACTER)); break; case ROLLER: enemy = new Roller(data.objectId, position, defaultImages.get(EntityType.ENEMY_CHARACTER)); break; case HEAVY: enemy = new Heavy(data.objectId, position, defaultImages.get(EntityType.ENEMY_CHARACTER)); break; default: return null; } enemy.setNickname(data.nickname); return enemy; } case BULLET: { return new Bullet(data.objectId, new Point2D(data.x, data.y), data.height, new Vector2(data.velocityX, data.velocityY), data.damage, data.bulletType, (Image)Weapon.getBulletImages().get(data.bulletType), data.ownerId); } default: return null; } }
Source:
<code>public KubernetesSlave(PodTemplate template, String nodeDescription, KubernetesCloud cloud, Label label) <START> throws Descriptor.FormException, IOException { <END> super(getSlaveName(template), nodeDescription, template.getRemoteFs(), 1, Node.Mode.NORMAL, label == null ? null : label.toString(), new JNLPLauncher(), new OnceRetentionStrategy(cloud.getRetentionTimeout()), template.getNodeProperties()); this.cloud = cloud; }</code><technical_language>call this(template, nodeDescription, cloud, label, new OnceRetentionStrategy(cloud.getRetentionTimeout())) avoid duplicated code</technical_language>

Target:
public KubernetesSlave(PodTemplate template, String nodeDescription, KubernetesCloud cloud, Label label) throws Descriptor.FormException, IOException { this(template, nodeDescription, cloud, label.toString(), new OnceRetentionStrategy(cloud.getRetentionTimeout())) ; }
Source:
<code>public void checkAttributeValue(PerunSessionImpl perunSession, Facility facility, Attribute attribute) throws InternalErrorException, WrongAttributeValueException, WrongReferenceAttributeValueException { if(attribute.getValue() == null) return; Integer quotaEnabled = (Integer) attribute.getValue(); <START> if(quotaEnabled > 1 || quotaEnabled < 0) throw new WrongAttributeValueException(attribute, "Attribute has only two possible options for quota: 0 - means not enabled, 1 - means enabled."); <END> }</code><technical_language>Please add attribute holder exception parameters</technical_language>

Target:
public void checkAttributeValue(PerunSessionImpl perunSession, Facility facility, Attribute attribute) throws InternalErrorException, WrongAttributeValueException, WrongReferenceAttributeValueException { if(attribute.getValue() == null) return; Integer quotaEnabled = (Integer) attribute.getValue(); if(quotaEnabled > 1 || quotaEnabled < 0) throw new WrongAttributeValueException(attribute, facility, null, "Attribute has only two possible options for quota: 0 - means not enabled, 1 - means enabled."); }
Source:
<code>DoublesSketchAggregatorFactory(final String name, final String fieldName, final Integer k, final byte cacheTypeId) { if (name == null) { throw new IAE("Must have a valid, non-null aggregator name"); } this.name = name; if (fieldName == null) { throw new IAE("Parameter fieldName must be specified"); } this.fieldName = fieldName; this.k = k == null ? DEFAULT_K : k; <START> Util.checkIfPowerOf2(this.k, "size"); <END> this.cacheTypeId = cacheTypeId; }</code><technical_language>size more intuitive. vice versa</technical_language>

Target:
DoublesSketchAggregatorFactory(final String name, final String fieldName, final Integer k, final byte cacheTypeId) { if (name == null) { throw new IAE("Must have a valid, non-null aggregator name"); } this.name = name; if (fieldName == null) { throw new IAE("Parameter fieldName must be specified"); } this.fieldName = fieldName; this.k = k == null ? DEFAULT_K : k; Util.checkIfPowerOf2(this.k, "k"); this.cacheTypeId = cacheTypeId; }
Source:
<code>private boolean verify(HttpServletRequest req, Response rsp) throws IOException { final String hdr = req.getHeader(AUTHORIZATION); if (hdr == null || !hdr.startsWith(LIT_BASIC)) { rsp.sendError(SC_UNAUTHORIZED); return false; } final byte[] decoded = Base64.decodeBase64(hdr.substring(LIT_BASIC.length())); <START> String[] auths = new String(decoded, encoding(req)).split(":"); <END> if(auths.length < 2) { rsp.sendError(SC_UNAUTHORIZED); return false; } String username = auths[0]; String password = auths[1]; final AccountState who = accountCache.getByUsername(username); if (who == null || !who.getAccount().isActive()) { rsp.sendError(SC_UNAUTHORIZED); return false; } AuthRequest whoAuth = getAuthRequest(who, password); if (whoAuth == null) { rsp.sendError(SC_UNAUTHORIZED); return false; } try { AuthResult whoAuthResult = accountManager.authenticate(whoAuth); session.get().setUserAccountId(whoAuthResult.getAccountId(), AuthMethod.PASSWORD); return true; } catch (AccountException e) { rsp.sendError(SC_UNAUTHORIZED); return false; } }</code><technical_language>This split once. A password ":" a username cannot. find indexOf(':') cut position, if present SC_FORBIDDEN authorization presented, wrong. a broken client give a Basic header :</technical_language>

Target:
private boolean verify(HttpServletRequest req, Response rsp) throws IOException { final String hdr = req.getHeader(AUTHORIZATION); if (hdr == null) { return true; } final byte[] decoded = Base64.decodeBase64(hdr.substring(LIT_BASIC.length())); String usernamePassword = new String(decoded, encoding(req)); int splitPos = usernamePassword.indexOf(':'); if (splitPos < 1) { rsp.sendError(SC_UNAUTHORIZED); return false; } String username = usernamePassword.substring(0, splitPos); String password = usernamePassword.substring(splitPos + 1); if (Strings.isNullOrEmpty(password)) { rsp.sendError(SC_UNAUTHORIZED); return false; } final AccountState who = accountCache.getByUsername(username); if (who == null || !who.getAccount().isActive()) { log.warn("Authentication failed for " + username + ": account inactive or not provisioned in Gerrit"); rsp.sendError(SC_UNAUTHORIZED); return false; } AuthRequest whoAuth = AuthRequest.forUser(username); whoAuth.setPassword(password); try { AuthResult whoAuthResult = accountManager.authenticate(whoAuth); session.get().setUserAccountId(whoAuthResult.getAccountId(), AuthMethod.PASSWORD); return true; } catch (AccountException e) { log.warn("Authentication failed for " + username, e); rsp.sendError(SC_UNAUTHORIZED); return false; } }
Source:
<code>public Number getLineMiterLimit() { <START> if (paint.get("line-miter_limit") != null) { <END> return (Number) paint.get("line-miter-limit"); } else { return 2; } }</code><technical_language>I underscore a dash</technical_language>

Target:
public Number getLineMiterLimit() { if (paint.get("line-miter-limit") != null) { return (Number) paint.get("line-miter-limit"); } else { return 2; } }
Source:
<code>private void trackMediaAddedToMediaLibrary(SiteModel selectedSite) { ArrayList<Uri> mediaUrls = new ArrayList<>(); if (countMedia() == 1) { Uri singleMedia = getIntent().getParcelableExtra(Intent.EXTRA_STREAM); mediaUrls.add(singleMedia); } else { ArrayList<Uri> imageUris = getIntent().getParcelableArrayListExtra(Intent.EXTRA_STREAM); mediaUrls.addAll(imageUris); } for (Uri uri : mediaUrls) { String mimeType = getContentResolver().getType(uri); boolean isVideo = mimeType != null && mimeType.startsWith("video"); Map<String, Object> properties = AnalyticsUtils.getMediaProperties(this, isVideo, uri, null); <START> AnalyticsUtils.trackWithSiteDetails(AnalyticsTracker.Stat.MEDIA_LIBRARY_ADDED_PHOTO, selectedSite, properties); <END> } }</code><technical_language>I check if a video bump stats accordingly: if (isVideo) { AnalyticsUtils.trackWithSiteDetails(AnalyticsTracker.Stat.MEDIA_LIBRARY_ADDED_VIDEO, selectedSite, properties); } else { AnalyticsUtils.trackWithSiteDetails(AnalyticsTracker.Stat.MEDIA_LIBRARY_ADDED_PHOTO, selectedSite, properties); }</technical_language>

Target:
private void trackMediaAddedToMediaLibrary(SiteModel selectedSite) { ArrayList<Uri> mediaUrls = new ArrayList<>(); if (countMedia() == 1) { Uri singleMedia = getIntent().getParcelableExtra(Intent.EXTRA_STREAM); mediaUrls.add(singleMedia); } else { ArrayList<Uri> imageUris = getIntent().getParcelableArrayListExtra(Intent.EXTRA_STREAM); mediaUrls.addAll(imageUris); } for (Uri uri : mediaUrls) { String mimeType = getContentResolver().getType(uri); boolean isVideo = mimeType != null && mimeType.startsWith("video"); Map<String, Object> properties = AnalyticsUtils.getMediaProperties(this, isVideo, uri, null); AnalyticsTracker.Stat mediaTypeTrack = isVideo ? AnalyticsTracker.Stat.MEDIA_LIBRARY_ADDED_VIDEO : AnalyticsTracker.Stat.MEDIA_LIBRARY_ADDED_PHOTO; AnalyticsUtils.trackWithSiteDetails(mediaTypeTrack, selectedSite, properties); } }
Source:
<code>public void notifyNotEnoughResourcesAvailable(Collection<ResourceRequirement> acquiredResources) { assertRunningInMainThread(); <START> componentMainThreadExecutor.schedule( failPendingRequests(), resourceAcquisitionTimeout.toMillis(), TimeUnit.MILLISECONDS); <END> }</code><technical_language>scheduling failPendingRequests execute immediately</technical_language>

Target:
public void notifyNotEnoughResourcesAvailable(Collection<ResourceRequirement> acquiredResources) { assertRunningInMainThread(); failPendingRequests(); }
Source:
<code>public byte[] encryptBytes(byte[] data) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, InvalidAlgorithmParameterException, IllegalBlockSizeException, BadPaddingException { Cipher encCipher = Cipher.getInstance(algModePadding); <START> if (this.mode.equals("CBC") || this.mode.equals("OFB") || this.mode.equals("CFB") <END> || this.mode.equals("CTR")) { encCipher.init(Cipher.ENCRYPT_MODE, this.secretKey, new IvParameterSpec(this.initvector)); } else if (this.mode.equals("ECB")) { encCipher.init(Cipher.ENCRYPT_MODE, this.secretKey); } byte[] encryptedData = encCipher.doFinal(data); return encryptedData; }</code><technical_language>Another TODO: I ENUMs defined in a single file. Shawn out a doc called Keymaster v4 of defined a proto - I sense for keeping cross-language capabilities aligned</technical_language>

Target:
public byte[] encryptBytes(byte[] data) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, InvalidAlgorithmParameterException, IllegalBlockSizeException, BadPaddingException { Cipher encCipher = Cipher.getInstance(algModePadding); if (this.mode.equals(Mode.CBC) || this.mode.equals(Mode.OFB) || this.mode.equals(Mode.CFB) || this.mode.equals(Mode.CTR)) { encCipher.init(Cipher.ENCRYPT_MODE, this.secretKey, new IvParameterSpec(this.initvector)); } else if (this.mode.equals(Mode.ECB)) { encCipher.init(Cipher.ENCRYPT_MODE, this.secretKey); } byte[] encryptedData = encCipher.doFinal(data); return encryptedData; }
Source:
<code>private String formatAnnotations(Collection<? extends Annotation> annos) { StringBuilder sb = new StringBuilder(); for (Annotation tla : annos) { <START> if (!tla.def.name.contains("+")) { <END> sb.append(formatAnnotation(tla)); sb.append(" "); } } return sb.toString(); }</code><technical_language>I suggest abstracting out this test a method</technical_language>

Target:
private static String formatAnnotations(Collection<? extends Annotation> annos) { StringBuilder sb = new StringBuilder(); for (Annotation tla : annos) { if (!isInternalJDKAnnotation(tla.def.name)) { sb.append(formatAnnotation(tla)); sb.append(" "); } } return sb.toString(); }
Source:
<code>public void rebase(final PatchSet.Id patchSetId, final IdentifiedUser uploader) throws NoSuchChangeException, EmailException, OrmException, IOException, InvalidChangeOperationException { final Change.Id changeId = patchSetId.getParentKey(); final ChangeControl changeControl = changeControlFactory.validateFor(changeId, uploader); if (!changeControl.canRebase()) { throw new InvalidChangeOperationException( "Cannot rebase: New patch sets are not allowed to be added to change: " + changeId.toString()); } final Change change = changeControl.getChange(); Repository git = null; RevWalk rw = null; ObjectInserter inserter = null; try { git = gitManager.openRepository(change.getProject()); rw = new RevWalk(git); inserter = git.newObjectInserter(); final String baseRev = findBaseRevision(patchSetId, db.get(), change.getDest(), git, null, null, null); final RevCommit baseCommit = rw.parseCommit(ObjectId.fromString(baseRev)); PersonIdent committerIdent = <START> uploader.newCommitterIdent(myIdent.getWhen(), <END> myIdent.getTimeZone()); rebase(git, rw, inserter, patchSetId, change, uploader, baseCommit, mergeUtilFactory.create( changeControl.getProjectControl().getProjectState(), true), committerIdent, true, true, ValidatePolicy.GERRIT); } catch (PathConflictException e) { throw new IOException(e.getMessage()); } finally { if (inserter != null) { inserter.release(); } if (rw != null) { rw.release(); } if (git != null) { git.close(); } } }</code><technical_language>This is frozen server startup (or rebase request). "now"</technical_language>

Target:
public void rebase(final PatchSet.Id patchSetId, final IdentifiedUser uploader) throws NoSuchChangeException, EmailException, OrmException, IOException, InvalidChangeOperationException { final Change.Id changeId = patchSetId.getParentKey(); final ChangeControl changeControl = changeControlFactory.validateFor(changeId, uploader); if (!changeControl.canRebase()) { throw new InvalidChangeOperationException( "Cannot rebase: New patch sets are not allowed to be added to change: " + changeId.toString()); } final Change change = changeControl.getChange(); Repository git = null; RevWalk rw = null; ObjectInserter inserter = null; try { git = gitManager.openRepository(change.getProject()); rw = new RevWalk(git); inserter = git.newObjectInserter(); final String baseRev = findBaseRevision(patchSetId, db.get(), change.getDest(), git, null, null, null); final RevCommit baseCommit = rw.parseCommit(ObjectId.fromString(baseRev)); PersonIdent committerIdent = uploader.newCommitterIdent(TimeUtil.nowTs(), myIdent.getTimeZone()); rebase(git, rw, inserter, patchSetId, change, uploader, baseCommit, mergeUtilFactory.create( changeControl.getProjectControl().getProjectState(), true), committerIdent, true, true, ValidatePolicy.GERRIT); } catch (PathConflictException e) { throw new IOException(e.getMessage()); } finally { if (inserter != null) { inserter.release(); } if (rw != null) { rw.release(); } if (git != null) { git.close(); } } }
Source:
<code>default String getDragComponentTitle() { final String componentName = getComponentName(); <START> return componentName == null ? "Unknow" : componentName; <END> }</code><technical_language>suggestion return componentName == null ? "Unknown" : componentName; If this UI, gonna need i18n for that</technical_language>

Target:
public default String getDragComponentTitle() { final String componentName = getComponentName(); return componentName == null ? "Unknown" : componentName; }
Source:
<code>public void train(final Matrix input, final int[] labels) { final int labelRows = getShapeLength(layers[layers.length - 1].getOutputShape()); final int labelCols = labels.length; <START> if (labelMatrix.getRows() != labelRows || labelMatrix.getColumns() != labelCols) { <END> labelMatrix.free(); labelMatrix = matrixFactory.create(labelRows, labelCols); } setOutputMatrix(labelMatrix, labels, labelRows); train(input, labelMatrix); }</code><technical_language>omit labelMatrix.getRows() != labelRows do allow reshaping of layers</technical_language>

Target:
public void train(final Matrix input, final int[] labels) { final int labelRows = getShapeLength(layers[layers.length - 1].getOutputShape()); final int labelCols = labels.length; if (labelMatrix.getColumns() != labelCols) { MatrixUtils.free(labelMatrix); labelMatrix = matrixFactory.create(labelRows, labelCols); } setOutputMatrix(labelMatrix, labels, labelRows); train(input, labelMatrix); }
Source:
<code>private synchronized Map<String, Ref> getRefs(final Repository repo, final String prefix) throws IOException { Map<String, Ref> allRefs = branchRefs.get(repo); if (allRefs == null) { allRefs = repo.getRefDatabase().getRefs(RefDatabase.ALL); branchRefs.put(repo, allRefs); RefsChangedListener listener = new RefsChangedListener() { public void onRefsChanged(RefsChangedEvent event) { synchronized (RepositoriesViewContentProvider.this) { branchRefs.remove(repo); <START> refsChangedListener.remove(); <END> } } }; refsChangedListener = repo.getListenerList().addRefsChangedListener(listener); } if (prefix.equals(RefDatabase.ALL)) return allRefs; Map<String, Ref> filtered = new HashMap<String, Ref>(); for (Map.Entry<String, Ref> entry : allRefs.entrySet()) { if (entry.getKey().startsWith(prefix)) filtered.put(entry.getKey(), entry.getValue()); } return filtered; }</code><technical_language>Listener triggered for repo A, assignment of refsChangedListener related repo B</technical_language>

Target:
private synchronized Map<String, Ref> getRefs(final Repository repo, final String prefix) throws IOException { Map<String, Ref> allRefs = branchRefs.get(repo); if (allRefs == null) { allRefs = repo.getRefDatabase().getRefs(RefDatabase.ALL); branchRefs.put(repo, allRefs); if (refsChangedListeners.get(repo) == null) { RefsChangedListener listener = new RefsChangedListener() { public void onRefsChanged(RefsChangedEvent event) { System.out.println("onRefsChanged in " + repo); synchronized (RepositoriesViewContentProvider.this) { branchRefs.remove(repo); } } }; System.out.println("Add onRefsChanges listener to " + repo); refsChangedListeners.put(repo, repo.getListenerList() .addRefsChangedListener(listener)); } } if (prefix.equals(RefDatabase.ALL)) return allRefs; Map<String, Ref> filtered = new HashMap<String, Ref>(); for (Map.Entry<String, Ref> entry : allRefs.entrySet()) { if (entry.getKey().startsWith(prefix)) filtered.put(entry.getKey(), entry.getValue()); } return filtered; }
Source:
<code>public void deleteAllLogsTest() throws Exception { <START> CountDownAsyncJobListener countDownListener = new CountDownAsyncJobListener(1); <END> ((ExecutorServiceImpl) getExecutorService()).addAsyncJobListener(countDownListener); String id = caseService.startCase(DEPLOYMENT_UNIT, LOG_CLEANUP_ID); logger.info("CASE CREATED: {}", id); Thread.sleep(1010); Assertions.assertThat(getCaseFileDataLogSize(LOG_CLEANUP_ID)).isEqualTo(1); Assertions.assertThat(getCaseAssignmentRoleLogSize(LOG_CLEANUP_ID)).isPositive(); scheduleLogCleanup(null, "1s", LOG_CLEANUP_ID); countDownListener.waitTillCompleted(); Assertions.assertThat(getCaseFileDataLogSize(LOG_CLEANUP_ID)).isZero(); Assertions.assertThat(getCaseAssignmentRoleLogSize(LOG_CLEANUP_ID)).isZero(); }</code><technical_language>starting more cases complete a subset of them. ensure cases statuses 2,3 deleted</technical_language>

Target:
public void deleteAllLogsTest() throws Exception { CountDownAsyncJobListener countDownListener = new CountDownAsyncJobListener(1); ((ExecutorServiceImpl) getExecutorService()).addAsyncJobListener(countDownListener); String caseIdIncomplete = caseService.startCase(DEPLOYMENT_UNIT, LOG_INCOMPLETE_CLEANUP_ID); logger.info("CASE CREATED: {}", caseIdIncomplete); caseService.cancelCase(caseIdIncomplete); Thread.sleep(1010); Assertions.assertThat(getCaseFileDataLogSize()).isEqualTo(1); Assertions.assertThat(getCaseAssignmentRoleLogSize()).isPositive(); scheduleLogCleanup(null, "1s", Collections.emptyMap()); countDownListener.waitTillCompleted(); Assertions.assertThat(getCaseFileDataLogSize()).isZero(); Assertions.assertThat(getCaseAssignmentRoleLogSize()).isZero(); Assertions.assertThat(getProcessLogSize(LOG_INCOMPLETE_CLEANUP_ID)).isZero(); Assertions.assertThat(getTaskLogSize(LOG_INCOMPLETE_CLEANUP_ID)).isZero(); Assertions.assertThat(getNodeInstanceLogSize(LOG_INCOMPLETE_CLEANUP_ID)).isZero(); Assertions.assertThat(getVariableLogSize(LOG_INCOMPLETE_CLEANUP_ID)).isZero(); }
Source:
<code>protected AssertionType getAssertion(WebServiceContext context, AssertionType assertionIn) { AssertionType assertion; WSAHeaderHelper wsaHelper = new WSAHeaderHelper(); if (assertionIn == null) { assertion = SAML2AssertionExtractor.getInstance().extractSamlAssertion(context); } else { assertion = assertionIn; } if (assertion != null) { if (NullChecker.isNullish(assertion.getMessageId())) { assertion.setMessageId(extractor.getOrCreateAsyncMessageId(context)); } else { assertion.setMessageId(wsaHelper.fixMessageIDPrefix(assertion.getMessageId())); } } if (assertion != null) { List<String> relatesToList = extractor.getAsyncRelatesTo(context); if (NullChecker.isNotNullish(relatesToList)) { assertion.getRelatesToList().add(relatesToList.get(0)); } } try { if (assertion != null && getPropertyAccessor().getPropertyBoolean(NhincConstants.GATEWAY_PROPERTY_FILE, NhincConstants.READ_HTTP_HEADERS)) { MessageContext messageContext = getMessageContext(context); <START> if (messageContext != null || (messageContext instanceof WrappedMessageContext)) { <END> readHttpHeaders(messageContext, assertion); } } } catch (PropertyAccessException ex) { LOG.warn("Unable to access property for reading HTTP headers.", ex); } return assertion; }</code><technical_language>![BLOCKER](<LINK_2> Change this condition evaluate "false" [![rule](<LINK_1>](<LINK_0></technical_language>

Target:
protected AssertionType getAssertion(WebServiceContext context, AssertionType assertionIn) { AssertionType assertion; WSAHeaderHelper wsaHelper = new WSAHeaderHelper(); if (assertionIn == null) { assertion = SAML2AssertionExtractor.getInstance().extractSamlAssertion(context); } else { assertion = assertionIn; } if (assertion != null) { handleMessageId(assertion, context, wsaHelper); handleRelatesTo(context, assertion); handleHttpHeaders(assertion, context); } return assertion; }
Source:
<code>public static void signIn(User user) throws ValidationException { info("Sign in a User: " + user); openAndFillSignInDialog(user); checkFormValidation(signInPage.getErrorFormElements()); if (signInPage.isSignInDialogOpened()) { info("WARNING: Sign in dialog is still opened after successful validation"); signInPage.clickSubmitButton(); } <START> info("Sign in dialog is closed"); <END> if (!mainPage.userIsLoggedIn()) { LOGGER.error("Could not find username in top right corner: {}", driver.getPageSource()); throw new CouldNotOpenPageException("User does not appear to be logged on: " + user.getUsername()); } }</code><technical_language>check element hidden.</technical_language>

Target:
public static void signIn(User user) throws ValidationException { info("Sign in a User: " + user); openAndFillSignInDialog(user); checkFormValidation(signInPage.getErrorFormElements()); if (signInPage.isSignInDialogOpened()) { info("WARNING: Sign in dialog is still opened after successful validation. Trying to click submit once again."); signInPage.clickSubmitButton(); checkFormValidation(signInPage.getErrorFormElements()); } else { info("Sign in dialog is closed"); } if (!mainPage.userIsLoggedIn()) { LOGGER.error("Could not find username in top right corner: {}", driver.getPageSource()); throw new CouldNotOpenPageException("User does not appear to be logged on: " + user.getUsername()); } }
Source:
<code>public ObjectTag getContext(String name) { if (name.equals("delay")) { <START> return new ElementTag(event.getToggleDelay()); <END> } else if (name.equals("weapon")) { return new ElementTag(event.getWeaponTitle()); } return super.getContext(name); }</code><technical_language>DurationTags</technical_language>

Target:
public ObjectTag getContext(String name) { if (name.equals("delay")) { return new DurationTag(event.getToggleDelay()); } else if (name.equals("weapon")) { return new ElementTag(event.getWeaponTitle()); } return super.getContext(name); }
Source:
<code>public UsersWorkspaceDto startByName(@QueryParam("name") String name, @QueryParam("environment") String envName, @QueryParam("accountId") String accountId) throws ServerException, BadRequestException, NotFoundException, ForbiddenException { <START> final UsersWorkspace workspace = workspaceManager.getWorkspace(name, getCurrentUserId()); <END> ensureUserIsWorkspaceOwner(workspace.getId()); final ImmutableMap<String, String> params = ImmutableMap.of("accountId", accountId, "workspaceId", workspace.getId()); permissionManager.checkPermission(START_WORKSPACE, getCurrentUserId(), params); return injectLinks(DtoConverter.asDto(workspaceManager.startWorkspaceByName(name, envName, getCurrentUserId(), accountId))); }</code><technical_language>move this line _ensureUserIsWorkspaceOwner_ method is part of it. name _ensureUserIsWorkspaceOwnerByName_</technical_language>

Target:
public UsersWorkspaceDto startByName(@QueryParam("name") String name, @QueryParam("environment") String envName, @QueryParam("accountId") String accountId) throws ServerException, BadRequestException, NotFoundException, ForbiddenException { final UsersWorkspace workspace = workspaceManager.getWorkspace(name, getCurrentUserId()); ensureUserIsWorkspaceOwner(workspace.getId()); permissionManager.checkPermission(START_WORKSPACE, getCurrentUserId(), ImmutableMap.of("accountId", accountId, "workspaceId", workspace.getId())); return injectLinks(DtoConverter.asDto(workspaceManager.startWorkspaceByName(name, envName, getCurrentUserId(), accountId))); }
Source:
<code>protected void onPause() { <START> super.onPause(); <END> if (null != playerSkinLayoutController) { playerSkinLayoutController.onPause(); } if (null != player) { player.suspend(); } Log.d(TAG, "Player Activity Stopped"); }</code><technical_language>rename method, log is old: Log.d(TAG, "Player Activity Stopped"); change this log delete if is used</technical_language>

Target:
protected void onPause() { super.onPause(); if (null != playerSkinLayoutController) { playerSkinLayoutController.onPause(); } if (null != player) { player.suspend(); } Log.d(TAG, "Player Activity Paused"); }
Source:
<code>public static Uri getOptimizedMedia(Activity activity, SiteModel siteModel, String path, boolean isVideo) { boolean isOptimized = false; <START> if (!NetworkUtils.isWiFiConnected(activity) && !isVideo) { <END> SiteSettingsInterface siteSettings = SiteSettingsInterface.getInterface(activity, siteModel, null); if (siteSettings != null && siteSettings.init(false).getOptimizedImage()) { String optimizedPath = ImageUtils.optimizeImage(activity, path, 3000, 85); if (optimizedPath == null) { AppLog.e(AppLog.T.EDITOR, "Optimized picture was null!"); AnalyticsTracker.track(AnalyticsTracker.Stat.MEDIA_PHOTO_OPTIMIZE_ERROR); } else { AnalyticsTracker.track(AnalyticsTracker.Stat.MEDIA_PHOTO_OPTIMIZED); return Uri.parse(optimizedPath); } } } return null; }</code><technical_language>this skipped network type is TYPE_ETHERNET TYPE_WIMAX</technical_language>

Target:
public static Uri getOptimizedMedia(Activity activity, SiteModel siteModel, String path, boolean isVideo) { if (isVideo || !NetworkUtils.isMobileConnected(activity)) { return null; } SiteSettingsInterface siteSettings = SiteSettingsInterface.getInterface(activity, siteModel, null); if (siteSettings != null && siteSettings.init(false).getOptimizedImage()) { String optimizedPath = ImageUtils.optimizeImage(activity, path, OPTIMIZE_IMAGE_MAX_WIDTH, OPTIMIZE_IMAGE_ENCODER_QUALITY); if (optimizedPath == null) { AppLog.e(AppLog.T.EDITOR, "Optimized picture was null!"); AnalyticsTracker.track(AnalyticsTracker.Stat.MEDIA_PHOTO_OPTIMIZE_ERROR); } else { AnalyticsTracker.track(AnalyticsTracker.Stat.MEDIA_PHOTO_OPTIMIZED); return Uri.parse(optimizedPath); } } return null; }
Source:
<code><START> public FStatelessNatsServer(Connection conn, FProcessor processor, FProtocolFactory protoFactory, <END> String subject, String queue, int workerCount, int queueLength) { this.conn = conn; this.processor = processor; this.inputProtoFactory = protoFactory; this.outputProtoFactory = protoFactory; this.subject = subject; this.queue = queue; BlockingQueue<Runnable> workQueue = new ArrayBlockingQueue<>(queueLength); this.workerPool = new ThreadPoolExecutor(1, workerCount, 30, TimeUnit.SECONDS, workQueue, new BlockingRejectedExecutionHandler()); }</code><technical_language>Consider replacing similar constructors a Builder. client API easier use. note making constructors public future deprecation removable difficult. like: java /** * a single private constructor. */ private FStatelessNatsServer(Connection conn, FProcessor processor, FProtocolFactory protoFactory, String subject, String queue, int workerCount, int queueLength) { // set instance } ... public static class Builder { // settings for instance build private final String queue; public Builder(Connection conn, FProcessor p, FProtocolFactory proto) { // this.blah = blah } public Builder withQueue(String queue) { this.queue = queue; return this; } public FStatelessNatsServer build() { // call private instance constructor return new FStatelessNatsServer(...); } } client a fluent interface: java FStatelessNatsServer server = FStatelessNatsServer.Builder(connection, processor, protoFactory) .withSubject("my-subject") .withQueueGroup("new-group") .build();</technical_language>

Target:
private FStatelessNatsServer(Connection conn, FProcessor processor, FProtocolFactory protoFactory, String subject, String queue, int workerCount, int queueLength) { this.conn = conn; this.processor = processor; this.inputProtoFactory = protoFactory; this.outputProtoFactory = protoFactory; this.subject = subject; this.queue = queue; BlockingQueue<Runnable> workQueue = new ArrayBlockingQueue<>(queueLength); this.workerPool = new ThreadPoolExecutor(1, workerCount, 30, TimeUnit.SECONDS, workQueue, new BlockingRejectedExecutionHandler()); }
Source:
<code>public void serializabilityTest() throws Exception { DimensionalTable<Integer> table = createTestTable(); <START> KryoCloneUtils.cloneByKryo(new Kryo(), table); <END> }</code><technical_language>IMO, KryoCloneUtils.cloneByKryo(table);and remove Kryo import</technical_language>

Target:
public void serializabilityTest() throws Exception { DimensionalTable<Integer> table = createTestTable(); KryoCloneUtils.cloneObject(table); }
Source:
<code>public StmtSubqueryScan(AbstractParsedStmt subqueryStmt, String tableAlias, int stmtId) { super(tableAlias, stmtId); m_subqueryStmt = subqueryStmt; while (subqueryStmt instanceof ParsedUnionStmt) { assert( ! ((ParsedUnionStmt)subqueryStmt).m_children.isEmpty()); subqueryStmt = ((ParsedUnionStmt)subqueryStmt).m_children.get(0); } assert (subqueryStmt instanceof ParsedSelectStmt); int i = 0; for (ParsedColInfo col: ((ParsedSelectStmt)subqueryStmt).displayColumns()) { String colAlias = col.alias == null? col.columnName : col.alias; <START> SchemaColumn scol = new SchemaColumn(col.tableName, col.tableAlias, col.columnName, col.alias, col.expression, col.differentiator); <END> m_outputColumnList.add(scol); m_outputColumnIndexMap.put(Pair.of(colAlias, col.differentiator), i); i++; } }</code><technical_language>Simplifying this line "SchemaColumn scol = col.asSchemaColumn();" insulate future maintenance edits this</technical_language>

Target:
public StmtSubqueryScan(AbstractParsedStmt subqueryStmt, String tableAlias, int stmtId) { super(tableAlias, stmtId); m_subqueryStmt = subqueryStmt; while (subqueryStmt instanceof ParsedUnionStmt) { assert( ! ((ParsedUnionStmt)subqueryStmt).m_children.isEmpty()); subqueryStmt = ((ParsedUnionStmt)subqueryStmt).m_children.get(0); } assert (subqueryStmt instanceof ParsedSelectStmt); int i = 0; for (ParsedColInfo col: ((ParsedSelectStmt)subqueryStmt).displayColumns()) { String colAlias = col.alias == null? col.columnName : col.alias; SchemaColumn scol = col.asSchemaColumn(); m_outputColumnList.add(scol); m_outputColumnIndexMap.put(Pair.of(colAlias, col.differentiator), i); i++; } }
Source:
<code>private void writeStack() throws Exception { File dir = new File(reftablePath); File stackFile = new File(reftablePath + ".stack"); dir.mkdirs(); long start = System.currentTimeMillis(); <START> FileReftableStack stack = new FileReftableStack(stackFile, dir, <END> null, () -> new Config()); List<Ref> refs = readLsRemote().asList(); for (Ref r : refs) { final long j = stack.getMergedReftable().maxUpdateIndex() + 1; if (!stack.addReftable(w -> { w.setMaxUpdateIndex(j).setMinUpdateIndex(j) .begin().writeRef(r); })) { throw new IOException("should succeed"); } } long dt = System.currentTimeMillis() - start; printf("%12s %10d ms avg %6d us/write", "reftable", dt, (dt * 1000)/refs.size()); }</code><technical_language>close stack end</technical_language>

Target:
private void writeStack() throws Exception { File dir = new File(reftablePath); File stackFile = new File(reftablePath + ".stack"); dir.mkdirs(); long start = System.currentTimeMillis(); try (FileReftableStack stack = new FileReftableStack(stackFile, dir, null, () -> new Config())) { List<Ref> refs = readLsRemote().asList(); for (Ref r : refs) { final long j = stack.getMergedReftable().maxUpdateIndex() + 1; if (!stack.addReftable(w -> { w.setMaxUpdateIndex(j).setMinUpdateIndex(j).begin() .writeRef(r); })) { throw new IOException("should succeed"); } } long dt = System.currentTimeMillis() - start; printf("%12s %10d ms avg %6d us/write", "reftable", dt, (dt * 1000) / refs.size()); } }