CompletableFuture join() causing main thread hang“implements Runnable” vs “extends Thread” in JavaWhat is a daemon thread in Java?Can't execute jar- file: “no main manifest attribute”How to check if current thread is not main threadIOS semaphore_wait_trap on main thread causing hang in UIWhat does “Could not find or load main class” mean?Sharing array of bins between threadsWhy CompletableFuture 's thenAccept() not running on the main threadJava's CompletableFuture and ThreadsHow to handle CompletableFuture Threads in loops
GraphicsGrid with a Label for each Column and Row
Why did the HMS Bounty go back to a time when whales are already rare?
why `nmap 192.168.1.97` returns less services than `nmap 127.0.0.1`?
Problem with TransformedDistribution
250 Floor Tower
Freedom of speech and where it applies
Is it improper etiquette to ask your opponent what his/her rating is before the game?
Is this toilet slogan correct usage of the English language?
How can Trident be so inexpensive? Will it orbit Triton or just do a (slow) flyby?
Fear of getting stuck on one programming language / technology that is not used in my country
copy and scale one figure (wheel)
How can "mimic phobia" be cured or prevented?
WiFi Thermostat, No C Terminal on Furnace
Should I outline or discovery write my stories?
What is this cable/device?
Is it possible to put a rectangle as background in the author section?
"Spoil" vs "Ruin"
How should I respond when I lied about my education and the company finds out through background check?
What is this called? Old film camera viewer?
Why electric field inside a cavity of a non-conducting sphere not zero?
Is there a single word describing earning money through any means?
Why did the EU agree to delay the Brexit deadline?
How to indicate a cut out for a product window
Has any country ever had 2 former presidents in jail simultaneously?
CompletableFuture join() causing main thread hang
“implements Runnable” vs “extends Thread” in JavaWhat is a daemon thread in Java?Can't execute jar- file: “no main manifest attribute”How to check if current thread is not main threadIOS semaphore_wait_trap on main thread causing hang in UIWhat does “Could not find or load main class” mean?Sharing array of bins between threadsWhy CompletableFuture 's thenAccept() not running on the main threadJava's CompletableFuture and ThreadsHow to handle CompletableFuture Threads in loops
I have two blocks of code that seem to be causing the main server thread to hang, but Im really not sure why it's hanging...
public static synchronized CompletableFuture<Void> saveAllToDatabase()
return CompletableFuture.runAsync(() ->
for (UUID u : timeMap.keySet())
saveUUIDToDatabase(u).join(); //This is PlaytimeManager:217
);
public static synchronized CompletableFuture<Void> saveUUIDToDatabase(UUID uuid)
return CompletableFuture.runAsync(() ->
if (timeMap.get(uuid) == null) return;
long l = getTime(uuid);
long p = getPoints(uuid).join(); //This is PlaytimeManager:199
Playtime.getData().save(uuid, l, p);
);
public static CompletableFuture<Long> getPoints(UUID u)
Database d = Playtime.getData();
return CompletableFuture.supplyAsync(() ->
if (d.isSaved(u)) return getCachedPoints(u) == 0 ? d.getPlayer(u).getPoints() : getCachedPoints(u);
return getCachedPoints(u);
);
The #join()
methods are causing the hanging, but they're wrapped in an async CompletableFuture
so I'm unsure how exactly it's hanging...
The stack trace:
https://pastebin.com/5QhJPPhn
java asynchronous hang completable-future
|
show 2 more comments
I have two blocks of code that seem to be causing the main server thread to hang, but Im really not sure why it's hanging...
public static synchronized CompletableFuture<Void> saveAllToDatabase()
return CompletableFuture.runAsync(() ->
for (UUID u : timeMap.keySet())
saveUUIDToDatabase(u).join(); //This is PlaytimeManager:217
);
public static synchronized CompletableFuture<Void> saveUUIDToDatabase(UUID uuid)
return CompletableFuture.runAsync(() ->
if (timeMap.get(uuid) == null) return;
long l = getTime(uuid);
long p = getPoints(uuid).join(); //This is PlaytimeManager:199
Playtime.getData().save(uuid, l, p);
);
public static CompletableFuture<Long> getPoints(UUID u)
Database d = Playtime.getData();
return CompletableFuture.supplyAsync(() ->
if (d.isSaved(u)) return getCachedPoints(u) == 0 ? d.getPlayer(u).getPoints() : getCachedPoints(u);
return getCachedPoints(u);
);
The #join()
methods are causing the hanging, but they're wrapped in an async CompletableFuture
so I'm unsure how exactly it's hanging...
The stack trace:
https://pastebin.com/5QhJPPhn
java asynchronous hang completable-future
What is the returning type forgetPoints(uuid)
method?
– Bukharov Sergey
Mar 7 at 7:31
It returns aCompletableFuture<Long>
. Code updated in original post with thegetPoints
method
– James Andrew
Mar 7 at 7:37
tried with minimum code and removed dependent modules, works fine for mepublic static synchronized CompletableFuture<Void> saveAllToDatabase() return CompletableFuture.runAsync(() -> for (UUID u : timeMap.keySet()) saveUUIDToDatabase(u).join(); //This is PlaytimeManager:217 );
– dkb
Mar 7 at 8:48
public static synchronized CompletableFuture<Void> saveUUIDToDatabase(UUID uuid) return CompletableFuture.runAsync(() -> long p = getPoints(uuid).join(); //This is PlaytimeManager:199 System.out.println(uuid.toString() + ":" + p); );
– dkb
Mar 7 at 8:49
public static CompletableFuture<Long> getPoints(UUID u) return CompletableFuture.supplyAsync(() -> 10L);
– dkb
Mar 7 at 8:49
|
show 2 more comments
I have two blocks of code that seem to be causing the main server thread to hang, but Im really not sure why it's hanging...
public static synchronized CompletableFuture<Void> saveAllToDatabase()
return CompletableFuture.runAsync(() ->
for (UUID u : timeMap.keySet())
saveUUIDToDatabase(u).join(); //This is PlaytimeManager:217
);
public static synchronized CompletableFuture<Void> saveUUIDToDatabase(UUID uuid)
return CompletableFuture.runAsync(() ->
if (timeMap.get(uuid) == null) return;
long l = getTime(uuid);
long p = getPoints(uuid).join(); //This is PlaytimeManager:199
Playtime.getData().save(uuid, l, p);
);
public static CompletableFuture<Long> getPoints(UUID u)
Database d = Playtime.getData();
return CompletableFuture.supplyAsync(() ->
if (d.isSaved(u)) return getCachedPoints(u) == 0 ? d.getPlayer(u).getPoints() : getCachedPoints(u);
return getCachedPoints(u);
);
The #join()
methods are causing the hanging, but they're wrapped in an async CompletableFuture
so I'm unsure how exactly it's hanging...
The stack trace:
https://pastebin.com/5QhJPPhn
java asynchronous hang completable-future
I have two blocks of code that seem to be causing the main server thread to hang, but Im really not sure why it's hanging...
public static synchronized CompletableFuture<Void> saveAllToDatabase()
return CompletableFuture.runAsync(() ->
for (UUID u : timeMap.keySet())
saveUUIDToDatabase(u).join(); //This is PlaytimeManager:217
);
public static synchronized CompletableFuture<Void> saveUUIDToDatabase(UUID uuid)
return CompletableFuture.runAsync(() ->
if (timeMap.get(uuid) == null) return;
long l = getTime(uuid);
long p = getPoints(uuid).join(); //This is PlaytimeManager:199
Playtime.getData().save(uuid, l, p);
);
public static CompletableFuture<Long> getPoints(UUID u)
Database d = Playtime.getData();
return CompletableFuture.supplyAsync(() ->
if (d.isSaved(u)) return getCachedPoints(u) == 0 ? d.getPlayer(u).getPoints() : getCachedPoints(u);
return getCachedPoints(u);
);
The #join()
methods are causing the hanging, but they're wrapped in an async CompletableFuture
so I'm unsure how exactly it's hanging...
The stack trace:
https://pastebin.com/5QhJPPhn
java asynchronous hang completable-future
java asynchronous hang completable-future
edited Mar 7 at 7:38
James Andrew
asked Mar 7 at 6:07
James AndrewJames Andrew
7219
7219
What is the returning type forgetPoints(uuid)
method?
– Bukharov Sergey
Mar 7 at 7:31
It returns aCompletableFuture<Long>
. Code updated in original post with thegetPoints
method
– James Andrew
Mar 7 at 7:37
tried with minimum code and removed dependent modules, works fine for mepublic static synchronized CompletableFuture<Void> saveAllToDatabase() return CompletableFuture.runAsync(() -> for (UUID u : timeMap.keySet()) saveUUIDToDatabase(u).join(); //This is PlaytimeManager:217 );
– dkb
Mar 7 at 8:48
public static synchronized CompletableFuture<Void> saveUUIDToDatabase(UUID uuid) return CompletableFuture.runAsync(() -> long p = getPoints(uuid).join(); //This is PlaytimeManager:199 System.out.println(uuid.toString() + ":" + p); );
– dkb
Mar 7 at 8:49
public static CompletableFuture<Long> getPoints(UUID u) return CompletableFuture.supplyAsync(() -> 10L);
– dkb
Mar 7 at 8:49
|
show 2 more comments
What is the returning type forgetPoints(uuid)
method?
– Bukharov Sergey
Mar 7 at 7:31
It returns aCompletableFuture<Long>
. Code updated in original post with thegetPoints
method
– James Andrew
Mar 7 at 7:37
tried with minimum code and removed dependent modules, works fine for mepublic static synchronized CompletableFuture<Void> saveAllToDatabase() return CompletableFuture.runAsync(() -> for (UUID u : timeMap.keySet()) saveUUIDToDatabase(u).join(); //This is PlaytimeManager:217 );
– dkb
Mar 7 at 8:48
public static synchronized CompletableFuture<Void> saveUUIDToDatabase(UUID uuid) return CompletableFuture.runAsync(() -> long p = getPoints(uuid).join(); //This is PlaytimeManager:199 System.out.println(uuid.toString() + ":" + p); );
– dkb
Mar 7 at 8:49
public static CompletableFuture<Long> getPoints(UUID u) return CompletableFuture.supplyAsync(() -> 10L);
– dkb
Mar 7 at 8:49
What is the returning type for
getPoints(uuid)
method?– Bukharov Sergey
Mar 7 at 7:31
What is the returning type for
getPoints(uuid)
method?– Bukharov Sergey
Mar 7 at 7:31
It returns a
CompletableFuture<Long>
. Code updated in original post with the getPoints
method– James Andrew
Mar 7 at 7:37
It returns a
CompletableFuture<Long>
. Code updated in original post with the getPoints
method– James Andrew
Mar 7 at 7:37
tried with minimum code and removed dependent modules, works fine for me
public static synchronized CompletableFuture<Void> saveAllToDatabase() return CompletableFuture.runAsync(() -> for (UUID u : timeMap.keySet()) saveUUIDToDatabase(u).join(); //This is PlaytimeManager:217 );
– dkb
Mar 7 at 8:48
tried with minimum code and removed dependent modules, works fine for me
public static synchronized CompletableFuture<Void> saveAllToDatabase() return CompletableFuture.runAsync(() -> for (UUID u : timeMap.keySet()) saveUUIDToDatabase(u).join(); //This is PlaytimeManager:217 );
– dkb
Mar 7 at 8:48
public static synchronized CompletableFuture<Void> saveUUIDToDatabase(UUID uuid) return CompletableFuture.runAsync(() -> long p = getPoints(uuid).join(); //This is PlaytimeManager:199 System.out.println(uuid.toString() + ":" + p); );
– dkb
Mar 7 at 8:49
public static synchronized CompletableFuture<Void> saveUUIDToDatabase(UUID uuid) return CompletableFuture.runAsync(() -> long p = getPoints(uuid).join(); //This is PlaytimeManager:199 System.out.println(uuid.toString() + ":" + p); );
– dkb
Mar 7 at 8:49
public static CompletableFuture<Long> getPoints(UUID u) return CompletableFuture.supplyAsync(() -> 10L);
– dkb
Mar 7 at 8:49
public static CompletableFuture<Long> getPoints(UUID u) return CompletableFuture.supplyAsync(() -> 10L);
– dkb
Mar 7 at 8:49
|
show 2 more comments
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55037083%2fcompletablefuture-join-causing-main-thread-hang%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55037083%2fcompletablefuture-join-causing-main-thread-hang%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
What is the returning type for
getPoints(uuid)
method?– Bukharov Sergey
Mar 7 at 7:31
It returns a
CompletableFuture<Long>
. Code updated in original post with thegetPoints
method– James Andrew
Mar 7 at 7:37
tried with minimum code and removed dependent modules, works fine for me
public static synchronized CompletableFuture<Void> saveAllToDatabase() return CompletableFuture.runAsync(() -> for (UUID u : timeMap.keySet()) saveUUIDToDatabase(u).join(); //This is PlaytimeManager:217 );
– dkb
Mar 7 at 8:48
public static synchronized CompletableFuture<Void> saveUUIDToDatabase(UUID uuid) return CompletableFuture.runAsync(() -> long p = getPoints(uuid).join(); //This is PlaytimeManager:199 System.out.println(uuid.toString() + ":" + p); );
– dkb
Mar 7 at 8:49
public static CompletableFuture<Long> getPoints(UUID u) return CompletableFuture.supplyAsync(() -> 10L);
– dkb
Mar 7 at 8:49