Tags down


Safe publication of array/collection/map contents written once

By : Minghao LI
Date : September 16 2020, 07:00 AM
it helps some times There is no “best way to perform safe publication”, as the decision for a way of publication depends on the actual use case involving publication.
So it’s not correct to say that Collections.unmodifiableMap(…) is not a safe publication. This method isn’t a publication at all.
code :
HashMap<String, List<Integer>> map = new HashMap<>();
List<Integer> l = new ArrayList<>();
map.put("foo", l);

Thread t = new Thread() {
    public void run() {
volatile Object[] array = new Object[size];
array[index] = value;
public E set(int index, E element) {
    synchronized (lock) {
        Object[] es = getArray();
        E oldValue = elementAt(es, index);

        if (oldValue != element) {
            es = es.clone(); // <- create a local copy
            es[index] = element; // <- modifies the copy that has not been published
        // Ensure volatile write semantics even when oldvalue == element
        setArray(es); // <- publishes the copy
        return oldValue;
public E set(int index, E element) {
    synchronized (lock) {
        Object[] es = getArray();
        E oldValue = elementAt(es, index);

        if (oldValue != element) {
            es = es.clone();
            es[index] = element;
        return oldValue;
        // Ensure volatile write semantics even when oldvalue == element
        setArray(es); // invoked even when oldvalue == element

Share : facebook icon twitter icon

Safe publication of array of objects through a volatile reference

By : mdily
Date : March 29 2020, 07:55 AM
Any of those help Yes, that's a safe publication, assuming you also properly read the reference to array afterwards (e.g. through the same volatile variable, or under the same lock, or from the same collection). All writes to array and to MyObject in your code happens-before any read through the published reference, including the reads of array elements.
Counter-example: if you have published array early on, say, right after new MyObject[16], then happens-before between the writes in the loop and reads through the published reference would be absent.

How do I re-run my Meteor publication to refresh the contents of a collection on the client?

By : user3172279
Date : March 29 2020, 07:55 AM
With these it helps If you replace Math.random() with a reactive variable, that will cause your subscription to be reevaluated. For simplicity I'll use a session variable in this example.
Somewhere before the route runs (at the top of the file or in a before hook), initialize the variable:
code :
  Session.setDefault('randomValue', Math.random());
  Meteor.subscribe('question', Session.get('randomValue'));
  Session.set('randomValue', Math.random());

Safe publication of a not-threadsafe standard collection

By : Julie Mallam
Date : March 29 2020, 07:55 AM
may help you . JSR-133 Cookbook

How to sort collection by array of values in publication? (array not in the collection items)

By : Pau Benet Prat
Date : March 29 2020, 07:55 AM
should help you out If you want to do it reactively, you can either store the ratings with the cats or map them later in Javascript. A third, non-reactive option would probably be to use the MongoDB aggregation pipeline with join's (added in 3.2), but I'm not familiar enough with that to provide an example at this time.
If you store the ratings with the cats, it becomes very simple:
code :
Meteor.publish('allCats', function (sortType) {
   * Assuming that Cats contains contents of the form:
   *  {
   *    "_id" : "rRq76LxsnPfmuh9DD",
   *    "register_id" : "20gnr3g",
   *    "name" : "Meow",
   *    "created_at": ...,
   *    "rating": 123,
   *    ...
   *  }
  if (sortType == 'rating') {
    return Cats.find({}, { sort: { rating: 1 } });

  return Cats.find({}, { sort: { created_at: 1 } });
Meteor.publish('allCats', function() {
    return Cats.find({}, {sort: { created_at: 1 }});

Meteor.publish('allCatRatings', function() {
    return RatingLog.find();
  cats() {
    const sortType = Template.instance().sortType;
    if (sortType === 'rating') {
      return getCatsByRating();
    return getCatsByCreationDate();

function getCatsByCreationDate() {
  return Cats.find({}, {sort: { created_at: 1 }});

function getCatsByRating() {
   * Assuming that RatingLog contains contents of the form { _id:  catId, rating: 123 }
  const ratings = {};
  RatingLog.find().forEach(entry=>ratings[entry._id] = entry.rating);

  const defaultRating = 0;
  return Cats.find().fetch().sort(function (catA, catB) {
    const catARating = ratings[catA._id] || defaultRating;
    const catBRating = ratings[catB._id] || defaultRating;
    return catARating - catBRating;

Java concurrency: safe publication of array

By : Bernard Rudi
Date : March 29 2020, 07:55 AM
To fix this issue Your first example is perfectly safe, because the tasks originate from the writer thread. As the docs say:
Related Posts Related Posts :
  • JavaFX 13 create runnable jar "no main manifest attribute"
  • run Java Servlet unit tests on Tomcat server
  • Convert if else statement in Optional.ofNullable().ifPresent() in Java
  • The type com.google.cloud.ServiceOptions$Builder cannot be resolved. It is indirectly referenced from required .class fi
  • Cannot read Excel file with Arabic content using Java
  • Java 13 Text Block *WITHOUT* newlines
  • Time complexity of an algorithm depends on the incremental/decremental step portion, and not the actual input size?
  • java.sql.Connection createArrayOf() returns Unsupported feature
  • Does a Kafka Consumer default batch size?
  • Java runtime memory model --
  • Built-in exception length shorter than expected?
  • code tuning for nested loops for better performance
  • Generate POJO from JSON-LD or RDF to be used with Jackson or GSON
  • How I will display latest image to ImageView Another Activity?
  • Method reference and Generics in Java-8
  • Gradle task assembleDebug failed with exit code 1 (Runtime Exception)
  • How to Import MQTT Paho into Java 'playground'?
  • (Java) Cannot Find Symbol for method
  • Map of generics: read and write
  • Java 11 - Annotation SPI from META-INF/services aren't getting acknowledged
  • Android - Changing app language for all versions of Android
  • bounded type with static method returning String
  • Flutter WebView Crashes on html select
  • Java - cannot convert double to integer while dividing doubles
  • Is there a difference between finding by primary key vs finding by unique column?
  • How to make AnchorPane rounded inside another AnchorPane
  • How do I query Firestore Array Value?
  • Custom Comparator not sorting time
  • java regex to capture any number of periods within a string
  • Spring Singleton means no data sharing at class level?
  • Trying to merge pdfs using iText7 merger, but when I open final merged pdf it says failed to load pdf document
  • Int number = (int)Math.random();
  • Quarkus and Keycloak/OIDC - NullPointerException
  • how to set one value for all elements of data structure in one action(simultaneously)
  • I would like to know how to write Java bytecode that initializes static class variables
  • How do I create a unbalanced binary search tree
  • Why the non-final instance variable of the outer class can be accessed and updated in the anonymous inner class?
  • Writing to a file code causing an endless loop
  • Why I can't show my list from another method?
  • Write in JSON File in a specific position in JAVA
  • From where to load application content
  • Why this nullpointerexception keeps on coming? I have written the error in the end. I have also mentioned the line where
  • ActionListener executes twice on JPanel when called from JFrame
  • How to read PDF from the .jar file
  • Monotonic Functions in Java of Comparables
  • How to fix OOM exception for my apache ignite 2.7.0?
  • How to Parse JSON object partially to Java object
  • Please specify the reason for the given output in following java code
  • How to create fat jar with all dependencies for spring application
  • java.util.Date object created having incorrect time
  • Recommended way to pass configuration to a Kafka client
  • Why does using Unicode in a properties file work but not the actual character even when file.encoding is set?
  • Sending dto with html file in Spring mvc
  • Condition to check if element is present in DOM
  • Serializable Class Containing Sensitive Data
  • How to find the subsequence of number in java in simplest way
  • How to add inner elements from stream to stream?
  • NativeLongByReference contains only 32-bit number on x64 OS
  • Java concurrent hashmap missing values
  • How do you populate an html with data from an array list using servlet?
  • shadow
    Privacy Policy - Terms - Contact Us © 35dp-dentalpractice.co.uk