• cheeser
  • ernimril
  • joed
  • kinabalu
  • lunk
  • ojacobson
  • r0bby
  • ThaDon
  • ricky_clarkson
  • topriddy

« 2020-01-15


2020-01-17 »

Nick Message Date
g00s [g00s!~g00s@unaffiliated/g00s] has joined ##java [12:01]
cheeser think of them as runlevels: there's the bootstrap used by the JVM itself then there are user space classloaders [12:01]
dtrott Well more like init and all the other processes? [12:07]
tag [tag!sid271787@p3m/member/tag] has joined ##java [12:26]
treeman5 [treeman5!~treeman5@] has joined ##java [12:30]
Broccolie [Broccolie!] has joined ##java [12:34]
Broccolie Hello!! [12:35]
johnau hello [12:35]
Broccolie How are you doing johnau [12:36]
johnau good, u? [12:37]
Broccolie good, would you mind blessing me with some knowledge [12:37]
johnau Never heard of it [12:38]
Broccolie ;( [12:38]
johnau question [12:39]
johnau johnau, what does that even *mean*? [12:39]
johnau just ask it [12:39]
Broccolie me? [12:41]
johnau ask question [12:41]
johnau question, just ask the question. If nobody can answer, nobody will answer! [12:41]
johnau Broccolie, ^^ [12:42]
SpiceMan perl -e 'bless $Broccolie, "knowledge";' [12:43]
Broccolie I just graduated a coding camp and Im working on a coding Quiz for my second round interview and needed some help [12:43]
johnau pastebin [12:43]
johnau Please paste your code and any errors online. For runnable main-classes, try . For general code and errors, use for instance [12:43]
oxum [oxum!~oxum@] has joined ##java [12:43]
Broccolie Is there anyway to post a screenshot of the code ? I know the max paste is two lines right? [12:45]
johnau pastebin [12:45]
johnau Please paste your code and any errors online. For runnable main-classes, try . For general code and errors, use for instance [12:45]
snowmanbamm [snowmanbamm!snowmanbam@gateway/vpn/privateinternetaccess/snowmanbamm] has joined ##java [12:46]
johnau or use pastebin or something similar [12:46]
Broccolie Im a noob'=D '=D [12:47]
Broccolie how would the pastebin look for an img? [12:47]
SpiceMan text is better for code [12:48]
Broccolie its 18 lines is that too much? [12:48]
Broccolie public String[] OpenFile() throw IOException { [12:48]
Broccolie system.err.println("Error - IOException!"); [12:48]
SpiceMan don't paste here [12:48]
ricky_clarkson Kaedenn: "code that's converted from a different language" - if it's coming from a language that's more map-heavy than Java, e.g., you might want to consider a different design. [12:48]
Broccolie sorry [12:49]
ricky_clarkson Kaedenn: e.g., replace a Map<String, Object> with a class with named fields, etc. [12:49]
Broccolie Im supposed to be finding the bug in the code [12:49]
ricky_clarkson In the absence of competence with the clipboard, consider writing tests for the code, and running them. [12:50]
SpiceMan ricky_clarkson: such optimism [12:51]
ricky_clarkson Keeps him quiet for a bit maybe :) [12:51]
dtrott ricky_clarkson++ [12:51]
dtrott ricky_clarkson has a karma level of 227, dtrott [12:51]
Broccolie If it were my code I wouldve :c [12:52]
SpiceMan Broccolie: sending private messages with permission is bad nettiquette [12:52]
ricky_clarkson You only write tests for your own code? [12:52]
SpiceMan Broccolie: did you even open the links the javabot said? [12:52]
SpiceMan pastebin [12:52]
SpiceMan Please paste your code and any errors online. For runnable main-classes, try . For general code and errors, use for instance [12:52]
Broccolie Thanks guys, I got it. [12:53]
Broccolie parted the channel: [12:53]
ricky_clarkson Another one helped! [12:53]
oxum [oxum!~oxum@] has joined ##java [12:54]
tassee [tassee!] has joined ##java [12:54]
SpiceMan bets he just thought the system.err compile error was the "bug" and he didn't even look for the actual bug [12:55]
ricky_clarkson I was a bit worried about doing this but I've almost put in place a no mockito policy in my team and I think it's helping. [12:55]
dtrott Whats your issue with mockito ? [12:55]
ricky_clarkson basically if you do more than a few lines of mock config I'll ask if you've considered a fake or using the real object [12:55]
ricky_clarkson Readability, the fact that people repeat the mocking config instead of making it reusable (that's convention not a technical limitation), and readability again. [12:56]
dtrott Do you have a clear definition of what types of tests/mocks you should create and what the standards for each type are ? [12:56]
ricky_clarkson There are some guidelines that set the preference order, but they're not as strict as you might be asking for. [12:58]
ricky_clarkson real objects if possible, then fakes, then mocks testing state, then mocks testing interactions as the lowest of the low [12:58]
ricky_clarkson I guess real objects plus spy could be in there too but it doesn't actually come up that much [12:58]
dtrott Yea but one (possible) standard is that every time you create a library object (something others will use) you also create the basic mock / mock factory for it so that others have a quick way to get a mock for that object. [01:00]
ricky_clarkson Creating a mock for things is easy with mockito, unless you mean a fake rather than a mock. [01:00]
dtrott Too easy is the problem ? [01:01]
ricky_clarkson Each team approaches testing quite differently, so for some they'll prefer to create a 'replay server' that can replay a session rather than coding up an in-memory fake [01:01]
dendazen [dendazen!] has joined ##java [01:02]
ricky_clarkson or they'll just not see why we'd want a fake, or give us an inflexible one that won't let us test boundary conditions. [01:02]
ricky_clarkson so instead of waiting for a half-assed thing I'd rather roll my own half-assed thing that at least helps in our tests. [01:02]
dtrott As I said at the start your team needs to agree on how you want do testing, establish standards then follow them ... [01:03]
ricky_clarkson I'm doing that in my team, but we interact with a lot of others. [01:03]
dtrott A company is a big team .... [01:03]
ricky_clarkson Those guidelines above are company-wide. [01:04]
cpplearner The JVM spec says, `A class or interface C may be initialized only as a result of:`... [01:05]
cpplearner [01:05]
cpplearner cpplearner's title: "Chapter 5. Loading, Linking, and Initializing" [01:05]
cpplearner Then, what's the cases where a class/interface is not initialized? [01:05]
cpplearner I'm not sure the meaning of `may` here. [01:05]
ricky_clarkson cpplearner: You can read that the same as 'must' I believe. [01:06]
ricky_clarkson you may only turn right = you must turn right [01:06]
cpplearner Oh...? [01:07]
cpplearner Can I just regard it as must? [01:07]
ricky_clarkson That's what I said. [01:07]
cpplearner Hmm, thanks. [01:08]
dtrott It?s probably written as may to allow for someone to add some wierd special case, but for the majority of use it probably means must. [01:08]
cpplearner =) [01:08]
dtrott use -> us|uses [01:08]
bluewhistle [bluewhistle!~bluewhist@] has joined ##java [01:09]
feannag [feannag!~feannag@2409:4042:2006:b951:c96:39f:af01:444] has joined ##java [01:09]
dendazen [dendazen!] has joined ##java [01:10]
bluewhistle [bluewhistle!~bluewhist@] has joined ##java [01:17]
dendazen [dendazen!] has joined ##java [01:20]
usempire [usempire!] has joined ##java [01:20]
dendazen [dendazen!] has joined ##java [01:28]
otto_j [otto_j!] has joined ##java [01:30]
usempire [usempire!] has joined ##java [01:35]
lonelobo [lonelobo!~lobo@] has joined ##java [01:38]
bluewhistle [bluewhistle!~bluewhist@] has joined ##java [01:38]
bluewhistle [bluewhistle!~bluewhist@] has joined ##java [01:40]
oxum [oxum!~oxum@] has joined ##java [01:42]
palasso [palasso!~palasso@unaffiliated/palasso] has joined ##java [01:42]
Pillus [Pillus!sid14656@gateway/web/] has joined ##java [01:48]
AfroThundr|dev [AfroThundr|dev!sid328387@countervandalism/AfroThundr3007730] has joined ##java [01:48]
RedSoxFan07 [RedSoxFan07!] has joined ##java [01:49]
plitter [plitter!~plitter@] has joined ##java [01:50]
pdg [pdg!sid395042@gateway/web/] has joined ##java [01:51]
lineos [lineos!sid103986@gateway/web/] has joined ##java [01:52]
db [db!uid18678@gateway/web/] has joined ##java [01:53]
pingveno [pingveno!sid269408@gateway/web/] has joined ##java [01:53]
wyvern [wyvern!sid40333@gateway/web/] has joined ##java [01:53]
egp [egp!sid237851@gateway/web/] has joined ##java [01:54]
rann [rann!sid175221@gateway/web/] has joined ##java [01:55]
peltre [peltre!sid268329@gateway/web/] has joined ##java [01:56]
lucifer [lucifer!lucifer@gateway/web/] has joined ##java [01:56]
xoke [xoke!sid184609@gateway/web/] has joined ##java [01:56]
noahmg123 [noahmg123!sid89117@gateway/web/] has joined ##java [01:56]
dendazen [dendazen!] has joined ##java [01:58]
Sina [Sina!uid230776@gateway/web/] has joined ##java [01:58]
emdashcomma [emdashcomma!sid217805@gateway/web/] has joined ##java [01:58]
shicks_ [shicks_!~shicks252@2600:1700:2428:20b0:b874:7075:1fd6:94e1] has joined ##java [01:59]
Darkfoe [Darkfoe!sid402081@gateway/web/] has joined ##java [01:59]
barq [barq!sid103986@gateway/web/] has joined ##java [01:59]
Lewix [Lewix!sid158496@gateway/web/] has joined ##java [02:00]
led_dark_1 [led_dark_1!~Thunderbi@] has joined ##java [02:01]
merkazu [merkazu!sid148003@gateway/web/] has joined ##java [02:02]
SimonVT [SimonVT!sid3779@gateway/web/] has joined ##java [02:03]
sebhoss [sebhoss!sid168260@gateway/web/] has joined ##java [02:03]
Teckla [Teckla!sid172075@gateway/web/] has joined ##java [02:04]
Zoinks [Zoinks!~shiranpur@unaffiliated/shiranpuri] has joined ##java [02:04]
treeman5 [treeman5!~treeman5@] has joined ##java [02:05]
hussam [hussam!uid193284@gateway/web/] has joined ##java [02:07]
yottabyte [yottabyte!uid195082@gateway/web/] has joined ##java [02:08]
sauvin [sauvin!sauvin@about/linux/staff/sauvin] has joined ##java [02:09]
Zee- [Zee-!~Zee-@] has joined ##java [02:09]
sauvin [sauvin!sauvin@about/linux/staff/sauvin] has joined ##java [02:10]
stigz [stigz!sid371747@gateway/web/] has joined ##java [02:11]
Pinchiukas [Pinchiukas!~keps@unaffiliated/pinchiukas] has joined ##java [02:12]
Pinchiukas Can somebody explain to me what this syntax means: "public class NetworkResponse<T> {" ? What is this "<T>" thing? [02:13]
deebo a type paramater [02:13]
Pinchiukas Umm... What is a type parameter? :) [02:13]
fowlduck [fowlduck!sid2258@gateway/web/] has joined ##java [02:14]
Bombe Something to type into google. [02:14]
Bombe Hence ?type? parameter. [02:14]
Pinchiukas Wow that's so clever! [02:15]
shicks2525 [shicks2525!~shicks252@] has joined ##java [02:15]
deebo it's a type, that is given as a parameter [02:16]
db generics [02:16]
db For a tutorial on generics, please see . Also, is a great in-depth resource. [02:16]
db Pinchiukas: ^ [02:16]
tag [tag!sid271787@p3m/member/tag] has joined ##java [02:18]
lolmac [lolmac!sid171216@gateway/web/] has joined ##java [02:27]
bluewhistle Hi, need some help figuring out why a java dropwizard application eventually hangs after running for a few days. There are no OOM errors, and the heap usage nevers exceeds 60-70% of the max heap alloted. Cannot find any obvious connection leaks as well. [02:27]
bluewhistle Here's a sample gc log - when the application is running normally [02:28]
bluewhistle I see that minor gc is occurring very frequently and the size of the young generation is less than 10% of the total heap size [02:29]
hsiktas [hsiktas!sid224847@gateway/web/] has joined ##java [02:29]
bluewhistle Why could this be happening? Please help [02:29]
puppy_za [puppy_za!sid277586@gateway/web/] has joined ##java [02:31]
Uniquibous [Uniquibous!sid359377@gateway/web/] has joined ##java [02:32]
deebo there not being any obvious connection leaks doesnt mean there arent non-obvious ones [02:32]
deebo how does it hang [02:32]
bluewhistle All API latencies shoot up 10x [02:32]
deebo for same request count? [02:33]
db maybe hook up the flight recorder and see what's taking 10x? [02:33]
ogradyd [ogradyd!~Thunderbi@2a02:8070:88bf:9df0::16e] has joined ##java [02:34]
deebo or just monitoring in general to see what's going on, it's practically impossible to figure out what's wrong without more information [02:34]
very_sneaky [very_sneaky!~very_snea@] has joined ##java [02:36]
serdar [serdar!] has joined ##java [02:41]
feannag [feannag!~feannag@2409:4042:2006:b951:c96:39f:af01:444] has joined ##java [02:43]
merkazu [merkazu!sid148003@gateway/web/] has joined ##java [02:44]
TheresaJayne [TheresaJayne!sid37392@gateway/web/] has joined ##java [02:46]
Tichodroma [Tichodroma!~lutz@fsf/member/Tichodroma] has joined ##java [02:50]
that_lurker [that_lurker!] has joined ##java [02:51]
benskey [benskey!] has joined ##java [02:55]
bluewhistle [bluewhistle!~bluewhist@] has joined ##java [02:56]
mizi [mizi!~mizi@] has joined ##java [02:57]
KnownSyntax [KnownSyntax!sid233169@gateway/web/] has joined ##java [02:59]
bobek [bobek!~bobek@unaffiliated/bobek] has joined ##java [02:59]
EmmaT [EmmaT!~EmmaT@] has joined ##java [03:02]
Jabbslad [Jabbslad!sid25161@gateway/web/] has joined ##java [03:03]
SasCologne [SasCologne!uid14111@gateway/web/] has joined ##java [03:07]
sdu [sdu!] has joined ##java [03:07]
mindfulStoic [mindfulStoic!sid172528@gateway/web/] has joined ##java [03:08]
FabioP [FabioP!] has joined ##java [03:10]
hypc1 [hypc1!~Thunderbi@] has joined ##java [03:10]
r0bby [r0bby!sid699@guifications/user/r0bby] has joined ##java [03:11]
worstadmin [worstadmin!sid56056@gateway/web/] has joined ##java [03:14]
bluewhistle [bluewhistle!~bluewhist@] has joined ##java [03:17]
hypc1 [hypc1!~Thunderbi@] has joined ##java [03:18]
tilerendering [tilerendering!~tilerende@c-base/crew/conx] has joined ##java [03:25]
tilerendering hola [03:25]
bluewhistle [bluewhistle!~bluewhist@] has joined ##java [03:27]
bluewhis_ [bluewhis_!~bluewhist@] has joined ##java [03:28]
hypc [hypc!~Thunderbi@] has joined ##java [03:28]
benskey [benskey!] has joined ##java [03:46]
CuriousErnestBro surial, are you online? [03:46]
CuriousErnestBro dreamreal, are you online? [03:48]
CuriousErnestBro Anyways I told the prof [03:49]
Xgc [Xgc!~Jon@] has joined ##java [03:49]
CuriousErnestBro And she said "Yes, I know how to handle an exception. Thank you" [03:49]
CuriousErnestBro WHY DID YOU DO IT WRONG THEN [03:49]
hinst [hinst!509c193b@gateway/web/cgi-irc/] has joined ##java [03:52]
benskey parted the channel: [03:54]
bigfondue [bigfondue!~bigfondue@2601:44:8702:6c30::dc11] has joined ##java [04:00]
kyych [kyych!] has joined ##java [04:02]
that_lurker [that_lurker!] has joined ##java [04:02]
kyych pastebin list options [04:03]
kyych kyych, what does that even *mean*? [04:03]
sonOfRa pastebin [04:03]
sonOfRa Please paste your code and any errors online. For runnable main-classes, try . For general code and errors, use for instance [04:03]
kyych thanks [04:05]
immibis [immibis!~immibis@2a02:8109:b6c0:a29c:d6f9:9981:bf39:3e97] has joined ##java [04:05]
davlefou [davlefou!~davlefou@unaffiliated/davlefou] has joined ##java [04:05]
kyych I have some problems with lambda expression inside System.out.println. My code causes error "lambda expression not expected here". Can somebody help me? [04:06]
pikapika Is it possible to place a Canvas and draw to it over a jframe/jpanel that already contains some controls say buttons, textboxes, etc? [04:09]
Tichodroma kyych: you never *call* the lambda [04:09]
pikapika The Canvas must be layered ABOVE the other controls [04:10]
sonOfRa kyych: there's multiple things that are a bit wrong here; first of all, why are you trying to use a lambda here at all? Also name -> {...} doesn't do what you think it does, it does *not* pass the already-defined variable "name" into the lambda and then executs code based on that, it creates a temporary variable "name" to pass into the lambda. You then need to somehow call that lambda with some string [04:11]
sonOfRa Then, you're comparing strings with "==", which is very wrong, use .equals(). [04:12]
pikapika JLayeredPane? [04:14]
pikapika Cool [04:14]
pikapika Looks like this is what I wanted [04:14]
pikapika I'll perform some experiments and see if it works [04:15]
pikapika I must say, its rather nice to have a widget toolkit as part of the std library [04:16]
bluewhistle [bluewhistle!~bluewhist@] has joined ##java [04:20]
spuz [spuz!6dee4b8e@gateway/web/cgi-irc/] has joined ##java [04:22]
EmmaT [EmmaT!~EmmaT@] has joined ##java [04:26]
snowmanbamm [snowmanbamm!snowmanbam@gateway/vpn/privateinternetaccess/snowmanbamm] has joined ##java [04:31]
hinst Is there an easy way of making JVM process more friendly to swap file? I have a server where java process runs and RAM is 99% used but swap file is not used at all (only 1% used) [04:33]
Diablo-D3 the jvm is reallly good at memory management [04:34]
Diablo-D3 you might simply not be using enough memory in your java app for it to have anything to swap [04:34]
sonOfRa Why would you want to *ever* use swap space if you still have memory available? [04:35]
sonOfRa Swap is really, really, really slow. [04:35]
tilerendering hinst: how much ram is given to the jvm? [04:36]
sonOfRa You can probably achieve per-process swappiness with cgroups, but you don't really want to. [04:36]
tilerendering I have my glassfish server running on a 128gb ram beast [04:36]
tilerendering 64 of it is given to the app server [04:37]
tilerendering another 32 to the database. [04:37]
hinst I want unused objects to be moved to swap file because they might be rarely used but I read that because of garbage collection even rarely used objects are accessed during each garbage-collection [04:38]
jackhum [jackhum!~jackhum@] has joined ##java [04:38]
sonOfRa that's not going to happen and doesn't make a lot of sense [04:41]
acidjnk_new [acidjnk_new!] has joined ##java [04:41]
sonOfRa unused objects are collected on garbage collection. Either that, or they're not unused. [04:41]
srm [srm!~Adium@unaffiliated/srm] has joined ##java [04:42]
deebo or they're in tenured gen where they wont be gc'd until more room is needed [04:42]
sonOfRa Also, memory allocation on the JVM is a bit different from what you're looking at to system memory management [04:42]
sonOfRa The JVM will definitely over-allocate, and then in its allocated space (which you can control) allocate the objects, and collect them again. This allocation and collection process will not necessarily be reflected in the memory usage of the process. [04:43]
benskey [benskey!] has joined ##java [04:43]
sonOfRa So, oversimplified: You may give your JVM 4Gigs of RAM via command line flags. Then you load a 2GB file into some kind of object structure. The JVM will allocate the memory, but even if that object goes out of scope and gets deallocated, the JVM may decide not to return that memory to the system. [04:44]
sonOfRa Because you told it to use "up to 4G", and it's still using a lot less than that, and it has no reason to return it, only so that it has to reallocate it the next time a big object comes along [04:45]
odinsbane Should we limit the rate of Files.getLastModifiedTime? [04:48]
waz [waz!~waz@pdpc/supporter/active/waz] has joined ##java [04:49]
sbeex [sbeex!~sbeex@] has joined ##java [05:02]
sbeex morning [05:02]
sbeex morning [05:03]
spuz odinsbane maybe? [05:03]
Barrt [Barrt!~Barrt@unaffiliated/barrt] has joined ##java [05:04]
Gazooo [Gazooo!~Gazooo@] has joined ##java [05:07]
Barrt Hey people that work with maven, I have a default repo defined on my company computer or settings.xml, and sometimes it seems maven only search for dependencies on that local repo, [05:16]
mbooth CuriousErnestBro: This is why, as a general rule, homework questions are not good topics for this channel. Profs often want a very specific answer which can differ *wildly* from industry-accepted idiom. Just get over it and submit what the prof wants. You won't *really* start learning Java until you get your first job anyway. [05:16]
Barrt I was expecting that it would search on maven central if the dependencies where not available, or if Im not in the company network, but it doesn't [05:17]
CuriousErnestBro mbooth, well she did try {... } catch (IloException e) { e.printStackTrace();} [05:17]
mbooth CuriousErnestBro: Yes, that only reinforces my point. [05:18]
CuriousErnestBro And when I told her that using throws IloException is better, and explained why (note: in a non-dickish way, just to inform her) [05:18]
dreamreal uh oh [05:18]
dreamreal this won't end well, will it [05:18]
CuriousErnestBro She told me. I know how to handle exceptions, thank you [05:18]
CuriousErnestBro Very bitchy [05:18]
CuriousErnestBro Then I gave up and left [05:18]
Barrt So I want make maven to search on maven central every time the company repo is not available [05:18]
dreamreal but she doesn't [05:18]
dreamreal Barrt: it will do that by default, will it not? [05:19]
CuriousErnestBro dreamreal, yeah I wanted to say "then why didn't you in your code?" [05:19]
CuriousErnestBro But I already mentally checked out [05:19]
CuriousErnestBro People who block like that when you give a suggestion aren't willing to learn [05:19]
Barrt dreamreal, it should, but doesn't seem like..!?!?!.. [05:19]
dreamreal yep, it was a pointless exercise [05:19]
Barrt dreamreal, I only see the message unable to retrieve dependency from [05:20]
CuriousErnestBro At least I know better now thanks to this channel :) [05:20]
dreamreal Barrt: hmm, I guess maybe you could define maven central in the project repositories specifically, yeah? [05:21]
Barrt dreamreal, have done that as well, even renamed settings.xml [05:22]
dreamreal hrm, then maybe the message is simply informative? [05:23]
Barrt dreamreal, But I will give it a try again. [05:23]
matsurago [matsurago!~matsurago@240b:10:b3a1:1700:227c:8fff:fe9b:7ad6] has joined ##java [05:25]
bluewhistle [bluewhistle!~bluewhist@] has joined ##java [05:30]
Lengsdorfer [Lengsdorfer!~Lengsdorf@unaffiliated/lengsdorfer] has joined ##java [05:33]
hooper [hooper!] has joined ##java [05:34]
bluewhistle [bluewhistle!~bluewhist@] has joined ##java [05:37]
benskey [benskey!] has joined ##java [05:38]
dendazen [dendazen!] has joined ##java [05:40]
dreamreal Ahhh, that feeling when the client questions the values your app gives them, and you get to point back at emails you'd sent the client asking for clarification and approval of those formulae (or corrections to them), all applied in the code: everything is "you either knew about this because I told you explicitly, or you gave me the formula to use and I used it" [05:43]
jackhum [jackhum!~jackhum@] has joined ##java [05:43]
dreamreal (not as a defense, it's just information, it's just funny because all of it was documented even if it was informal) [05:43]
bluewhistle [bluewhistle!~bluewhist@] has joined ##java [05:43]
mbooth dreamreal: I know that feel. One project I worked one I had to add a feature switch to make it bug-for-bug compatible with their old system... "Why do we get different results?" Because your old system was wrong, dickhead. Why do you think you are paying me? [05:57]
dreamreal bwahaha! [06:01]
dreamreal In this case the results are built in two levels: one uses incomplete data and is a projection, the other is based on actual data [06:02]
dtrott parted the channel: [06:04]
dreamreal but I'd mentioned every last bit of this in emails to the client, so it was just information's sake at this point [06:04]
dreamreal and in one case they're asking me to provide the formula they provided me, which I did: "line 202 in this file, this was the calculation sent to me by ___ on ___" [06:06]
mbooth dreamreal: Yeah, I was dealing with scientists so I was able to point to the formulae and algorithms they gave me and show them that I had implemented them. That their old system did not implement them correctly was not really my concern :-) [06:06]
mbooth Programming would be great job without the customers ;-) [06:07]
dreamreal indeed! [06:07]
qwedfg [qwedfg!~qwedfg@] has joined ##java [06:08]
mbooth CuriousErnestBro: See above ^ maybe dealing with a difficult prof is preparing you for dealing with difficult customers in real life ;-) [06:09]
bluewhistle [bluewhistle!~bluewhist@] has joined ##java [06:09]
dreamreal mbooth: once when dealing with two senators over the implementation of a contradictory law, they asked a sane question about what we should do in the case of error conditions, and I said - without thinking - "oh, we delete the data, right?" - I was being sarcastic but nearly got fired over it. Incidentally, the law got changed. :) [06:10]
mbooth Hehe [06:11]
dreamreal (in tax law, you NEVER delete the data, ever) [06:11]
that_lurker [that_lurker!] has joined ##java [06:11]
dreamreal a lot of the delay in implementation was so we could get it right, because a lot of it was orange jumpsuit code, and some people did in fact end up in orange jumpsuits over it [06:12]
bluewhistle [bluewhistle!~bluewhist@] has joined ##java [06:12]
mbooth It's easy to forget that not everyone has the same amount of cynicism as the engineering department [06:12]
nohdter [nohdter!] has joined ##java [06:14]
nohdter Hi all, I am trying to create an instance of java.util.concurrent.TimeUnit via reflection but can't figure out how to. Here is a pastebin that described the situation [06:15]
nohdter If I do `Class.forName(TimeUnit.class.getCanonicalName()).newInstance();` instead I get `Caused by: java.lang.NoSuchMethodException: java.util.concurrent.TimeUnit.<init>()` [06:15]
dreamreal Why are you trying to do it that way [06:15]
dreamreal javadoc TimeUnit [06:15]
dreamreal dreamreal: [JDK: java.util.concurrent.TimeUnit] [06:15]
nohdter dreamreal assignment at the Uni [06:16]
dreamreal they told you... to create an... ENUM via reflection? That's... retarded. Tell them to learn java. [06:16]
nohdter I will pass on the message [06:16]
dreamreal TimeUnits can't be created like that. They're enums. Use valueOf() and look up the specific instance name. [06:16]
dreamreal either you got the assignment wrong or they really do need to learn java. [06:17]
yawkat nohdter: you cant simply create new instances of enums [06:17]
dreamreal I mean, maybe they don't mean the same TimeUnit we're talking about but ... [06:18]
conan [conan!] has joined ##java [06:18]
nohdter it is actually not a direct instruction to do such...I need to do it as part of an assignment that involves working with a homegrown reflection library [06:18]
dreamreal don't care [06:19]
yawkat thats dumb [06:19]
yawkat homework [06:19]
yawkat We don't answer homework-style questions here. Homework assignments often intentionally ask you to produce bad code: You generally HAVE to use some mechanism even though it isn't the best tool for the job, and '.. just use this library that does all that in a very nice way!' is usually not acceptable. That makes them VERY frustrating questions. [06:19]
dreamreal you don't get enum values like that [06:19]
nohdter in real life situation, when dealing with reflection/serialization, how are enums dynamically created? [06:19]
dreamreal they're not [06:19]
dreamreal they're not dynamic at all, that's their whole point [06:20]
dreamreal you get the value that matches the data you have, with valueOf(), like I said [06:20]
serdar [serdar!] has joined ##java [06:20]
dreamreal That's like saying you want to create a new compile-time constant at runtime [06:20]
nohdter what about in situation where you need to serializes some java code base and send across the wire [06:20]
nohdter and part of that contains Enum files [06:21]
yawkat you send class files and load them [06:21]
dreamreal "I would like a pizza that is not pizza-shaped" [06:21]
yawkat no class-based reflection involved [06:21]
tilerendering but just let them be, they wanna code their own kind of java [06:21]
xeno_ [xeno_!~xeno@unaffiliated/xeno] has joined ##java [06:21]
matsurago like " enum My { MON, TUE } My my = My.valueOf("MON"); " [06:21]
nohdter > you send class files and load them <- That sounds would that look like. Now sure doing Class.forName("class file of enum") would work [06:22]
yawkat make a new class loader with the url where your class files are, and load them [06:22]
yawkat but it's completely different to what youre doing here [06:22]
quadsar [quadsar!~quadsar@unaffiliated/quadsar] has joined ##java [06:31]
bluewhis_ [bluewhis_!~bluewhist@] has joined ##java [06:34]
dbank [dbank!~dbank@unaffiliated/dbank] has joined ##java [06:37]
di0_ [di0_!~di0_@unaffiliated/di0-/x-5053590] has joined ##java [06:39]
Barrt Hi [06:40]
Barrt Mav-en keeps giving me an error on compilation, because it seems to fall to language level 5 [06:41]
Barrt I have changed module settings, on intell [06:41]
Barrt IntelliJ as well as adding maven plugin to change version [06:42]
sonOfRa Barrt: how'd you change the pom.xml to make it use java 8? [06:43]
mbooth Barrt: Did you did it like this? [06:43]
mbooth mbooth's title: "Apache Maven Compiler Plugin Setting the -source and -target of the Java Compiler" [06:43]
mbooth "Did you did it" Stupid fingers... [06:43]
Barrt I have changed to use java 11, is also set to default java 11 [06:43]
matsurago Barrt: use the link above and replace "1.8" with "11" (not "1.11") [06:44]
sonOfRa actually, the property is <maven.compiler.release>11</...>, rather than the old source/target mix [06:44]
mbooth Yeah since Java 9, you may be better using the release property: [06:45]
Peste_Bubonica [Peste_Bubonica!~Peste_Bub@unaffiliated/peste-bubonica/x-4612396] has joined ##java [06:46]
enoq [enoq!] has joined ##java [06:47]
mf7 [mf7!~user@] has joined ##java [06:54]
enoq [enoq!] has joined ##java [06:59]
serdar [serdar!] has joined ##java [06:59]
bluewhistle [bluewhistle!~bluewhist@] has joined ##java [07:01]
earthy mbooth: ? I'd have guessed maven.compiler.release is the successor for 'compilerVersion', which is somewhat orthogonal to source and target? [07:08]
bluewhistle [bluewhistle!~bluewhist@] has joined ##java [07:24]
bluewhis_ [bluewhis_!~bluewhist@] has joined ##java [07:30]
feannag [feannag!~feannag@2409:4042:2006:b951:c96:39f:af01:444] has joined ##java [07:35]
dmlloyd [dmlloyd!uid331705@redhat/jboss/dmlloyd] has joined ##java [07:37]
benskey [benskey!] has joined ##java [07:51]
bluewhistle [bluewhistle!~bluewhist@] has joined ##java [07:54]
zeden [zeden!~user@unaffiliated/zeden] has joined ##java [07:54]
Kiminuo [Kiminuo!~mix@] has joined ##java [07:56]
oxum [oxum!~oxum@] has joined ##java [08:05]
oxum [oxum!~oxum@] has joined ##java [08:07]
guacjack [guacjack!~guacjack@] has joined ##java [08:10]
Anthaas [Anthaas!~Anthaas@unaffiliated/anthaas] has joined ##java [08:20]
enoq [enoq!] has joined ##java [08:25]
ssd532 [ssd532!uid123494@gateway/web/] has joined ##java [08:31]
bluewhistle [bluewhistle!~bluewhist@] has joined ##java [08:39]
mizi [mizi!~mizi@] has joined ##java [08:41]
Orlando^ [Orlando^!] has joined ##java [08:42]
bluewhistle Any pointers on what can cause a java app performance to degrade suddenly? The application runs fine for a day or two, then suddenly at the same instant, all APIs on all instances of the app become latent. The latencies return to normal upon restarting. [08:43]
Arlion [Arlion!~Arlion@unaffiliated/arlion] has joined ##java [08:44]
bluewhistle Total heap usage remains well below the max size, CPU and thread utilization remains low. Thread dumps donot have any blocked/deadlocked threadss [08:44]
bluewhistle The different instances are running different VMs. [08:45]
sbeex [sbeex!~sbeex@] has joined ##java [08:45]
spuz bluewhistle sounds like database connections are not being released [08:45]
bluewhistle How can I find out if that's happening? [08:46]
stryek [stryek!uid332574@gateway/web/] has joined ##java [08:47]
spuz perhaps add some metrics to measure number of free database connections in the pool over time [08:47]
CuriousErnestBro Why are ugly people meaner than beautiful people? [08:49]
led1 [led1!~Thunderbi@] has joined ##java [08:49]
CuriousErnestBro Sorry wrong channel [08:50]
bluewhistle CuriousErnestBro Because the world is harsher to them. To whom evil is done, do evil in return. [08:51]
CuriousErnestBro bluewhistle, that seems like a decent enough explanation, thanks [08:53]
benskey [benskey!] has joined ##java [08:54]
Bombe I have actually made the opposite observations? the beautiful people are usually assholes because they get their will all the time and rain shit upon you if you don?t want to comply? but that?s rather off-topic. [08:56]
CuriousErnestBro Bombe, that's only if they think they can take advantage of you. It applies to all people but indeed beautiful people are more likely to try [08:58]
CuriousErnestBro That's why it's important to always set expectations (most of it is in body language though) [08:58]
yawkat be cheeser [08:59]
yawkat how is this java? [08:59]
dreamreal CuriousErnestBro: uhhhhh [09:04]
CuriousErnestBro yawkat, lmao I love that command [09:04]
dreamreal for one thing it's not java, for another, facts not in evidence. I'm generally a nice person but I'm also uglier than the dog shit you scrape off of your shoe. [09:04]
led1 [led1!~Thunderbi@] has joined ##java [09:05]
bluewhistle spuz, there are places in the application code where http calls are being made with OkHttp but the response body is not closed. Could that explain the problem? [09:05]
cheeser profiler [09:06]
cheeser A profiler is a tool to find performance bottlenecks. VisualVM is a free profiler available from (included with OpenJDK up to Java 8); JProfiler and YourKit cost money but usually have free eval periods or time-limited betas. Java Flight Recorder and Java Mission Control were recently opened sourced under OpenJDK. [09:06]
bluewhistle openjdk8 does not have jfr [09:06]
bluewhistle other profilers have a performance overhead [09:06]
cheeser you can download it [09:07]
bluewhistle can't do on production servers [09:07]
bluewhistle hard to replicate the issue on stage [09:07]
dreamreal hands bluewhistle dynatrace [09:07]
spuz bluewhistle not sure what you mean by response body is not closed [09:07]
cheeser \_(?)_/ [09:07]
cheeser then add some logging and see what's what [09:07]
dreamreal bluewhistle: and in the end, are we sure this is ##java's problem? You know the parameters of what you have to work with, be a programmer and fix it [09:08]
bluewhistle OkHttp responses need to be closed by calling the close() methods or string() method of the ResponseBody class. This releases the connection. [09:08]
cheeser so fix that [09:08]
spuz Yeah, I would fix that but it doesn't sound like the reason that requests begin to lag. I would expect requests to hang until the client closes the connection in that case. [09:09]
dreamreal sighs. If only java had some kind of "finally" clause that could enforce such things [09:09]
spuz i.e. you would see errors in the client in that case, not slow responses [09:09]
matsurago If you are not closing a TCP connection, it hangs for a while on the other side, so at some moment there may be just a lot of opened connections on the target server [09:10]
jackhum [jackhum!~jackhum@] has joined ##java [09:23]
EmmaT [EmmaT!~EmmaT@] has joined ##java [09:29]
mizi [mizi!] has joined ##java [09:33]
waz [waz!~waz@pdpc/supporter/active/waz] has joined ##java [09:36]
toytoy [toytoy!~toytoy@unaffiliated/t0yt0y] has joined ##java [09:40]
feannag [feannag!~feannag@2409:4042:2006:b951:c96:39f:af01:444] has joined ##java [09:48]
altendky_ [altendky_!uid135382@gateway/web/] has joined ##java [09:52]
usempire [usempire!] has joined ##java [09:58]
Galactus [Galactus!~Galactus@unaffiliated/galactus] has joined ##java [10:00]
plarsen [plarsen!~plarsen@redhat/jboss/pdpc.professional.plarsen] has joined ##java [10:04]
notadeveloper [notadeveloper!465f39a2@gateway/web/cgi-irc/] has joined ##java [10:04]
CuriousErnestBro How do you say XOR in words? [10:07]
cheeser ex - or [10:07]
CuriousErnestBro uh.... [10:08]
CuriousErnestBro I meant in the stupid language academics speak [10:08]
cheeser oh, sorry. ex - or [10:08]
dreamreal negated or? I don't really know if there's a regular human-speak version of xor [10:08]
cheeser "exclusive or" [10:09]
CuriousErnestBro "Exclusive or" [10:09]
CuriousErnestBro Yeah that's it [10:09]
spuz "ex-or" is how I've heard it [10:09]
dreamreal you guys are gross. Regular humans wouldn't know what THAT was, either [10:09]
cheeser that's what it means not how it's said [10:09]
cheeser dreamreal: ironically, that's what most people mean when they say "or" [10:09]
CuriousErnestBro I'll use exclusive disjunction, after all; academics is one humongous dick measuring contest [10:09]
spuz personally I say "^" [10:10]
cheeser you like being redundant, then? [10:10]
dreamreal cheeser: bwahahaa, dang it [10:10]
dreamreal cheeser++ it pains me to think it but I think you're right [10:10]
dreamreal cheeser has a karma level of 1,528, dreamreal [10:10]
CuriousErnestBro spuz, we have already established that the prof is a noob [10:10]
CuriousErnestBro So she won't get that [10:10]
cheeser oh, you're one of those "my prof is an idiot" types. noted. [10:10]
dreamreal cheeser: in all fairness, based on evidence CuriousErnestBro has related, they're not wrong [10:11]
dreamreal points at the "e.printStackTrace()" bit [10:11]
CuriousErnestBro cheeser, no.. she wrote: try { ... } catch (IloException e) { e.printStackTrace(); } and when I went and explained nicely that throws IloException is better she told me "I know how to handle exceptions, thank you" in a bitchy tone [10:12]
CuriousErnestBro So you may be able to deduce why I think she's a noob [10:12]
cheeser based on one anecdote with no context, i'll withhold judgement [10:13]
notadeveloper hello guys [10:13]
dreamreal cheeser: it goes beyond that too but wise choice :) [10:13]
CuriousErnestBro cheeser, based on her unwillingness to learn, I already made my judgement [10:14]
CuriousErnestBro But yeah there was more, but let's not get into that [10:14]
cheeser CuriousErnestBro: i'm really happy for you [10:14]
CuriousErnestBro Or javabot will hit me with the cheese quote [10:14]
CuriousErnestBro cheeser++ I like how you give her the benefit of the doubt [10:15]
CuriousErnestBro cheeser has a karma level of 1,529, CuriousErnestBro [10:15]
cheeser most students in the "my prof is an idiot" camp are, themselves, slobbering troglodytes whose opinions i wouldn't wipe myself with. i hope very little value or esteem on such proclamations. [10:16]
CookieM [CookieM!] has joined ##java [10:17]
null1337 [null1337!] has joined ##java [10:21]
CuriousErnestBro Fair enough [10:23]
greggerz [greggerz!~greggerz@unaffiliated/greggerz] has joined ##java [10:28]
treeman5 [treeman5!~treeman5@] has joined ##java [10:37]
pppingme [pppingme!~pppingme@unaffiliated/pppingme] has joined ##java [10:38]
bluezone [bluezone!uid104970@gateway/web/] has joined ##java [10:40]
surial notadeveloper: hello! [10:40]
bluezone I'm trying to use the "instanceof" operator to test if an "Object" is an instance of a "List<String>". Is this not possible because of type erasure? [10:41]
bluezone I can test if "Object instanceof List" [10:42]
bluezone but not "Object instanceof List<String>" [10:42]
surial bluezone: correct. [10:42]
mbooth Certainly sounds like type erasure [10:43]
sonOfRa Yes, you can't verify generic types like that. But the fact that you wrote code that leads you to that solution is usually an indicator of a design problem [10:43]
surial bluezone: the only way to know is to loop through the list and check if each element is a string, and then you still have no guarantees: Other code might h old a reference to the list and add a non-string to it later. [10:43]
bluezone Unfortunately this code is using to get a bean property [10:44]
surial that's 25+ year old, obsolete shit API. [10:44]
bluezone and that returns an Object - no type [10:44]
surial you can use it, of course ? but, it's.. shit, obsolete API. It's not gonna be pretty. [10:44]
bluezone I guess it makes sense the company is 30 years old lol [10:44]
bluezone I think I could use to get the type, but it would be a bit of work to rewrite the code [10:45]
surial once you go down stringified lookups of 'properties' like this, type safety is more or less out the window anyway. Just do what you gotta do. Pray the types hold up. [10:45]
bluezone yeah [10:46]
bluezone alright cool [10:46]
surial bluezone: there ARE ways to try to tackle this. [10:46]
surial bluezone: what this library does, if you forget the nesting for a second, is run a string analysis op to turn 'foo' into 'getFoo', then, runs bean.getClass().getMethod("getFoo").invoke(bean); [10:47]
bluezone oof [10:47]
tachoknight [tachoknight!~tachoknig@] has joined ##java [10:48]
Gazooo [Gazooo!~Gazooo@] has joined ##java [10:48]
surial it's.. a one liner. It then does that nesting thing which.. uh... just taking a wild stab in the dark, that something like passing in for 'name' the value: foo/bar, that it'll split on slashes and then re-assign bean every time, so, first bean = bean.getClass().getMethod("getFoo").invoke(bean); and then bean.getClass().getMethod("getBar").invoke(bean);. so, like obj.getFoo().getBar() [10:48]
surial now, given that this is what it does, you can write it yourself, and you can check the return type. [10:48]
surial unlike in most places, the <String> bit in the method declaration: public List<String> getNames() { ... } is NOT ERASED and can be retrieved at runtime. [10:48]
surial once you have done so, you can be certain that invoking this method WILL return a list of strings. [10:48]
surial (or null, of course). [10:49]
jamezp [jamezp!~jamezp@redhat/jboss/jamezp] has joined ##java [10:49]
surial it's a little tricky, of course. perhaps it's class Foo<T> {public List<T> getNames() { ... }} , and obj so happens to be a Foo<String>. Which you cannot check. [10:49]
bluezone I'll ask if they want to try to rewrite it better [10:50]
EgonX [EgonX!] has joined ##java [10:51]
bluezone If I have time i'll try the method getPropertyType, my impression is it would give us Class<List<String>> [10:56]
bluezone but no idea [10:56]
matsurago bluezone: you can write some unit tests to find out. Those are called "learning tests". [10:58]
surial bluezone: Class<List<String>> isn't a thing. [11:00]
surial bluezone: In fact, the T in Class<T> is a design fuckup. Class never hsould have had generics. [11:00]
surial bluezone: The java.lang.Class instance would be List.class. That's it. There is no generics on that either. [11:01]
royal_screwup21 [royal_screwup21!89de72f1@gateway/web/cgi-irc/] has joined ##java [11:01]
surial (Hence the fuckup: int.class is a thing, but you can't write <int>. List<String> is a thing, but Class<List<String>> is a lie ? hence why it should not have had generics). [11:02]
matsurago surial: but without <T> in Class<T> how would you write methods with signature like "void <T> func(Class<T> cls)" ? [11:04]
surial that's not legal java. [11:04]
surial did you mean "public <T> void func(Class<T> clas)"? That is legal.. and utterly fucking useless. [11:04]
surial generics tie things together. mentioning a generics var in precisely 1 place is therefore completely pointless. [11:05]
matsurago surial: to elaborate, "public <T> T func(Class<T> cls)" [11:05]
surial that's daft. [11:05]
surial it doesn't work. [11:05]
surial In fact, a great example of why it's horseshit. [11:05]
surial let's go! [11:05]
surial int x = func(int.class); // oh shit. this doesn't actually work, int.class doesn't have any constructors _AT ALL_. [11:05]
surial List<String> y = func(ArrayList<String>.class); // this doesn't work either. The arraylist constructor doesn't use the generics, but it could have, in which case this would not be safe, and in any case this code is an error because you can't write ArrayList<String>.class. [11:06]
NorthwestVegan [NorthwestVegan!~Northwest@gateway/tor-sasl/northwestvegan] has joined ##java [11:06]
surial See? mistake. [11:06]
matsurago surial: you need this, say, for "public <T> T func(Class<T> cls) { return objectMapper.readValue(myString, cls) } [11:06]
surial no, wrong again. [11:07]
surial there's nothing you're going to say that magically wishes away the problems. [11:07]
NorthwestVegan [NorthwestVegan!~Northwest@gateway/tor-sasl/northwestvegan] has joined ##java [11:07]
surial let's use this one then... what is gonna happen if I want to read an int value? [11:07]
surial I can't do func(int.class), this does not work. [11:07]
matsurago I wonder myself what happens. A runtime or compilation error. [11:07]
sonOfRa surial: to be fair that is literally how the jackson objectmapper api works [11:07]
sonOfRa It blows up at runtime if you stuff it with stupid shit, I guess? [11:08]
sonOfRa The documentation on them even tells you you're not supposed to use it with containers, because of type erasure [11:08]
NorthwestVegan [NorthwestVegan!~Northwest@gateway/tor-sasl/northwestvegan] has joined ##java [11:08]
surial Maybe the code explicitly has 8 if/elseif statements to detect the 8 primitive-type classes and bodges around it, which is suboptimal, but, okay. That leaves passing in List<String>.class. Which [A] is a compiler error, and [B] no matter WHAT this readValue shit is doing? That <String> is GONE and therefore, the 'safety' that you're trying to introduce here (if the cls param is used to validate), or the marshalling basis you're [11:08]
surial conveying here ('unpack this serialized data into this type'), DOES NOT WORK. [11:08]
surial yes, this is one of those places where surial is right and the world is wrong. Happens a lot. [11:09]
matsurago surial: is List<String>.class even a valid class literal? [11:09]
surial I was going to mention, before matsurago said, that if you restrict yourself solely to simplistic straight up non-generified non-primitive types, it does work. [11:09]
surial But imagine the designer of j.l.Class didn't fuck it up. [11:09]
surial Then it'.. still be String myObj = func(String.class). MAYBE you need to cast. More likely you'd introduce STTs and you COULD in fact deserialize with marshalling hints into List<String>! [11:10]
surial matsurago: no. [11:10]
surial imagine jackson was written better. you could do: List<String> deserializedList = mapper.go(new TypeToken<List<String>() {}); _ AND IT WOULD WORK _, the deserialization framework will in fact, dynamically, at runtime, know that it is supposed to take whatever data it has and turn it into a list _OF STRINGS_. [11:11]
surial and there is absolutely no need whatsoever to have j.l.Class have generics for this. [11:11]
sonOfRa int foo = new ObjectMapper().readValue("1", int.class); [11:12]
sonOfRa System.out.println(foo); [11:12]
sonOfRa actually works, and prints 1 [11:12]
matsurago surial: well, there is a separate method in Jackson that works with generic collections [11:12]
sonOfRa I'm surprised it doesn't blow up [11:12]
surial sonOfRa: yes, you get lucky there. [11:12]
surial why would it? int.class is defined as Class<Integer>; this is a lie of course. [11:12]
surial HERE the lie works out. [11:12]
surial That's usually how oversimplified bullshit shortcuts go. They work for 80% of the cases. [11:12]
surial PHP and other moronic languages call it a day on that 80% and go: Yup. works for me. off to the bar. [11:12]
sonOfRa Oh, I thought there was *no* equivalent like that for the primitive wrappers at all [11:12]
surial java normally isn't that stupid. [11:12]
surial but it was here. regrettably. [11:13]
surial sonOfRa: you're still eating an instantiation and an autounbox in that example. [11:13]
sonOfRa Well yeah, it's not every day that you're using jackson to parse a non-json string containing only a number into an int [11:13]
surial For example, if I pass you a value, and that value is of type Class<Integer>, perhaps you'd go: Oh, great. Integer has a constructor that takes an int value, and is final, so.... c.getConstructor(int.class).newInstance(5) - great! nEXT! except that would fail at runtime, because you can't actually call int.class.getConstructor. [11:14]
matsurago I would say the whole type erasure was a mistake. So you cannot T.class as in other languages. [11:14]
surial sonOfRa: but that just makes it worse. There's a half-assed 'shortcut' that by sheer fucking luck ends up 'doing the right thing' maybe at most 80% of the time... and you found a nice usecase which... is really exotic and rarely comes up. [11:14]
surial THAT is why we have this shit? For that exotic never-comes-up-usecase? urgggggh. [11:14]
surial matsurago: no, type erasure is fantastic. [11:15]
surial it was that, or no generics. at all. ever. [11:15]
matsurago surial: they could do the same what Python did. [11:15]
surial See, java doesn't get to be like fucking scala or python and go: All the 25 years of built up code out there? Yeah fuck em. We're starting over. [11:15]
surial matsurago: py3k? [11:15]
surial matsurago: well, turns out py3k is the punchline to why 'do what python did' is a bad plan. [11:15]
surial nice of them to peddle in that direction; they scouted ahead and found out that that particular creek is filled to the brim with shit and alligators. Now we get to steer clear, as java community. [11:16]
matsurago Break some eggs to make a omelette. [11:16]
surial And note, project valhalla is finding a way to give us more or less reified geneircs without breaking the community in twain (it's not all hugs and kisses and rainbows and unicorns, though: jigsaw did a bad job. As a general rule of thumb, if brian goetz is leading it, it's good, if buckley or darcy are leading it, it's irrelevant and lacks ambition, and if reinhold is doing it, it's bad). [11:17]
surial so, turns out java is going to have a real tasty omelette and magically is going to manage this breaking no eggs. Quite the feat. [11:17]
matsurago There was some transitional period, but it gave the language a new breath, and now it is even more popular than before. C++ is afraid to throw the garbage away, and it is declining despite all these new shining features. [11:17]
surial before you start down the path of 'declining', as wikipedians would say, [citation needed]. [11:18]
matsurago surial: well, TIOBE index [11:18]
surial Also, if you honestly thinkn that Guido or the python steering committee, if granted the magical powers of going back in time and reconsidering the py2/py3 move would just do it all over agai, I don't know what to say. [11:18]
surial well, it's me. I do know: You're wrong. [11:18]
sonOfRa surial: oh no. Now I'm digging through the jackson nitty gritty type resolving stuff [11:19]
mbooth matsurago: Ah the TIOBE index, that well-known totally accurate and flawless measure of popularity :-D [11:19]
surial TIOBE is extremely tentative. No real blame on them; it's just hard to measure 'programming popularity', but don't say dumb things like 'C++ is declining'. Just say 'Well, C++ is falling down the tiobe rankings'. [11:19]
surial sonOfRa: If you figure out why they fucked up and aren't using STTs, let me know. I do wonder why that API is so bad. [11:19]
matsurago mbooth: There is also IEEE index, with similar trends, with Python becoming #1. [11:20]
surial matsurago: if you want to adjust your statement and say 'python seems to be doing okay', feel free. [11:20]
sonOfRa surial: so many levels of indirection for the resolving :D [11:20]
mbooth 63 [11:20]
surial matsurago: your logical leap that this is because of py3 is really fucking tenuous though. [11:20]
sonOfRa They have their own "JavaType" abstraction [11:21]
sonOfRa Which all the Class<T> functions call into. It seems to create JavaType instances for the well known (primitives, String, JsonNode) types, and for others it then has to search [11:21]
sonOfRa I have yet to find the code that goes from JavaType to an instance of said type [11:21]
matsurago surial: I assume you know latest Python developments? Like 3.6, 3.8. They have added types, and data classes. The language is able to evolve rapidly, further increasing popularity. This is offtopic though ;( [11:21]
surial matsurago: Your argument is analogous to 'hundreds of thousands of germans got healthy food on the table after hitler gained power, so clearly murdering a few million jews is great!' ? you can't just point at 2 events in history and instantly jump to: B came after A, so A must have caused B! [11:22]
surial matsurago: _AND THEY ARE DOING IT_ without breaking the world. [11:22]
surial matsurago: if py2/py3 was so great, there'd have been a py4. [11:22]
matsurago surial: They cannot do it too often. [11:22]
surial they're not going to do it ever again. [11:22]
sonOfRa py2->py3 went *absolutely fucking horrendously* [11:23]
surial at least, nobody on the steering committee as far as I know has ever pbulicly said they liked how it went, and many said they fucking hated it. including guido. [11:23]
sonOfRa There's a reason they had to push out the EOL data *5 years* from the planned python2 EOL [11:23]
sonOfRa And even now, that py2 has been eol for 3 weeks, there's still plenty of stuff that is *maintained*, but doesn't work in py3 [11:23]
sonOfRa But we're veering very far into the offtopic here [11:23]
di0_ [di0_!~di0_@unaffiliated/di0-/x-5053590] has joined ##java [11:24]
surial and, to focus on the java community, _EVERY MEMBER_ of the JCP and oracle team doing major work on the JRE unambiguously HATES the notion. So, for java, it is NOT HAPPENING, and the fact that things like lambdas, pattern matching, reified generics, value types, etc are ALL being added in almost entirely backwards compatible ways should VERY STRONGLY suggest that an attitude of 'fuck it, I want feature X, just break backwards [11:24]
surial compat and release java2.0' is dumb. [11:24]
matsurago Well, Java is feeling very good as for now being the best language for enterprise. So there is no possibility of breaking changes I guess. They probably will have to, if a strong rival emerges. [11:26]
surial As some further proof, I have personally debated Brian Goetz, Alex Buckley, and Joe Darcy on adding a 'source 9;' style keyword in the same vein as 'package' and updating the structure of the JLS to introduce the notion of versions, allowing for entirely removing whole swaths of outdated syntax without actually fully breaking the world in twain (but demanding you refactor your code before you can move on to a newer version). [11:26]
surial Even this was shot down vehemently by all present JCP members, and all 3 oracle employees. [11:26]
surial matsurago: can you fucking stop? [11:26]
surial matsurago: I keep giving you clear, falsifiable proof, such as how lambdas were added backwards compatibly.. [11:26]
matsurago surial: that was a conclusion, actually [11:26]
surial and you keep just ignoring this and spewing forth random, unfounded 'conclusions'. [11:27]
surial if you want to try to convince anybody here, which would be a small step in getting java to consider it, go find me proof that someone involved and capable in the python team actually LIKES how py3 went, or at least would do it again if opportunity arises with some learned lessons and new approaches. [11:28]
matsurago No, I carefully read everything, and it is clear that new features can be added without breaking anything given a good brainstorm. It is just that mistakes you mentioned are not going to be amended if things go as is. [11:28]
Tichodroma [Tichodroma!~lutz@fsf/member/Tichodroma] has joined ##java [11:28]
surial mistakes like? Reification? Being amended, more or less. [11:28]
surial that instanceof doesn't flow type? Amended. [11:28]
NorthwestVegan [NorthwestVegan!~Northwest@gateway/tor-sasl/northwestvegan] has joined ##java [11:29]
matsurago surial: so what about reification, I guess there is a JEP for that? [11:29]
surial java does get rid of truly horrible aged-out stuff, by way of warnings mostly. Hell, we JUST talked about the apache beanspec lib which returns Object: That certainly is no longer how we do things in java land. And nobody writes APIs liek that anymore, and virtually no new projects would put apache-beanspec in the dep list. But apache-beanspec _STILL WORKS FINE_, which is damn impressive. There is no 'java2' and 'java3' where [11:29]
surial beanspec works in one and not the other. [11:29]
matsurago surial: another example of a mistake is concurrency, as like every object can be a lock, and we inherit all these .notifyAll in all classes. [11:30]
sonOfRa surial: looks like they go from their JavaType thingy to @SupressWarnings("unchecked") JsonDeserializer<Object> [11:31]
surial matsurago: It's an intention, mostly. But further along than you might think: The plan is to have value types. value types 'code like a class' and 'perform like an int': You can have: value class Point p {int x, y; } and if you then write Point p = new Point(1, 1); what actually happens is that it has the exact same characteristic as writing 'int x = 1, y = 1;' ? for example, p = null; does not compile and cannot work. Then, [11:31]
surial something like List<Point> p = new ArrayList<Point>(); should not just work, it should perform. So, that backing array of ArrayList being of type Object? That's gotta go. [11:31]
l8j [l8j!~l8j@] has joined ##java [11:31]
surial All of that is happening. At which point, making List<Int> l = new ArrayList<int>() work (and perform!) is trivial, and from there, reification is achieved. I haven't read the latest details on how this is gonna happen, it's obviously quite complicated and involves self-definining box-types, but it's all out there. check valhalla-dev and valhalla-spec-experts. There's.. a LOT to read through. [11:32]
matsurago surial: I guess then Point p2 = p1 would create a copy of a value class object? [11:32]
surial matsurago: the lock thing is being fixed. for example, these valhalla types? They don't have identity. [11:32]
surial matsurago: yes, effectively. just like int x = y; makes a copy. [11:32]
surial sonOfRa: But 'JavaType thingie' suggests STTs. Lemme check their API. [11:33]
surial yup. [11:34]
surial they did it right. [11:34]
surial JavaType is jackson's impl of STT. [11:34]
matsurago Valhalla seems to be an interesting read... [11:35]
matsurago What's STT? [11:35]
surial super type token. This is a different take, but accomplishes the same thing. [11:35]
surial an STT is this: given 'public interface STT<T> {}' in your library, then as a user of your library, I can pass in an object, created as follows: void foo(new STT<List<Integer>>() {}). [11:36]
surial Note the trailing {}? We're actually making a method-local class (an anonymous class) here. The trick? You can get List<Integer> out of that object, _DYNAMICALLY_, at runtime. [11:36]
surial It is a way to convey 'stuff that is legit in generics <>' as a parameter. [11:36]
surial It's got some pitfalls (those anon classes cache the instance, which is mostly irrelevant as the STT object is swiftly collected), and jackson for whatever reason has some other API calls to make the equivalent (such as .constructCollectionType(List.class, String.class) as an alternative to new STT<List<String>>(). [11:37]
matsurago I did not know that given "class A extends B<Integer> {..}" one can actually get this generic type parameter [11:38]
matsurago (from A) [11:38]
paddyez [paddyez!~Patrick-E@wikipedia/paddyez] has joined ##java [11:38]
surial matsurago: but of course. If you couldn't, how would javac be able to generate compiler errors? [11:38]
surial public class B<T> {void foo(T in) {}} <-- given. Then, given: class A extends B<Integer> {} and A a = new A(); [11:39]
surial then if I write"hey I am not an integer, I am a string!");.. javac will complain. [11:39]
surial even if all that javac has for class A is A.class (and not the source). How could it, if that gets erased? This is the easy way to think about erasure: if javac cannot work if the information is erased? Guess what. It aint erased. [11:39]
surial so, field types? Not erased. extends/implements entries? Nope. The T in class Foo<T>? Not erased. [11:40]
surial (As in, you can literally query that Foo has generics, and that its name is T, and that it has no upper or lower bound defined on it. You obviously can't know what T is; any T instance would know, but that's it). [11:40]
surial s/any T instance would know/any invocation context would know, or any usage of Foo as a type would [11:41]
matsurago That makes sense. [11:41]
matsurago I guess A just adds an overridden method with Integer though [11:43]
surial A synthetic one, yes. [11:44]
surial But that wouldn't have been enough. [11:44]
surial at the class level there are 2 methods: foo(Object) and foo(Integer); the foo(Object) one exists because B has it (it's foo(T in), and you can get that it's a T, but in the end signatures need concrete types, and Object is the lower bound), and A overrides it. If it did 't also have it, then it woudln't override. [11:45]
surial It's complicated but it works and you never notice. [11:45]
surial See? python3 fiasco avoided. [11:45]
_Warl0ck [_Warl0ck!] has joined ##java [11:48]
surial matsurago: What I hope you take from this is a better understanding of how languages ought to evolve, and java in particular. Instead of just going: You know what? Fuck it I want reification, if it's backwards incompatible then so be it, time to break a few eggs - instead of that go: Okay, well, let's figure out creative ways to not entirely throw out the old. What can we do? This rarely lets you implement the feature the way [11:48]
surial you initially envisioned it. Odds are good the whole thing ends up even better, but it's rarely like other languages. [11:48]
matsurago surial: OK, thanks for the explanation. I think I call it a day though (almost 2am here). [11:49]
matsurago surial++ [11:49]
matsurago surial has a karma level of 550, matsurago [11:49]
surial For example, java's approach to lambdas, where htey must target-type into a defined functional interface? Completely unique. No other language does it that way. And yet THAT ONE works best with the ecosystem, and it was _clearly_ the right way to do it. and so on. Don't just 'give up' and don't just go: Jesus what the fuck why is java so slow on adopting new features? They're thinking it through, and coming up with better [11:49]
surial solutions. [11:49]
surial sleep well :) [11:49]
matsurago Java lambdas are awesome, by the way :) [11:50]
matsurago comparing to a monstrosities in C++ or Go. [11:50]
sonOfRa C++ lambdas are way more fun than java lambdas! [11:50]
Jantz [Jantz!] has joined ##java [11:53]
Cahaan [Cahaan!~Cahaan@2a02:a03f:5a79:d000:7d03:6a31:a935:ca1c] has joined ##java [12:04]
tang^ [tang^!~tang^@] has joined ##java [12:05]
thecoffemaker [thecoffemaker!~thecoffem@unaffiliated/thecoffemaker] has joined ##java [12:09]
l8j parted the channel: [12:11]
NorthwestVegan [NorthwestVegan!~Northwest@gateway/tor-sasl/northwestvegan] has joined ##java [12:17]
paws_ [paws_!uid89121@gateway/web/] has joined ##java [12:18]
EgonX [EgonX!] has joined ##java [12:21]
feannag [feannag!~feannag@2409:4042:2006:b951:c96:39f:af01:444] has joined ##java [12:22]
NorthwestVegan [NorthwestVegan!~Northwest@gateway/tor-sasl/northwestvegan] has joined ##java [12:29]
EgonX [EgonX!] has joined ##java [12:32]
jackhum [jackhum!~jackhum@] has joined ##java [12:38]
orbyt_ [orbyt_!~orbyt@] has joined ##java [12:41]
bluezone this apache beanutils is making me miss dynamic typing [12:46]
Sheilong [Sheilong!uid293653@gateway/web/] has joined ##java [01:03]
led1 [led1!~Thunderbi@] has joined ##java [01:03]
ngqrl [ngqrl!uid415721@gateway/web/] has joined ##java [01:06]
Barrt [Barrt!~Barrt@unaffiliated/barrt] has joined ##java [01:12]
kfirfer [kfirfer!~vostro@] has joined ##java [01:17]
gareppa [gareppa!~gareppa@unaffiliated/gareppa] has joined ##java [01:27]
ogradyd [ogradyd!] has joined ##java [01:31]
jamiejackson [jamiejackson!c7df1efe@gateway/web/cgi-irc/] has joined ##java [01:31]
EgonX [EgonX!~Egon@2601:2c6:47f:98f4:bd79:f7e6:dc5b:d8c2] has joined ##java [01:40]
deavmi [deavmi!~quassel@] has joined ##java [01:41]
acidjnk_new [acidjnk_new!] has joined ##java [01:43]
Kaedenn parted the channel: [01:46]
Markow [Markow!~ejm@] has joined ##java [01:50]
NorthwestVegan [NorthwestVegan!~Northwest@gateway/tor-sasl/northwestvegan] has joined ##java [01:57]
rippa [rippa!] has joined ##java [02:01]
bn_work [bn_work!uid268505@gateway/web/] has joined ##java [02:05]
Sasazuka [Sasazuka!~Sasazuka@unaffiliated/sasazuka] has joined ##java [02:12]
led1 [led1!~Thunderbi@] has joined ##java [02:14]
CodePoint [CodePoint!~CodePoint@] has joined ##java [02:21]
epic_null [epic_null!] has joined ##java [02:29]
NorthwestVegan [NorthwestVegan!~Northwest@gateway/tor-sasl/northwestvegan] has joined ##java [02:31]
epic_null so I'm having this problem with my java environment. I want to use Junit, but it's not in org.junit. I've tried manually setting my classpath variable, but that makes junit the top level, rather than org being the top level, and the symbols are not resolving. [02:31]
NorthwestVegan [NorthwestVegan!~Northwest@gateway/tor-sasl/northwestvegan] has joined ##java [02:31]
epic_null I am *not* currently using a framework, but am instead gong raw. I'm also using openjdk11 [02:32]
LKoen [LKoen!~LKoen@] has joined ##java [02:32]
epic_null Here are the errors I get. (I've got both junit as top level and org as toplevel in this) [02:38]
fstd_ [fstd_!~fstd@unaffiliated/fisted] has joined ##java [02:39]
sonOfRa epic_null: even if you don't want to use a framework (whyyyyy), at least use a build system (maven or gradle) [02:39]
sonOfRa otherwise, read [02:39]
sonOfRa classpath [02:39]
sonOfRa The classpath tells Java or the compiler which jar files and folders to search for classes and resources. Use the -cp/-classpath run-time options to specify the classpath (does NOT work with -jar!). Also see [cheeser's blog], [], or for more information. [02:39]
Silmarilion [Silmarilion!~Silmarili@] has joined ##java [02:43]
Jigsy` [Jigsy`!~Jigsy@unaffiliated/jigsy] has joined ##java [02:45]
kfirfer [kfirfer!~vostro@] has joined ##java [02:47]
Jantz [Jantz!] has joined ##java [03:03]
Jantz [Jantz!] has joined ##java [03:05]
LKoen [LKoen!~LKoen@] has joined ##java [03:09]
kfirfer [kfirfer!~vostro@] has joined ##java [03:10]
Cyp_ [Cyp_!~Cyp_@2a05:f6c7:2883:0:2f1d:5968:2fed:3169] has joined ##java [03:14]
dob1 [dob1!~dob1@unaffiliated/dob1] has joined ##java [03:15]
bluezone he's writing a calculator, I think his project doesn't need a build system lol [03:16]
jaziz1 [jaziz1!~jaziz@unaffiliated/jaziz] has joined ##java [03:17]
tang^ I use a build system for even the simplest of projects today [03:17]
tang^ keeps me in the know about how build systems work [03:17]
Kiminuo [Kiminuo!~mix@] has joined ##java [03:24]
skoup [skoup!] has joined ##java [03:24]
Stefan26 [Stefan26!] has joined ##java [03:38]
immibis_ [immibis_!~immibis@2a02:8109:b6c0:a29c:b518:3493:9e77:9b27] has joined ##java [03:47]
lonelobo [lonelobo!~lobo@] has joined ##java [03:49]
Teckla Does System.err get automatically flushed after writes to it (e.g., println calls)? [03:51]
ernimril Teckla, typically yes, but I am sure that it is possible to find a combination of OS and program that sets it up to be non-flushed [03:54]
epic_null [epic_null!] has joined ##java [04:00]
cheeser and that's assuming System.err still points to the OS error stream [04:03]
Teckla Thanks ernimril and cheeser [04:06]
Kol [Kol!] has joined ##java [04:10]
royal_screwup21 [royal_screwup21!89de72f1@gateway/web/cgi-irc/] has joined ##java [04:13]
NorthwestVegan [NorthwestVegan!~Northwest@gateway/tor-sasl/northwestvegan] has joined ##java [04:18]
NorthwestVegan [NorthwestVegan!~Northwest@gateway/tor-sasl/northwestvegan] has joined ##java [04:19]
NorthwestVegan [NorthwestVegan!~Northwest@gateway/tor-sasl/northwestvegan] has joined ##java [04:20]
bobek [bobek!~bobek@unaffiliated/bobek] has joined ##java [04:32]
sonOfRa Teckla: un linux (and unix-likes) stderr is generally unbuffered, as opposed to stdout and stdin, which are not. [04:33]
sonOfRa No idea about windows. [04:33]
g00s [g00s!~g00s@unaffiliated/g00s] has joined ##java [04:34]
xbyte1024 [xbyte1024!] has joined ##java [04:34]
teralaser [teralaser!~tera@unaffiliated/teralaser] has joined ##java [04:34]
xxdxxd [xxdxxd!~xxdxxd@] has joined ##java [04:35]
Pinchiukas parted the channel: "WeeChat 1.9.1" [04:38]
royal_screwup21 [royal_screwup21!89de72f1@gateway/web/cgi-irc/] has joined ##java [04:47]
jamiejackson [jamiejackson!c7df1efe@gateway/web/cgi-irc/] has joined ##java [04:48]
SwiftMatt [SwiftMatt!~Objective@2601:282:4300:3e:c1a4:5d0f:73ce:2e1c] has joined ##java [04:49]
CodePoint [CodePoint!~CodePoint@] has joined ##java [04:53]
AcTiVaTe [AcTiVaTe!] has joined ##java [04:54]
MIC132 [MIC132!] has joined ##java [04:56]
bobek [bobek!~bobek@unaffiliated/bobek] has joined ##java [04:58]
sa02irc [sa02irc!] has joined ##java [05:12]
palasso [palasso!~palasso@unaffiliated/palasso] has joined ##java [05:30]
serdar [serdar!~serdar@2a02:908:5c0:540:99f8:4a47:fbee:6514] has joined ##java [05:36]
internecine [internecine!~interneci@unaffiliated/internecine] has joined ##java [05:39]
sa02irc [sa02irc!~mbax@] has joined ##java [05:40]
LunarJetman [LunarJetman!] has joined ##java [05:41]
turona [turona!~quassel@2a01:c22:ac29:a500:283a:430e:e06e:f469] has joined ##java [05:46]
toytoy [toytoy!~toytoy@unaffiliated/t0yt0y] has joined ##java [06:00]
Sasazuka__ [Sasazuka__!~Sasazuka@unaffiliated/sasazuka] has joined ##java [06:05]
conan [conan!] has joined ##java [06:08]
acidjnk_new2 [acidjnk_new2!] has joined ##java [06:09]
CodePoint [CodePoint!~CodePoint@] has joined ##java [06:10]
notadeveloper [notadeveloper!465f39a2@gateway/web/cgi-irc/] has joined ##java [06:18]
zeden [zeden!~user@unaffiliated/zeden] has joined ##java [06:28]
usempire [usempire!] has joined ##java [06:35]
tachoknight [tachoknight!~tachoknig@] has joined ##java [06:44]
frymaster [frymaster!~frymaster@] has joined ##java [07:13]
waz [waz!~waz@pdpc/supporter/active/waz] has joined ##java [07:26]
beaky [beaky!~beaky@2a03:b0c0:0:1010::17cf:7003] has joined ##java [07:32]
dumptruckman [dumptruckman!dumptruckm@2600:3c02::f03c:91ff:fe6e:2cfd] has joined ##java [07:33]
usempire [usempire!] has joined ##java [07:35]
SwiftMatt [SwiftMatt!~Objective@2601:282:4300:3e:c1a4:5d0f:73ce:2e1c] has joined ##java [07:41]
di0_ [di0_!~di0_@unaffiliated/di0-/x-5053590] has joined ##java [07:50]
cfoch [cfoch!uid153227@gateway/web/] has joined ##java [07:56]
AmVarPG [AmVarPG!] has joined ##java [08:02]
conan [conan!] has joined ##java [08:12]
Sandbender [Sandbender!~mike@240d:1a:2ae:1600:f8e7:bbff:fa3f:2cfe] has joined ##java [08:17]
pikapika [pikapika!] has joined ##java [08:18]
shicks2525 [shicks2525!~shicks252@2600:1700:2428:20b0:7562:3db7:c9a:a269] has joined ##java [08:23]
toytoy [toytoy!~toytoy@unaffiliated/t0yt0y] has joined ##java [08:35]
waz [waz!~waz@pdpc/supporter/active/waz] has joined ##java [08:41]
Jigsy [Jigsy!~Jigsy@unaffiliated/jigsy] has joined ##java [08:45]
deavmi [deavmi!~quassel@] has joined ##java [08:45]
p[a]ddy [p[a]ddy!~Patrick-E@wikipedia/paddyez] has joined ##java [08:50]
usempire [usempire!] has joined ##java [09:04]
iam730 [iam730!] has joined ##java [09:09]
di0_ [di0_!~di0_@unaffiliated/di0-/x-5053590] has joined ##java [09:10]
snowmanbamm [snowmanbamm!snowmanbam@gateway/vpn/privateinternetaccess/snowmanbamm] has joined ##java [09:13]
TlrDr [TlrDr!] has joined ##java [09:16]
notadeveloper [notadeveloper!465f39a2@gateway/web/cgi-irc/] has joined ##java [09:24]
Hanii [Hanii!~Hanii@2a00:23c5:c584:a900:2592:8fd2:7ea8:ad9] has joined ##java [09:36]
Goplat [Goplat!~Goplat@reactos/developer/Goplat] has joined ##java [09:37]
deebo [deebo!] has joined ##java [09:59]
orbyt_ [orbyt_!~orbyt@] has joined ##java [10:08]
seanBE [seanBE!~seanBE@unaffiliated/seanbe] has joined ##java [10:09]
mz` [mz`!~mz@gandi/mz] has joined ##java [10:16]
dendazen [dendazen!] has joined ##java [10:16]
usempire parted the channel: [10:27]
surial yay! Chased a developer off of lombok because I denied a feature request to return optionalized getters. [10:33]
cliluw [cliluw!~cliluw@unaffiliated/cliluw] has joined ##java [10:53]
SwiftMatt [SwiftMatt!~Objective@2601:282:4300:3e:c1a4:5d0f:73ce:2e1c] has joined ##java [11:03]
db optionalized getters? like getters that return Optionals instead of the value? [11:04]
rootatarch [rootatarch!~root@unaffiliated/rootatarch] has joined ##java [11:09]
Squarism Anyone had any experiance with ActiveMQ and full queue/disk full? Will that crash the calling thread (client)? [11:10]
cheeser sounds like you have a crashing activemq and you're fishing for root causes [11:11]
Squarism actually it was disk full [11:12]
learningc [learningc!~pi@] has joined ##java [11:12]
cheeser then you already know the answer. why ask? [11:12]
Squarism ...but, it seems the client crashed too, resulting in rolled back transaction on the client side [11:12]
Squarism What surprises me is that client crashed, thats all. We use activemq so that "client" should continue at any problems [11:13]
Squarism (actually both client (producer) and consumer runs in the same jvm. [11:14]
Squarism but with different transaction managers [11:14]
Squarism so thats my question. Is that expected? Or should client remain unaffected if activemq disk space is full [11:16]
Squarism ? [11:16]
alt155 [alt155!] has joined ##java [11:19]
Squarism ... [11:20]
Squarism So in short, should activemq client/producer crash or just accept whatever upon disk full? [11:20]
rootatarch [rootatarch!~root@unaffiliated/rootatarch] has joined ##java [11:24]
di0_ [di0_!~di0_@unaffiliated/di0-/x-5053590] has joined ##java [11:34]
tang^ [tang^!~tang^@2604:3d09:47f:e720:8974:e501:da09:ce37] has joined ##java [11:49]
tassee [tassee!] has joined ##java [11:57]