auphong2707/dl4se-code-review-dataset huggingface dataset:
Source:
<code>protected void generateGroups(String version) { List<String> mvnGroupNames = new ArrayList<>(); mvnGroupNames.addAll(mavenGroups.keySet()); for (String mvnGroupName : mvnGroupNames) { List<String> artifactIds = mavenGroups.get(mvnGroupName); Collections.sort(artifactIds); Set<String> subGroups = new LinkedHashSet<>(); for (String id : artifactIds) { if (id.contains(".")) { String suffix = id.substring(id.lastIndexOf(".") + 1); if (BLACKLIST_SUFFIX.contains(suffix.toLowerCase())) { continue; } String grpName = id.substring(0, id.lastIndexOf(".")); String grp = BundleGroup.PREFIX + grpName; if (grp.equals(mvnGroupName) || BLACKLIST.contains(grpName.toLowerCase())) { continue; <START> } <END> subGroups.add(grp); } } if (subGroups.size() < 1) { } else { for (String grp : subGroups) { List<String> grpArtifactIds = new ArrayList<>(); for (String aid : artifactIds) { if (aid.startsWith(grp) || (BundleGroup.PREFIX + aid).startsWith(grp)) { grpArtifactIds.add(aid); } } if (grpArtifactIds.size() > 1) { for (String aid : grpArtifactIds) { artifactIds.remove(aid); } mavenSubGroups.put(grp, grpArtifactIds); artifactIds.add(grp); } } } } for (String grpId : mavenGroups.keySet()) { buildBundleGroup(grpId, version, true); } }</code><technical_language>This < 2 in original code, is a need change this do a split if size is 1</technical_language>

Target:
protected void generateGroups(String version) { List<String> mvnGroupNames = new ArrayList<>(); mvnGroupNames.addAll(mavenGroups.keySet()); for (String mvnGroupName : mvnGroupNames) { List<String> artifactIds = mavenGroups.get(mvnGroupName); Collections.sort(artifactIds); Set<String> subGroups = new LinkedHashSet<>(); for (String id : artifactIds) { if (id.contains(".")) { String suffix = id.substring(id.lastIndexOf(".") + 1); if (BLACKLIST_SUFFIX.contains(suffix.toLowerCase())) { continue; } String grpName = id.substring(0, id.lastIndexOf(".")); String grp = BundleGroup.PREFIX + grpName; if (grp.equals(mvnGroupName) || BLACKLIST.contains(grpName.toLowerCase())) { continue; } subGroups.add(grp); } } if (subGroups.size() < 1) { } else { for (String grp : subGroups) { List<String> grpArtifactIds = new ArrayList<>(); for (String aid : artifactIds) { if (aid.startsWith(grp) || (BundleGroup.PREFIX + aid).startsWith(grp)) { grpArtifactIds.add(aid); } } if (grpArtifactIds.size() > 1) { artifactIds.removeAll(grpArtifactIds); if (mavenGroups.containsKey(grp)) { mavenGroups.get(grp).addAll(grpArtifactIds); } else { if (mavenSubGroups.containsKey(grp)) { mavenSubGroups.get(grp).addAll(grpArtifactIds); } else { mavenSubGroups.put(grp, grpArtifactIds); } artifactIds.add(grp); } } } } } for (String grpId : mavenGroups.keySet()) { buildBundleGroup(grpId, version, true); } }
Source:
<code>public int run() throws Exception { if (threads <= 0) { threads = 1; } dbInjector = createDbInjector(MULTI_USER); gitInjector = dbInjector.createChildInjector(new LifecycleModule() { @Override protected void configure() { bind(GitRepositoryManager.class).to(LocalDiskRepositoryManager.class); <START> listener().to(LocalDiskRepositoryManager.Lifecycle.class); <END> } }); manager.add(dbInjector, gitInjector); manager.start(); gitInjector.injectMembers(this); final ReviewDb db = database.open(); try { todo = db.changes().all().toList(); synchronized (monitor) { monitor.beginTask("Scanning changes", todo.size()); } } finally { db.close(); } final List<Worker> workers = new ArrayList<Worker>(threads); for (int tid = 0; tid < threads; tid++) { Worker t = new Worker(); t.start(); workers.add(t); } for (Worker t : workers) { t.join(); } synchronized (monitor) { monitor.endTask(); } manager.stop(); return 0; }</code><technical_language>need bind project cache: install(ProjectCache.module()); This require bind cache manager: bind(CachePool.class);</technical_language>

Target:
public int run() throws Exception { if (threads <= 0) { threads = 1; } dbInjector = createDbInjector(MULTI_USER); gitInjector = dbInjector.createChildInjector(new LifecycleModule() { @Override protected void configure() { bind(GitRepositoryManager.class).to(LocalDiskRepositoryManager.class); listener().to(LocalDiskRepositoryManager.Lifecycle.class); bind(CachePool.class); install(ProjectCacheImpl.module()); } }); manager.add(dbInjector, gitInjector); manager.start(); gitInjector.injectMembers(this); final ReviewDb db = database.open(); try { todo = db.changes().all().toList(); synchronized (monitor) { monitor.beginTask("Scanning changes", todo.size()); } } finally { db.close(); } final List<Worker> workers = new ArrayList<Worker>(threads); for (int tid = 0; tid < threads; tid++) { Worker t = new Worker(); t.start(); workers.add(t); } for (Worker t : workers) { t.join(); } synchronized (monitor) { monitor.endTask(); } manager.stop(); return 0; }
Source:
<code>public void onStockMediaUploaded(MediaStore.OnStockMediaUploaded event) { mIsUploading = false; showUploadProgressDialog(false); if (event.isError()) { ToastUtils.showToast(this, R.string.media_upload_error); AppLog.e(AppLog.T.MEDIA, "An error occurred while uploading stock media"); } else { int count = event.mediaList.size(); long[] idArray = new long[count]; for (int i = 0; i < count; i++) { idArray[i] = event.mediaList.get(i).getMediaId(); } Map<String, Integer> properties = new HashMap<>(); properties.put("count", count); <START> AnalyticsTracker.track(AnalyticsTracker.Stat.STOCK_MEDIA_UPLOADED, properties); <END> Intent intent = new Intent(); intent.putExtra(KEY_UPLOADED_MEDIA_IDS, idArray); setResult(RESULT_OK, intent); finish(); } }</code><technical_language>I if reply approach bumping analytics for other photos. Analytics bumped for picture call, adding properties of media event. trackAddRecentMediaEvent in PhotoPickerFragment AnalyticsUtils.getMediaProperties attach properties of media event</technical_language>

Target:
public void onStockMediaUploaded(MediaStore.OnStockMediaUploaded event) { mIsUploading = false; showUploadProgressDialog(false); if (event.isError()) { ToastUtils.showToast(this, R.string.media_upload_error); AppLog.e(AppLog.T.MEDIA, "An error occurred while uploading stock media"); } else { trackUploadedStockMediaEvent(event.mediaList); int count = event.mediaList.size(); long[] idArray = new long[count]; for (int i = 0; i < count; i++) { idArray[i] = event.mediaList.get(i).getMediaId(); } Intent intent = new Intent(); intent.putExtra(KEY_UPLOADED_MEDIA_IDS, idArray); setResult(RESULT_OK, intent); finish(); } }
Source:
<code>public void convert(JsonElement value, ColumnVector vect, int row) { if (value == null || value.isJsonNull()) { vect.noNulls = false; vect.isNull[row] = true; } else { if (value.getAsJsonPrimitive().isString()) { TimestampColumnVector vector = (TimestampColumnVector) vect; vector.set( row, Timestamp.valueOf(value.getAsString().replaceAll( "[TZ]", " "))); } else if (value.getAsJsonPrimitive().isNumber()) { TimestampColumnVector vector = (TimestampColumnVector) vect; vector.set( row, new Timestamp(value.getAsLong())); } else { <START> vect.noNulls = false; <END> vect.isNull[row] = true; } } }</code><technical_language>Do want issue some warnings in this case? If worried logging emitted, some exponential back-off logging (e.g. logging 1th, 2nd, 4th, 8th ... occurrences), useful debugging</technical_language>

Target:
public void convert(JsonElement value, ColumnVector vect, int row) { if (value == null || value.isJsonNull()) { vect.noNulls = false; vect.isNull[row] = true; } else { if (value.getAsJsonPrimitive().isString()) { TimestampColumnVector vector = (TimestampColumnVector) vect; vector.set( row, Timestamp.valueOf(value.getAsString().replaceAll( "[TZ]", " "))); } else if (value.getAsJsonPrimitive().isNumber()) { TimestampColumnVector vector = (TimestampColumnVector) vect; vector.set( row, new Timestamp(value.getAsLong())); } else { if (!back.isBackOff()) { LOG.warn("Timestamp is neither string nor number: {}", value); } vect.noNulls = false; vect.isNull[row] = true; } } }
Source:
<code>protected void finish() { try { if (!samRecords.isEmpty()) flushContainer(); CramIO.issueEOF(cramVersion, outputStream); outputStream.flush(); if (indexer != null) indexer.finish(); outputStream.close(); <START> } catch (final RuntimeException re) { <END> throw re; } catch (final Exception e) { throw new RuntimeException(e); } }</code><technical_language>fix exception rethrows while here? } catch (final IOException e) { throw new RuntimeIOException(e); } catch (final IllegalAccessException e) { throw new RuntimeException(e); }</technical_language>

Target:
protected void finish() { try { if (!samRecords.isEmpty()) { flushContainer(); } CramIO.issueEOF(cramVersion, outputStream); outputStream.flush(); if (indexer != null) { indexer.finish(); } outputStream.close(); } catch (final IOException e) { throw new RuntimeIOException(e); } catch (final IllegalAccessException e) { throw new RuntimeException(e); } }
Source:
<code>private void initTitles() { toolbarTitle = new HashMap<>(); toolbarTitle.put(GlucosioExternalLinks.PRIVACY, R.string.preferences_privacy); toolbarTitle.put(GlucosioExternalLinks.LICENSES, R.string.preferences_licences_open); <START> toolbarTitle.put(GlucosioExternalLinks.TERMS, R.string.preferences_licences_open); <END> }</code><technical_language>terms link I guess</technical_language>

Target:
private void initTitles() { toolbarTitle = new HashMap<>(); toolbarTitle.put(GlucosioExternalLinks.PRIVACY, R.string.preferences_privacy); toolbarTitle.put(GlucosioExternalLinks.LICENSES, R.string.preferences_licences_open); toolbarTitle.put(GlucosioExternalLinks.TERMS, R.string.preferences_terms); }
Source:
<code>public Long getPatientId() { if (isValidPatientId()) { return withPatient.getPatientId(); <START> } <END> return 0L; }</code><technical_language>Refactor get id code GenericDAO remove redundant logic</technical_language>

Target:
public Long getPatientId() { Long localId = 0L; if (isValidPatientId()) { localId = withPatient.getPatientId(); } return localId; }
Source:
<code>default Optional<String> get(String key, Locale locale) { checkNotNull(key, "key"); checkNotNull(locale, "locale"); <START> return Optional.of(getBundle(locale).getString(key)); <END> }</code><technical_language>This throw. <LINK_0></technical_language>

Target:
default Optional<String> get(String key, Locale locale) { checkNotNull(key, "key"); checkNotNull(locale, "locale"); try { return Optional.of(getBundle(locale).getString(key)); } catch (MissingResourceException e) { return Optional.empty(); } }
Source:
<code>protected boolean setAndValidateDiskProfiles() { Map<DiskImage, Guid> map = new HashMap<>(); for (LiveMigrateDiskParameters parameters : getParameters().getParametersList()) { DiskImage diskImage = getDiskImageByImageId(parameters.getImageId()); <START> if (diskImage != null && diskImage.getDiskStorageType() == DiskStorageType.IMAGE) { <END> map.put(diskImage, diskImage.getStorageIds().get(0)); } } return validate(DiskProfileHelper.setAndValidateDiskProfiles(map, getStoragePool().getcompatibility_version())); }</code><technical_language>is IMAGE, you</technical_language>

Target:
protected boolean setAndValidateDiskProfiles() { Map<DiskImage, Guid> map = new HashMap<>(); for (LiveMigrateDiskParameters parameters : getParameters().getParametersList()) { DiskImage diskImage = getDiskImageByImageId(parameters.getImageId()); map.put(diskImage, diskImage.getStorageIds().get(0)); } return validate(DiskProfileHelper.setAndValidateDiskProfiles(map, getStoragePool().getcompatibility_version())); }
Source:
<code>public void deleteCollectionAdminGroupNotFoundTest() throws Exception { context.turnOffAuthorisationSystem(); Group adminGroup = collectionService.createAdministrators(context, collection); context.restoreAuthSystemState(); String token = getAuthToken(eperson.getEmail(), password); getClient(token).perform(delete("/api/core/collections/" + UUID.randomUUID() + "/adminGroup")) <START> .andExpect(status().isNotFound()); <END> }</code><technical_language>double check group is</technical_language>

Target:
public void deleteCollectionAdminGroupNotFoundTest() throws Exception { context.turnOffAuthorisationSystem(); Group adminGroup = collectionService.createAdministrators(context, collection); context.restoreAuthSystemState(); String token = getAuthToken(eperson.getEmail(), password); getClient(token).perform(delete("/api/core/collections/" + UUID.randomUUID() + "/adminGroup")) .andExpect(status().isNotFound()); token = getAuthToken(admin.getEmail(), password); getClient(token).perform(get("/api/core/collections/" + collection.getID() + "/adminGroup")) .andExpect(status().isOk()) .andExpect( jsonPath("$", GroupMatcher.matchGroupEntry(adminGroup.getID(), adminGroup.getName()))); }
Source:
<code>private boolean isMuted(TopicPartition tp, long now) { Long throttleUntilTime = muted.get(tp); boolean result = throttleUntilTime != null && throttleUntilTime > now; <START> if (!result) <END> muted.remove(tp); return result; }</code><technical_language>This throttleUntilTime != null && throttleUntilTime <= something</technical_language>

Target:
private boolean isMuted(TopicPartition tp, long now) { Long throttleUntilTime = muted.get(tp); if (throttleUntilTime == null) return false; if (now >= throttleUntilTime) { muted.remove(tp); return false; } return true; }
Source:
<code>private void requestLocationPermissions() { if (!getActivity().isFinishing()) { <START> new Single<Object>(){ <END> @Override protected void subscribeActual(SingleObserver<? super Object> observer) { locationManager.requestPermissions(getActivity()); } }.subscribeOn(Schedulers.newThread()) .subscribe(); } }</code><technical_language>Dispose of single</technical_language>

Target:
private void requestLocationPermissions() { if (!getActivity().isFinishing()) { disposable = new Single<Object>() { @Override protected void subscribeActual(SingleObserver<? super Object> observer) { locationManager.requestPermissions(getActivity()); } }.subscribeOn(Schedulers.newThread()) .subscribe(); } }
Source:
<code>void loadFiles () { if (sourcePath == null) return; files = new HashMap<> (); for (String <START> element : <END> sourcePath) { File file = new File(element); if (file.exists()) { if (!file.isDirectory()) { if (file.getAbsolutePath().endsWith(".java")) { files.put(file, loadFile(file)); } } else { loadDirectory(file); } } } }</code><technical_language>rename path</technical_language>

Target:
void loadFiles () { if (sourcePath == null) return; files = new HashMap<> (); for (String path : sourcePath) { File file = new File(path); if (file.exists()) { if (!file.isDirectory()) { if (file.getAbsolutePath().endsWith(".java")) { files.put(file, loadFile(file)); } } else { loadDirectory(file); } } } }
Source:
<code>public void deleteRecursively() throws RuntimeIOException { if (isDirectory()) { boolean allSucces = true; for (OverthereFile each : listFiles()) { try { each.deleteRecursively(); } catch (RuntimeIOException rio) { <START> logger.warn("Unable to delete child "+ each + ". Continue...", rio); <END> allSucces = false; } } if (allSucces) { delete(); } else { throw new RuntimeIOException("Cannot delete " + this + ", not all children are deleted."); } } else { delete(); } }</code><technical_language>{} in format string instead of concatenating strings</technical_language>

Target:
public void deleteRecursively() throws RuntimeIOException { if (isDirectory()) { RuntimeIOException accumulator = new RuntimeIOException("Cannot delete " + this + ", not all children are deleted."); for (OverthereFile each : listFiles()) { try { each.deleteRecursively(); } catch (RuntimeIOException rio) { logger.warn("Unable to delete child {}. Continue...", each); accumulator.addSuppressed(rio); } } Throwable[] suppressed = accumulator.getSuppressed(); if (suppressed == null || suppressed.length == 0) { delete(); } else { throw accumulator; } } else { delete(); } }
Source:
<code>public static FileSystem getWALFileSystem(final Configuration c) throws IOException { Path p = getWALRootDir(c); FileSystem fs = p.getFileSystem(c); String enforceStreamCapability = c.get(UNSAFE_STREAM_CAPABILITY_ENFORCE); if (enforceStreamCapability != null) { fs.getConf().set(UNSAFE_STREAM_CAPABILITY_ENFORCE, enforceStreamCapability); } <START> if (!c.getBoolean(HConstants.CLUSTER_DISTRIBUTED, false)) { <END> LOG.warn("Cannot enforce durability guarantees while running in" + " standalone mode ({}={}).", HConstants.CLUSTER_DISTRIBUTED, false); fs.getConf().setBoolean(UNSAFE_STREAM_CAPABILITY_ENFORCE, false); } return fs; }</code><technical_language>nit: else if? meaning if user override UNSAFE_STREAM_CAPABILITY_ENFORCE a local fs mode.</technical_language>

Target:
public static FileSystem getWALFileSystem(final Configuration c) throws IOException { Path p = getWALRootDir(c); FileSystem fs = p.getFileSystem(c); String enforceStreamCapability = c.get(UNSAFE_STREAM_CAPABILITY_ENFORCE); if (enforceStreamCapability != null) { fs.getConf().set(UNSAFE_STREAM_CAPABILITY_ENFORCE, enforceStreamCapability); } if (fs instanceof LocalFileSystem) { final boolean value = false; LOG.warn("Cannot enforce durability guarantees while running on {}. Setting {}={} for" + " this FileSystem.", fs.getUri(), UNSAFE_STREAM_CAPABILITY_ENFORCE, value); fs.getConf().setBoolean(UNSAFE_STREAM_CAPABILITY_ENFORCE, value); } return fs; }
Source:
<code>static OverlapDetector<Interval> getOverlapDetectorFromIntervalListFile(File intervalList, int lhsBuffer, int rhsBuffer) { if (intervalList == null) { return null; <START> } else { <END> List<Interval> intervals = IntervalList.fromFile(intervalList).uniqued().getIntervals(); OverlapDetector<Interval> detector = new OverlapDetector<>(lhsBuffer, rhsBuffer); detector.addAll(intervals, intervals); return detector; } }</code><technical_language>unnecessary else return</technical_language>

Target:
static OverlapDetector<Interval> getOverlapDetectorFromIntervalListFile(File intervalList, int lhsBuffer, int rhsBuffer) { if (intervalList == null) { return null; } List<Interval> intervals = IntervalList.fromFile(intervalList).uniqued().getIntervals(); OverlapDetector<Interval> detector = new OverlapDetector<>(lhsBuffer, rhsBuffer); detector.addAll(intervals, intervals); return detector; }
Source:
<code>protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { File file = new File("zzz"); if (!file.exists()) { throw new FileNotFoundException(file.getAbsolutePath()); } File zipFile = new File("bak.zip"); ZipHelper zip = new ZipHelper(); zip.zipDir(new File("zzz").getAbsolutePath(), zipFile.getAbsolutePath()); response.setHeader("Content-Type", "application/zip"); response.setHeader("Content-Length", String.valueOf(zipFile.length())); response.setHeader("Content-disposition", "attachment;filename=\"bak.zip\""); BufferedInputStream bis = new BufferedInputStream(new FileInputStream(zipFile)); <START> BufferedOutputStream bos = new BufferedOutputStream(response.getOutputStream()); <END> int b = 0; while (b != -1) { b = bis.read(); if (b != -1) { bos.write(b); } } bos.flush(); bos.close(); bis.close(); }</code><technical_language>this IoUtil.write utility</technical_language>

Target:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { File file = new File("zzz"); if (!file.exists()) { throw new FileNotFoundException(file.getAbsolutePath()); } File zipFile = new File("bak.zip"); FileUtil.zipDir(new File("zzz").getAbsolutePath(), zipFile.getAbsolutePath()); response.setHeader("Content-Type", "application/zip"); response.setHeader("Content-Length", String.valueOf(zipFile.length())); response.setHeader("Content-disposition", "attachment;filename=\"bak.zip\""); BufferedInputStream bis = new BufferedInputStream(new FileInputStream(zipFile)); BufferedOutputStream bos = new BufferedOutputStream(response.getOutputStream()); IoUtil.write(bis, bos); bos.flush(); bos.close(); bis.close(); }
Source:
<code>public Response serviceAnnouncementGET( final @PathParam("id") String id ) { <START> if (Strings.isNullOrEmpty(id)) { <END> return Response.status(Response.Status.BAD_REQUEST) .entity(ServletResourceUtils.sanitizeException( new IllegalArgumentException( "Cannot have null or empty id" ) )) .build(); } try { return handler.handleGET(id); } catch (Exception e) { log.error(e, "Exception in handling GET request for [%s]", id); return Response.serverError().entity(ServletResourceUtils.sanitizeException(e)).build(); } }</code><technical_language>this a function</technical_language>

Target:
public Response serviceAnnouncementGET( final @PathParam("id") String id ) { if (Strings.isNullOrEmpty(id)) { return makeNullIdResponse(); } try { return handler.handleGET(id); } catch (Exception e) { LOG.error(e, "Exception in handling GET request for [%s]", id); return Response.serverError().entity(ServletResourceUtils.sanitizeException(e)).build(); } }
Source:
<code>private Response getServiceItemList(String serviceName) { PersistenceService service = null; if (serviceName == null) { } else { service = persistenceServices.get(serviceName); } if (service == null) { logger.warn("Persistence service not found '{}'.", serviceName); <START> return JSONResponse.createErrorResponse(Status.CONFLICT, "Persistence service not found: " + serviceName); <END> } if (!(service instanceof QueryablePersistenceService)) { logger.warn("Persistence service not queryable '{}'.", serviceName); return JSONResponse.createErrorResponse(Status.CONFLICT, "Persistence service not queryable: " + serviceName); } QueryablePersistenceService qService = (QueryablePersistenceService) service; List<PersistenceItemInfoBean> items = new ArrayList<PersistenceItemInfoBean>(); Set<PersistenceItemInfo> itemNames = qService.getItems(); for (PersistenceItemInfo item : itemNames) { PersistenceItemInfoBean itemBean = new PersistenceItemInfoBean(); itemBean.name = item.getName(); itemBean.count = item.getCount(); if (item.getEarliest() != null) { itemBean.earliest = isoDateFormat.format(item.getEarliest()); } if (item.getLatest() != null) { itemBean.latest = isoDateFormat.format(item.getLatest()); } items.add(itemBean); } return JSONResponse.createResponse(Status.OK, items, ""); }</code><technical_language>BAD_REQUEST</technical_language>

Target:
private Response getServiceItemList(String serviceName) { PersistenceService service = null; if (serviceName == null) { serviceName = PersistenceExtensions.getDefaultService(); } service = persistenceServices.get(serviceName); if (service == null) { logger.debug("Persistence service not found '{}'.", serviceName); return JSONResponse.createErrorResponse(Status.BAD_REQUEST, "Persistence service not found: " + serviceName); } if (!(service instanceof QueryablePersistenceService)) { logger.debug("Persistence service not queryable '{}'.", serviceName); return JSONResponse.createErrorResponse(Status.BAD_REQUEST, "Persistence service not queryable: " + serviceName); } QueryablePersistenceService qService = (QueryablePersistenceService) service; return JSONResponse.createResponse(Status.OK, qService.getItemInfo(), ""); }
Source:
<code>Iterator<T> iterator() { return new Iterator<T>() { <START> int globalIndex = 0; <END> int index = lastDigit(offset()); T[] leaf = getLeaf(globalIndex); int length = leaf.length; @Override public boolean hasNext() { return globalIndex < BitMappedTrie.this.length(); } @Override public T next() { if (index == length) { setCurrentArray(); } final T next = leaf[index]; index++; globalIndex++; return next; } void setCurrentArray() { index = 0; leaf = getLeaf(globalIndex); length = leaf.length; assert leaf != null; } }; }</code><technical_language>Please create final length = BitMappedTrie.this.length();</technical_language>

Target:
Iterator<T> iterator() { return new Iterator<T>() { final int globalLength = BitMappedTrie.this.length(); int globalIndex = 0; int index = lastDigit(offset()); T[] leaf = getLeaf(globalIndex); int length = leaf.length; @Override public boolean hasNext() { return globalIndex < globalLength; } @Override public T next() { if (index == length) { setCurrentArray(); } final T next = leaf[index]; index++; globalIndex++; return next; } void setCurrentArray() { index = 0; leaf = getLeaf(globalIndex); length = leaf.length; assert leaf != null; } }; }
Source:
<code>protected void execute() { long start = System.currentTimeMillis(); <START> String stackCrn = "NotInitialized"; <END> try { MDCBuilder.buildMdcContext(cluster); cluster = clusterService.findById(clusterId); stackCrn = cluster.getStackCrn(); loadAlert = cluster.getLoadAlerts().stream().findFirst().get(); loadAlertConfiguration = loadAlert.getLoadAlertConfiguration(); policyHostGroup = loadAlert.getScalingPolicy().getHostGroup(); if (isCoolDownTimeElapsed(cluster.getStackCrn(), loadAlertConfiguration.getCoolDownMillis(), cluster.getLastScalingActivity())) { pollYarnMetricsAndScaleCluster(); } } catch (Exception ex) { LOGGER.info("Failed to process load alert for Cluster {}, exception {}", stackCrn, ex); eventPublisher.publishEvent(new UpdateFailedEvent(clusterId)); } finally { LOGGER.debug("Finished loadEvaluator for cluster in ms", stackCrn, System.currentTimeMillis() - start); } }</code><technical_language>nan</technical_language>

Target:
protected void execute() { long start = System.currentTimeMillis(); String stackCrn = null; try { MDCBuilder.buildMdcContext(cluster); cluster = clusterService.findById(clusterId); stackCrn = cluster.getStackCrn(); loadAlert = cluster.getLoadAlerts().stream().findFirst().get(); loadAlertConfiguration = loadAlert.getLoadAlertConfiguration(); policyHostGroup = loadAlert.getScalingPolicy().getHostGroup(); if (isCoolDownTimeElapsed(cluster.getStackCrn(), loadAlertConfiguration.getCoolDownMillis(), cluster.getLastScalingActivity())) { pollYarnMetricsAndScaleCluster(); } } catch (Exception ex) { LOGGER.info("Failed to process load alert for Cluster '{}', exception '{}'", stackCrn, ex); eventPublisher.publishEvent(new UpdateFailedEvent(clusterId)); } finally { LOGGER.debug("Finished loadEvaluator for cluster '{}' in '{}' ms", stackCrn, System.currentTimeMillis() - start); } }
Source:
<code>public <T> CompletableFuture<T> callLaterInClientSession(final Callable<T> task) { Assert.requireNonNull(task, "task"); final CompletableFuture<T> future = new CompletableFuture(); runLaterExecutor.execute(new Runnable() { @Override public void run() { try { T result = task.call(); future.complete(result); <START> } catch (Exception e) { <END> LOG.error("Unchaught exception in task!", e); future.completeExceptionally(e); } } }); return future; }</code><technical_language>Add final keyword</technical_language>

Target:
public <T> CompletableFuture<T> callLaterInClientSession(final Callable<T> task) { Assert.requireNonNull(task, "task"); final CompletableFuture<T> future = new CompletableFuture(); runLaterExecutor.execute(() -> { try { final T result = task.call(); future.complete(result); } catch (final Exception e) { LOG.error("Unchaught exception in task!", e); future.completeExceptionally(e); } }); return future; }
Source:
<code>public final void compileAndValidate( @Nonnull CompilationProperties properties, @Nonnull DexValidator<DexFile> validator, <START> @Nonnull String... testPackages) throws <END> Exception { File[] testFolders = new File[testPackages.length]; for (int i = 0; i < testPackages.length; i++) { testFolders[i] = AbstractTestTools.getTestRootDir(testPackages[i]); } File outFolder = AbstractTestTools.createTempDir(); File out = new File(outFolder, DexFileWriter.DEX_FILENAME); List<Class<? extends IToolchain>> exclude = new ArrayList<>(); if (!properties.allowJillToolchains) { exclude.add(JillBasedToolchain.class); } JackBasedToolchain toolchain = AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class, exclude); for (Map.Entry<String, Object> e : properties.properties.entrySet()) { toolchain.addProperty(e.getKey(), e.getValue().toString()); } toolchain.addToClasspath(toolchain.getDefaultBootClasspath()) .srcToExe(outFolder, false, testFolders); validator.validate(new DexFile(out)); }</code><technical_language>IMO independent of change in a separate CL. please extract it? focus code review change :)</technical_language>

Target:
public final void compileAndValidate( @Nonnull CompilationProperties properties, @Nonnull DexValidator<DexFile> validator, @Nonnull String... testPackages) throws Exception { File[] testFolders = new File[testPackages.length]; for (int i = 0; i < testPackages.length; i++) { testFolders[i] = AbstractTestTools.getTestRootDir(testPackages[i]); } File testFolder = new File(AbstractTestTools.getTestRootDir(testPackage), "jack"); File unitTestFolder = new File(AbstractTestTools.getTestRootDir(testPackage), "dx"); File outFolder = AbstractTestTools.createTempDir(); File out = new File(outFolder, DexFileWriter.DEX_FILENAME); List<Class<? extends IToolchain>> exclude = new ArrayList<>(); if (!properties.allowJillToolchains) { exclude.add(JillBasedToolchain.class); } JackBasedToolchain toolchain = AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class, exclude); for (Map.Entry<String, Object> e : properties.properties.entrySet()) { toolchain.addProperty(e.getKey(), e.getValue().toString()); } toolchain.addProperty(Optimizations.REMOVE_UNUSED_NON_SYNTHETIC_DEFINITION.getName(), String.valueOf(false)); toolchain.addToClasspath(toolchain.getDefaultBootClasspath()) .srcToExe(outFolder, false, testFolder, unitTestFolder); validator.validate(new DexFile(out)); RuntimeTestHelper.runOnRuntimeEnvironments( Collections.singletonList(testPackage + ".dx.Tests"), RuntimeTestHelper.getJunitDex(), out); }
Source:
<code>public boolean include(TreeWalk walker) throws MissingObjectException, IncorrectObjectTypeException, IOException { pointer = null; if (walker.isSubtree()) { return walker.isRecursive(); } ObjectId objectId = walker.getObjectId(0); ObjectLoader object = walker.getObjectReader().open(objectId); if (object.getSize() > 1024) { return false; } pointer = <START> LfsPointer.parseLfsPointer(object.openStream()); <END> return pointer != null; }</code><technical_language>this stream closed</technical_language>

Target:
public boolean include(TreeWalk walker) throws MissingObjectException, IncorrectObjectTypeException, IOException { pointer = null; if (walker.isSubtree()) { return walker.isRecursive(); } ObjectId objectId = walker.getObjectId(0); ObjectLoader object = walker.getObjectReader().open(objectId); if (object.getSize() > 1024) { return false; } try (ObjectStream stream = object.openStream()) { pointer = LfsPointer.parseLfsPointer(stream); return pointer != null; } }
Source:
<code>public static void initAsyncPrettyPrinterForResponse( InspectorResponse response, NetworkPeerManager peerManager) { AsyncPrettyPrinterRegistry registry = peerManager.getAsyncPrettyPrinterRegistry(); for (int i = 0, count = response.headerCount(); i < count; i++) { AsyncPrettyPrinterFactory factory = registry.lookup(response.headerName(i)); if (factory != null) { AsyncPrettyPrinter asyncPrettyPrinter = factory.getInstance( response.headerName(i), response.headerValue(i)); peerManager.getResponseBodyFileManager().associateAsyncPrettyPrinterWithId( response.requestId(), asyncPrettyPrinter); <START> break; <END> } } }</code><technical_language>This is considered a bad code smell corrected dividing logic methods: java public static void initAsyncPrettyPrineterForResponse(...) { prettyPrinter = matchPrettyPrinterToResponse(...); if (prettyPrinter != null) { associateAsyncPrettyPrinter(...); } } @Nullable public static AsyncPrettyPrinter matchPrettyPrinterToResponse(...); engineers find this easier logic follow more easily predict exact flow control semantics of matchPrettyPrinterToResponse(...) based name signature</technical_language>

Target:
static AsyncPrettyPrinter initAsyncPrettyPrinterForResponse( InspectorResponse response, NetworkPeerManager peerManager) { AsyncPrettyPrinterRegistry registry = peerManager.getAsyncPrettyPrinterRegistry(); AsyncPrettyPrinter asyncPrettyPrinter = createPrettyPrinterForResponse(response, registry); if (asyncPrettyPrinter != null) { peerManager.getResponseBodyFileManager().associateAsyncPrettyPrinterWithId( response.requestId(), asyncPrettyPrinter); } return asyncPrettyPrinter; }
Source:
<code>public static void main(String[] args) throws IOException { JobParameters params = new JobParameters(); JCommander jcommander = new JCommander(params); jcommander.parse(args); SparkConf conf = new SparkConf(); conf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer"); conf.set("spark.kryo.registrator", "pl.edu.icm.sparkutils.avro.AvroCompatibleKryoRegistrator"); try (JavaSparkContext sc = new JavaSparkContext(conf)) { HdfsUtils.remove(sc.hadoopConfiguration(), params.outputPath); JavaRDD<DocumentText> documentTexts = sparkAvroLoader.loadJavaRDD(sc, params.inputDocumentTextPath, DocumentText.class); JavaRDD<ExtractedDocumentMetadataMergedWithOriginal> documentMetadatas = sparkAvroLoader.loadJavaRDD(sc, params.inputExtractedDocumentMetadataMergedWithOriginalPath, ExtractedDocumentMetadataMergedWithOriginal.class); JavaPairRDD<CharSequence, DocumentText> documentTextsById = documentTexts .mapToPair(x -> new Tuple2<>(x.getId(), x)); JavaPairRDD<CharSequence, List<CharSequence>> documentMetadatasById = documentMetadatas .filter(x -> Objects.nonNull(x.getImportedAuthors())) <START> .filter(x -> x.getImportedAuthors().stream().allMatch(y -> StringUtils.isNotBlank(y.getFullname()))) <END> .mapToPair(x -> new Tuple2<>(x.getId(), x.getImportedAuthors().stream().map(Author::getFullname).collect(Collectors.toList()))); JavaRDD<DocumentTextWithAuthors> merged = documentTextsById .join(documentMetadatasById) .values() .map(PatentReferenceExtractionInputDocumentTextAuthorMerger::merge); sparkAvroSaver.saveJavaRDD(merged, DocumentTextWithAuthors.SCHEMA$, params.outputPath); } }</code><technical_language>I is: accept metadata records if author full name defined</technical_language>

Target:
public static void main(String[] args) throws IOException { JobParameters params = new JobParameters(); JCommander jcommander = new JCommander(params); jcommander.parse(args); SparkConf conf = new SparkConf(); conf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer"); conf.set("spark.kryo.registrator", "pl.edu.icm.sparkutils.avro.AvroCompatibleKryoRegistrator"); try (JavaSparkContext sc = new JavaSparkContext(conf)) { HdfsUtils.remove(sc.hadoopConfiguration(), params.outputPath); JavaRDD<DocumentText> documentTexts = sparkAvroLoader.loadJavaRDD(sc, params.inputDocumentTextPath, DocumentText.class); JavaRDD<ExtractedDocumentMetadataMergedWithOriginal> documentMetadatas = sparkAvroLoader.loadJavaRDD(sc, params.inputExtractedDocumentMetadataMergedWithOriginalPath, ExtractedDocumentMetadataMergedWithOriginal.class); JavaPairRDD<CharSequence, DocumentText> documentTextsById = documentTexts .mapToPair(x -> new Tuple2<>(x.getId(), x)); JavaPairRDD<CharSequence, List<CharSequence>> documentMetadatasById = documentMetadatas .mapToPair(x -> new Tuple2<>(x.getId(), filterAuthorsOrEmptyList(x.getImportedAuthors()))); JavaRDD<DocumentTextWithAuthors> merged = documentTextsById .join(documentMetadatasById) .values() .map(PatentReferenceExtractionInputDocumentTextAuthorMerger::merge); sparkAvroSaver.saveJavaRDD(merged, DocumentTextWithAuthors.SCHEMA$, params.outputPath); } }
Source:
<code>public void run(final int iteration) { final Map<Long, NeuralNetworkData> workloadMap = memoryStore.getAll(); final Collection<NeuralNetworkData> workload = workloadMap.values(); final Collection<NeuralNetworkData> validationWorkload = new ArrayList<>(); for (final NeuralNetworkData data : workload) { final Matrix input = data.getMatrix(); final int[] labels = data.getLabels(); if (input.getColumns() != labels.length) { throw new RuntimeException("Invalid data: the number of inputs is not equal to the number of labels"); } if (data.isValidation()) { validationWorkload.add(data); } else { neuralNetwork.train(input, labels); trainingValidator.validate(input, labels); } <START> data.cleanup(); <END> } for (final NeuralNetworkData data : validationWorkload) { final Matrix input = data.getMatrix(); final int[] labels = data.getLabels(); if (input.getColumns() != labels.length) { throw new RuntimeException("Invalid data: the number of inputs is not equal to the number of labels"); } crossValidator.validate(input, labels); data.cleanup(); } LOG.log(Level.INFO, generateIterationLog( trainingValidator.getValidationStats(), crossValidator.getValidationStats(), iteration)); crossValidator.getValidationStats().reset(); trainingValidator.getValidationStats().reset(); }</code><technical_language>Cleanup data finishing job, iteration</technical_language>

Target:
public void run(final int iteration) { final Map<Long, NeuralNetworkData> workloadMap = memoryStore.getAll(); final Collection<NeuralNetworkData> workload = workloadMap.values(); final Collection<NeuralNetworkData> validationWorkload = new ArrayList<>(); for (final NeuralNetworkData data : workload) { final Matrix input = data.getMatrix(); final int[] labels = data.getLabels(); if (input.getColumns() != labels.length) { throw new RuntimeException("Invalid data: the number of inputs is not equal to the number of labels"); } if (data.isValidation()) { validationWorkload.add(data); } else { neuralNetwork.train(input, labels); trainingValidator.validate(input, labels); } } for (final NeuralNetworkData data : validationWorkload) { final Matrix input = data.getMatrix(); final int[] labels = data.getLabels(); if (input.getColumns() != labels.length) { throw new RuntimeException("Invalid data: the number of inputs is not equal to the number of labels"); } crossValidator.validate(input, labels); } LOG.log(Level.INFO, generateIterationLog( trainingValidator.getValidationStats(), crossValidator.getValidationStats(), iteration)); crossValidator.getValidationStats().reset(); trainingValidator.getValidationStats().reset(); }
Source:
<code>public void ifClientSendsCookieRetrieveAndResetIt() { Http.Cookie mockCookie = mock(Http.Cookie.class); doReturn("ABC").when(mockCookie).value(); Http.Request mockRequest = mock(Http.Request.class); doReturn(mockCookie).when(mockRequest).cookie(BridgeConstants.SESSION_TOKEN_HEADER); Http.Context context = mock(Http.Context.class); when(context.request()).thenReturn(mockRequest); Http.Response mockResponse = mock(Http.Response.class); when(context.response()).thenReturn(mockResponse); Http.Context.current.set(context); BaseController controller = new SchedulePlanController(); controller.setBridgeConfig(BridgeConfigFactory.getConfig()); String token = controller.getSessionToken(); assertEquals("ABC", token); verify(mockResponse).setCookie(BridgeConstants.SESSION_TOKEN_HEADER, "ABC", BridgeConstants.BRIDGE_SESSION_EXPIRE_IN_SECONDS, "/", <START> BridgeConfigFactory.getConfig().get("webservices.url"), false, false); <END> }</code><technical_language>This fail in Travis travis runs in dev</technical_language>

Target:
public void ifClientSendsCookieRetrieveAndResetIt() { Http.Cookie mockCookie = mock(Http.Cookie.class); doReturn("ABC").when(mockCookie).value(); Http.Request mockRequest = mock(Http.Request.class); doReturn(mockCookie).when(mockRequest).cookie(BridgeConstants.SESSION_TOKEN_HEADER); Http.Context context = mock(Http.Context.class); when(context.request()).thenReturn(mockRequest); Http.Response mockResponse = mock(Http.Response.class); when(context.response()).thenReturn(mockResponse); Http.Context.current.set(context); BridgeConfig mockConfig = mock(BridgeConfig.class); when(mockConfig.get("webservices.url")).thenReturn(WEBSERVICE_URL); when(mockConfig.getEnvironment()).thenReturn(Environment.LOCAL); BaseController controller = new SchedulePlanController(); controller.setBridgeConfig(mockConfig); String token = controller.getSessionToken(); assertEquals("ABC", token); verify(mockResponse).setCookie(BridgeConstants.SESSION_TOKEN_HEADER, "ABC", BridgeConstants.BRIDGE_SESSION_EXPIRE_IN_SECONDS, "/", WEBSERVICE_URL, false, false); }
Source:
<code>public void removeRegistryHook(RegistryHook<Item> hook) { <START> registryHooks.add(hook); <END> }</code><technical_language>typo / c'n'p error: remove</technical_language>

Target:
public void removeRegistryHook(RegistryHook<Item> hook) { registryHooks.remove(hook); }
Source:
<code>protected void onHide() { super.onHide(); <START> Event entityChangedEvent = getModel().getDiskViewType().getEntityChangedEvent(); <END> entityChangedEvent.removeListener(getView().getDiskTypeChangedEventListener()); }</code><technical_language>This listener I worried about. This fine, main tab model is destructed soon view. I worried systemTree listener, system tree stays send events disk main tab view (which exist anymore). basically, I instead is required is CommonModel.getInstance().getSystemTree().getSelectedItemChangedEvent().removeListener(systemTreeChangedEventListener)</technical_language>

Target:
protected void onHide() { super.onHide(); Event systemTreeSelectedItemChangedEvent = CommonModel.getInstance().getSystemTree().getSelectedItemChangedEvent(); systemTreeSelectedItemChangedEvent.removeListener(systemTreeListener); }
Source:
<code>void dispose(OpenHashSet<Disposable> set) { if (set == null) { return; } List<Throwable> errors = null; Object[] array = set.keys(); for (Object o : array) { if (o instanceof Disposable) { try { ((Disposable) o).dispose(); } catch (Throwable ex) { Exceptions.throwIfFatal(ex); if (errors == null) { errors = new ArrayList<Throwable>(); } errors.add(ex); } } } if (errors != null) { if (errors.size() == 1) { Throwable ex = errors.get(0); if (ex instanceof Error) { throw (Error)ex; } <START> if (ex instanceof RuntimeException) { <END> throw (RuntimeException)ex; } throw ExceptionHelper.wrap(ex); } throw new CompositeException(errors); } }</code><technical_language>wrap handles this case</technical_language>

Target:
void dispose(OpenHashSet<Disposable> set) { if (set == null) { return; } List<Throwable> errors = null; Object[] array = set.keys(); for (Object o : array) { if (o instanceof Disposable) { try { ((Disposable) o).dispose(); } catch (Throwable ex) { Exceptions.throwIfFatal(ex); if (errors == null) { errors = new ArrayList<Throwable>(); } errors.add(ex); } } } if (errors != null) { if (errors.size() == 1) { throw ExceptionHelper.wrapOrThrow(errors.get(0)); } throw new CompositeException(errors); } }
Source:
<code>public void testSurroundingScopeOfNodeChildOfLiteralNewIsAnoninner() { <START> final DetailAST ast = new DetailAST(); <END> ast.setType(TokenTypes.LITERAL_NEW); final DetailAST ast2 = new DetailAST(); ast2.setType(TokenTypes.IDENT); ast.addChild(ast2); Assert.assertEquals(Scope.ANONINNER, ScopeUtils.getSurroundingScope(ast2)); }</code><technical_language>(using getNode)</technical_language>

Target:
public void testSurroundingScopeOfNodeChildOfLiteralNewIsAnoninner() { assertEquals(Scope.ANONINNER, ScopeUtils.getSurroundingScope( getNode(TokenTypes.LITERAL_NEW, TokenTypes.IDENT))); }
Source:
<code>public List<FragmentItemModel> getFragmentItems() { ArrayList<FragmentItemModel> items = new ArrayList<>(); items.add(new FragmentItemModel(MyCoursesListFragment.class, getResources().getString(R.string.label_my_courses), FontAwesomeIcons.fa_list_alt, new FragmentItemModel.FragmentStateListener() { @Override public void onFragmentSelected() { environment.getAnalyticsRegistry().trackScreenView(Analytics.Screens.MY_COURSES); } })); if (environment.getConfig().getCourseDiscoveryConfig().isCourseDiscoveryEnabled()) { items.add(new FragmentItemModel(WebViewDiscoverCoursesFragment.class, <START> getResources().getString(R.string.label_discover), FontAwesomeIcons.fa_search, <END> new FragmentItemModel.FragmentStateListener() { @Override public void onFragmentSelected() { environment.getAnalyticsRegistry().trackScreenView(Analytics.Screens.FIND_COURSES); } })); } return items; }</code><technical_language>Tab title 'Discovery' 'Discover'</technical_language>

Target:
public List<FragmentItemModel> getFragmentItems() { ArrayList<FragmentItemModel> items = new ArrayList<>(); items.add(new FragmentItemModel(MyCoursesListFragment.class, getResources().getString(R.string.label_my_courses), FontAwesomeIcons.fa_list_alt, new FragmentItemModel.FragmentStateListener() { @Override public void onFragmentSelected() { environment.getAnalyticsRegistry().trackScreenView(Analytics.Screens.MY_COURSES); } })); if (environment.getConfig().getCourseDiscoveryConfig().isCourseDiscoveryEnabled()) { items.add(new FragmentItemModel( environment.getConfig().getCourseDiscoveryConfig().isWebviewCourseDiscoveryEnabled() ? WebViewDiscoverCoursesFragment.class : NativeFindCoursesFragment.class, getResources().getString(R.string.label_discovery), FontAwesomeIcons.fa_search, new FragmentItemModel.FragmentStateListener() { @Override public void onFragmentSelected() { environment.getAnalyticsRegistry().trackScreenView(Analytics.Screens.FIND_COURSES); } })); } return items; }
Source:
<code>protected static void ensureName(HaxeIntroduceOperation operation) { if (operation.getName() == null) { final Collection<String> suggestedNames = operation.getSuggestedNames(); if (suggestedNames.size() > 0) { <START> operation.autoSelectName(); <END> } else { operation.setName("x"); } } }</code><technical_language>suggestName</technical_language>

Target:
protected static void ensureName(HaxeIntroduceOperation operation) { if (operation.getName() == null) { final Collection<String> suggestedNames = operation.getSuggestedNames(); if (suggestedNames.size() > 0) { operation.suggestName(); } else { operation.setName("x"); } } }
Source:
<code>protected void addPages() { try { <START> if (getCommit().isStash()) { <END> commitPage = new StashEditorPage(this); } else { commitPage = new CommitEditorPage(this); } addPage(commitPage); diffPage = new DiffEditorPage(this); addPage(diffPage); if (getCommit().getNotes().length > 0) { notePage = new NotesEditorPage(this); addPage(notePage); } } catch (PartInitException e) { Activator.error("Error adding page", e); } refListenerHandle = Repository.getGlobalListenerList() .addRefsChangedListener(this); }</code><technical_language>style nit: spaces single line blocks</technical_language>

Target:
protected void addPages() { try { if (getCommit().isStash()) commitPage = new StashEditorPage(this); else commitPage = new CommitEditorPage(this); addPage(commitPage); diffPage = new DiffEditorPage(this); addPage(diffPage); if (getCommit().getNotes().length > 0) { notePage = new NotesEditorPage(this); addPage(notePage); } } catch (PartInitException e) { Activator.error("Error adding page", e); } refListenerHandle = Repository.getGlobalListenerList() .addRefsChangedListener(this); }
Source:
<code>public void onEvent(ActivitiEvent event) { <START> if (event.getType().equals(ActivitiEventType.TIMER_FIRED)) { <END> if (event instanceof ActivitiEntityEvent && JobEntity.class.isAssignableFrom(((ActivitiEntityEvent) event).getEntity().getClass())) { converter.from((ActivitiEntityEvent) event) .ifPresent(convertedEvent -> { for (BPMNElementEventListener<BPMNTimerFiredEvent> listener : processRuntimeEventListeners) { listener.onEvent(convertedEvent); } }); } } }</code><technical_language>necessary</technical_language>

Target:
public void onEvent(ActivitiEvent event) { converter.from(event) .ifPresent(convertedEvent -> { for (BPMNElementEventListener<BPMNTimerFiredEvent> listener : processRuntimeEventListeners) { listener.onEvent(convertedEvent); } }); }