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

« 2019-03-13


2019-03-15 »

Nick Message Date
ulkesh [ulkesh!] has joined ##java [12:01]
Secret-Fire [Secret-Fire!] has joined ##java [12:02]
maryo [maryo!~Maryo@unaffiliated/maryo] has joined ##java [12:05]
Goplat [Goplat!~Goplat@reactos/developer/Goplat] has joined ##java [12:16]
indistylo [indistylo!~aruns_@2406:7400:58:adba:fcf0:f860:442a:352e] has joined ##java [12:16]
ulkesh [ulkesh!] has joined ##java [12:24]
learningc [learningc!] has joined ##java [12:28]
djhworld [djhworld!~djhworld@] has joined ##java [12:37]
indistylo [indistylo!~aruns_@2406:7400:58:adba:fcf0:f860:442a:352e] has joined ##java [12:40]
CombatVet [CombatVet!~CombatVet@gateway/tor-sasl/combatvet] has joined ##java [12:40]
drdanick_ [drdanick_!] has joined ##java [12:41]
Richard[m]1 [Richard[m]1!rszibelema@gateway/shell/] has joined ##java [12:42]
ulkesh [ulkesh!] has joined ##java [12:49]
ricekrispie2 [ricekrispie2!] has joined ##java [12:55]
raztoki [raztoki!~a0sle@unaffiliated/a0sle] has joined ##java [01:03]
wbrawner [wbrawner!~wbrawner@] has joined ##java [01:05]
immibis [immibis!] has joined ##java [01:05]
ogradyd [ogradyd!~Thunderbi@2a02:8070:88bf:9df0::9de] has joined ##java [01:21]
happymeal` [happymeal`!] has joined ##java [01:26]
Diablo-D3 [Diablo-D3!] has joined ##java [01:27]
User_ [User_!] has joined ##java [01:27]
alphazb [alphazb!~alphazb@2400:a980:fe:4a8:91e1:5384:63c7:ee25] has joined ##java [01:41]
g00s [g00s!~g00s@unaffiliated/g00s] has joined ##java [01:43]
sauvin [sauvin!sauvin@about/linux/staff/sauvin] has joined ##java [01:46]
alphazb__ [alphazb__!~alphazb@2400:a980:fe:4a8:40ec:9b39:fef0:4c8b] has joined ##java [01:47]
Fossfile [Fossfile!] has joined ##java [01:53]
wbrawner [wbrawner!~wbrawner@] has joined ##java [01:54]
Android [Android!] has joined ##java [02:03]
masber [masber!95ab1647@gateway/web/freenode/ip.] has joined ##java [02:04]
bolt [bolt!~r00t@unaffiliated/bolt] has joined ##java [02:05]
masber good afternoon, I would like to start using a microprofile implementation, which one should I use? [02:05]
masber any suggestion? [02:05]
Xgc [Xgc!~Jon@] has joined ##java [02:06]
exonity01 [exonity01!] has joined ##java [02:07]
alphazb [alphazb!~alphazb@unaffiliated/alphazb] has joined ##java [02:15]
alphazb__ [alphazb__!~alphazb@unaffiliated/alphazb] has joined ##java [02:15]
freakyy [freakyy!] has joined ##java [02:26]
dtrott [dtrott!] has joined ##java [02:27]
learningc [learningc!] has joined ##java [02:28]
wbrawner [wbrawner!~wbrawner@] has joined ##java [02:29]
indistylo [indistylo!~aruns_@2406:7400:58:adba:603a:5cd7:57a5:4d88] has joined ##java [02:30]
sbeex [sbeex!~sbeex@] has joined ##java [02:35]
kmaee [kmaee!] has joined ##java [02:36]
palasso [palasso!~palasso@unaffiliated/palasso] has joined ##java [02:39]
SerialSmile [SerialSmile!~SerialSmi@] has joined ##java [02:41]
indistylo [indistylo!~aruns_@2406:7400:58:adba:603a:5cd7:57a5:4d88] has joined ##java [02:43]
OnceMe [OnceMe!~OnceMe@unaffiliated/onceme] has joined ##java [02:44]
dob1 [dob1!~dob1@unaffiliated/dob1] has joined ##java [02:51]
dob1 hi, what is the proper way to check if a group in a regexp exists ? like (\d)?-(\d)? Matcher = ...; String group1 =; and then check if this is not null? [02:53]
dob1 not exists, If the groups has captured something [02:53]
odinsbane Doesn't the regex have to find something, then the group *will* exist? [03:11]
dtrott [03:13]
dtrott dtrott, what does that even *mean*? [03:13]
odinsbane javadoc [03:13]
odinsbane I have no documentation for [03:13]
odinsbane javadoc*) [03:13]
odinsbane I have no documentation for*) [03:13]
dob1 odinsbane, I use if m.matches() then String s = and I check if the string is not null [03:14]
odinsbane javadoc*) [03:15]
odinsbane odinsbane, too many results found. Please see your private messages for results [03:15]
row3233 [row3233!row3233@gateway/vpn/privateinternetaccess/row3233] has joined ##java [03:15]
odinsbane dob1: yes, you need to do that. If there is no match it can be null. There could also be an empty match. [03:16]
dob1 ok [03:16]
dtrott I see that the new javabot perplexity module is really on form tonight ? [03:18]
[twisti] javadoc [03:22]
[twisti] odinsbane, [twisti]: [JDK: java.util.regex.Matcher#group(int)]; [JDK: java.util.regex.MatchResult#group(int)]; [JDK: java.util.regex.MatchResult#group(int)] [03:22]
g00s [g00s!~g00s@unaffiliated/g00s] has joined ##java [03:22]
dtrott [twisti]: Did you actually try any of the links ? [03:23]
[twisti] i did not [03:24]
[twisti] now im glad that i didnt gloat about getting it right in one try [03:25]
[twisti] \_(?)_/ [03:25]
odinsbane Wow thanks, now I got the reult again. [03:25]
dtrott I pm?ed javabot before throwing the shade ? [03:25]
[twisti] yw [03:25]
[twisti] me too lol [03:25]
User_ [User_!] has joined ##java [03:27]
coalado [coalado!~Thomas@unaffiliated/coalado] has joined ##java [03:30]
Fossfile I'm working on a remote mouse client/server. moving mouse pointer on server's monitor with java.awt.Robot but the movement appears jerky. I'm certain the cause of this is related to the robot class or my use of it because I have verified that the communication between client and server is working without a problem and on server size I do not skip any pixels from point A to B. [03:33]
Fossfile also because adding a Thread.sleep when moving the mouse after each pixel smooths the movement, but it creates a delay, even at the smallest sleep possible [03:34]
Fossfile any way to smooth the movement without causing a delay? [03:35]
timkofu [timkofu!~timkofu@] has joined ##java [03:35]
dtrott I would start by comparing your app to Synergy to see if it looks the same - obviously if synergy isn?t smooth you won?t be able to improve it. [03:36]
Fossfile dtrott: this is for an android client to control the mouse on a PC server over local wifi. I have installed two such existing solutions (WiFi Mouse and RemoteMouse) and they both acheive smooth movement [03:39]
dtrott See channel description [03:39]
odinsbane Fossfile: can you see the values your recieving to 'scroll to'? [03:39]
mohsen_1 [mohsen_1!uid289573@gateway/web/] has joined ##java [03:39]
Tichodroma [Tichodroma!~lutz@fsf/member/Tichodroma] has joined ##java [03:40]
Fossfile odinsbane: yes, values are received perfectly. also, I'm calculating every single pixel between point A and B so I'm certain there are no redundant pixels or skipped pixels [03:40]
odinsbane Can you make a test case that is just the server/robot/java code? [03:41]
Fossfile odinsbane: yea I should.. [03:42]
learningc [learningc!] has joined ##java [03:49]
progart [progart!] has joined ##java [03:55]
kamee parted the channel: [03:56]
Fossfile just by thinking of a test case it just occurred to me that passing the information for the new coordinates isn't enough because robot is moving the pointer instantly.. should've have also pass the time information between each pixel [03:57]
sbeex [sbeex!~sbeex@] has joined ##java [04:07]
nunllk [nunllk!edium@gateway/shell/suchznc/x-zpmqmljxcjnnpele] has joined ##java [04:11]
skuuter [skuuter!] has joined ##java [04:17]
Chuguniy [Chuguniy!~Chuguniy@] has joined ##java [04:35]
sliekas99 [sliekas99!~mantas@] has joined ##java [04:41]
[twisti] [[twisti]!] has joined ##java [04:41]
learningc [learningc!] has joined ##java [04:45]
User_ [User_!] has joined ##java [04:49]
User_ [User_!] has joined ##java [04:51]
zulutango [zulutango!] has joined ##java [04:52]
dtrott parted the channel: [04:54]
[twisti] [[twisti]!] has joined ##java [04:54]
odinsbane Fossfile: you might want to log a series of events with time stamps that they are recieved at, then try and make some smooth mouse robot action. [04:55]
forgottenone [forgottenone!~forgotten@] has joined ##java [04:56]
magz_ [magz_!] has joined ##java [05:01]
wbrawner [wbrawner!~wbrawner@] has joined ##java [05:03]
AxiomaticEspress [AxiomaticEspress!] has joined ##java [05:05]
Gazooo [Gazooo!~Gazooo@] has joined ##java [05:07]
Zee- [Zee-!] has joined ##java [05:09]
votale [votale!~votale@] has joined ##java [05:11]
votale [votale!~votale@] has joined ##java [05:15]
ravenousmoose [ravenousmoose!~ravenousm@] has joined ##java [05:16]
mdrabe [mdrabe!~Matt@] has joined ##java [05:23]
acidjnk [acidjnk!] has joined ##java [05:25]
nbro [nbro!~nbro@2a02:aa13:3100:6000:20ba:4429:4d67:18bd] has joined ##java [05:40]
Nicmavr [Nicmavr!~Nicmavr@unaffiliated/nicmavr] has joined ##java [05:44]
somazero [somazero!~somazero@2600:8805:100:1a:6a:af7a:a492:3607] has joined ##java [05:46]
dosdebug [dosdebug!~dosdebug@unaffiliated/dosdebug] has joined ##java [05:51]
Zee- [Zee-!] has joined ##java [05:53]
Jantz [Jantz!~IceChat9@2407:7000:8d04:100:883e:f865:4e9:e808] has joined ##java [05:58]
bruhbruh [bruhbruh!] has joined ##java [06:03]
gareppa [gareppa!~gareppa@unaffiliated/gareppa] has joined ##java [06:05]
bendem modules [06:05]
bendem Excellent introduction to java modules @ [06:05]
bendem Any good written information about how to build a modular application and releasing it? (Looks like fat jars aren't quite supported, but I can't really tell because the information I find is mostly outdated and workarounds) [06:07]
odinsbane bendem: What do you want to create? A module, or use something like jlink to bundle the application? [06:09]
Addax bendem: Not that I know of - I'm not even sure what the ideal reference would include :( [06:09]
bendem I want a jar that I can run first [06:13]
bendem it feels like I'm back to learning manifests [06:14]
odinsbane So you want a jar sans jvm? [06:15]
bendem well, for now just a jar, then when I can run with just that, I'll look into jlink'ing it [06:16]
odinsbane [06:16]
odinsbane odinsbane's title: "GitHub - openjfx/samples: JavaFX 11 samples to run with different options and build tools" [06:16]
odinsbane It focuses on javafx, but the jlink examples shows how to create an application. [06:17]
bendem yeah, but it shows with only a single dependency and that dependency needs to be available locally, I want to embed maven dependencies, not bundle them manually [06:18]
togo [togo!~togo@2a01:5c0:e08b:76e1:45:c1e6:1bae:629f] has joined ##java [06:18]
noodlepie [noodlepie!] has joined ##java [06:18]
conan [conan!] has joined ##java [06:20]
odinsbane The maven examples seem to work like a normal maven project. [06:20]
bendem but you can't run it without maven [06:20]
bendem that's the part I'm stuck at [06:20]
bendem I want maven to create a jar I can run. I'm ok with specifying the dependencies at first, then I'll look into bundling them (with maven, not by hand), then I'll look into bundling the jre (with maven, not by hand) [06:21]
odinsbane The maven project looks normal, as in you could just use mvn package [06:22]
bendem this is where I'm at [06:22]
bendem bendem's title: "bleh by bendem" [06:22]
odinsbane -p? [06:23]
bendem module-path [06:23]
odinsbane It looks like a class path. [06:24]
bendem why wouldn't it? [06:25]
odinsbane bendem: did you create a [06:26]
bendem added it to the paste [06:27]
bendem ok, I'm now getting an actual error [06:28]
bendem tried "java -p ../target/libs/:../target/log-timing-parser-1.0.0.jar --validate-modules be.yelido.logtimingparser.Main" got java.lang.module.ResolutionException: Module lombok does not read a module that exports org.mapstruct.ap.spi [06:28]
bendem that makes sense I guess, but I thought it was fixed (at least according to lombok issues) [06:28]
bruhbruh_ [bruhbruh_!] has joined ##java [06:29]
odinsbane How did you do the packaging? [06:29]
bendem mvn package [06:29]
henbruas [henbruas!~henbruas@unaffiliated/henbruas] has joined ##java [06:30]
bendem updated the bleh file with the current output I'm getting [06:31]
bendem the maven warning worries me, but I don't think it's related [06:31]
surial bendem: you're on latest? Weird. [06:32]
odinsbane I'm suspicious of the log-time-parser-1.0.0.jar, since in the examles I'm looking at a .jar is never specified in a module-path. [06:33]
bendem well, if I don't provide it, it's not going to find my main-class [06:33]
bendem or any of my own code [06:33]
odinsbane bendem: did you try, java -p ... -cp ../target/log-timeing-parser-1.0.0.jar ... ? [06:33]
bendem specifying -cp makes everything module related back off [06:34]
bendem so yeah, it's going to work, but that's not the goal [06:34]
Foxfir3 [Foxfir3!] has joined ##java [06:34]
bendem ok, new invocation that looks like it's doing the right thing: ? run git:(master) ? java -p ../target/libs/ ../target/log-timing-parser-1.0.0.jar [06:34]
bendem Error occurred during initialization of boot layer [06:34]
bendem java.lang.module.ResolutionException: Module lombok does not read a module that exports org.mapstruct.ap.spi [06:34]
bendem I think the invocation is correct, now I need to fix lombok [06:35]
odinsbane bendem: So when you do the -cp you'd also need to use the --add-modules since it would back off. Are you sure maven built your project as module? [06:36]
surial bendem: in lombok's module-info, there is: requires static org.mapstruct.processor; [06:36]
surial bendem: as well as provides org.mapstruct.ap.spi.AstModifyingAnnotationProcessor with lombok.launch.AnnotationProcessorHider.AstModificationNotifier; [06:36]
waz [waz!~waz@pdpc/supporter/active/waz] has joined ##java [06:36]
surial when we test our shit this just works, even if mapstruct isn't anywhere on the classpath. [06:36]
octo8 [octo8!~deya@unaffiliated/octo8] has joined ##java [06:37]
octo8 Hello, some developer (who recently became a manager) was assigned a simple application project, an app to reserve houses and such, he said "good, we will start with writing a catastrophic escape plan"... I laughed up really hard, do you think this is funny? i work with them as a freelancer though... [06:37]
bendem odinsbane, I believe so [06:37]
bendem bendem's title: "pastefile1 by bendem" [06:37]
bendem jdeps is happy about my jar [06:37]
surial but apparently in your config there's something wrong. Believe you me this mapstruct horseshit has cost us many sleepless nights. the way jigsaw was designed wasn't helping. [06:37]
bendem yeah, I don't think any of stuff I use requires mapstruct [06:37]
bendem yeah, dependency:tree doesn't show it [06:38]
surial bendem: one problem is, the issue(s) we have on this have lots of 'yeah I have the same issue, <completely different issue clearly stemming from an error in their own project config here>'... [06:40]
surial But the general trend is: Hey, it works now. [06:40]
surial So.. are you really REALLY sure you're on the latest lombok? really really? [06:40]
bendem surial, well, see the pom. I'm not specifying anything else than 1.18.6 [06:41]
surial separate from that, we get into an interesting jigsaw conundrum. [06:41]
surial Given: A module that 'requires static X;' and has 'provides <thingie from X>'... [06:41]
surial how does jigsaw deal with the situation when X isn't there? The 'static' bit means: Don't worry your pretty little face, it'll be taken care of at runtime... [06:41]
surial but the 'provides' is something that the compiler could choose to check, which would require the presence of X. [06:41]
surial I also see a lot of traffic on 'upgrade your maven'; it is certainly possible that the module resolution is done as a separate step by maven, and they're using some old-timey buggy javac code for it, fixable by upgrading your maven. [06:42]
bendem why does lombok care about mapstruct? Are they both overriding internals? [06:42]
surial ordering. [06:42]
bendem mvn -version [06:43]
surial mapstruct needs to run after lombok. There is absolutely no way to guarantee this. [06:43]
bendem Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-24T20:41:47+02:00) [06:43]
indistylo [indistylo!~aruns_@2406:7400:58:adba:603a:5cd7:57a5:4d88] has joined ##java [06:43]
surial So, instead, mapstruct will check if any other AP in the queue says 'nono dont worry I got this!', and if so, will just do nothing, and trust the other AP who says 'I gotchu bae' to force another round so that mapstruct won't silently end up doing nothing. And to make that glue work, they came up with this module solution. [06:43]
surial or rather, with _A_ solution, and now with modules, trying to make that solution work when everything is jigsawed up requires this funky business. [06:44]
Opus [Opus!~opus@] has joined ##java [06:44]
surial bendem: I wonder what happens if you just add a dep for mapstruct. even if you don't use it. [06:44]
surial org.mapstruct::mapstruct::1.3.0.Final [06:44]
surial obviously it'd be rather buggy if you can't use lombok in jigsaw-mode unless you also use mapstruct, but it'd give us something to go on. [06:45]
skraito [skraito!~skraito@unaffiliated/skraito] has joined ##java [06:45]
bendem surial, adding the dep doesn't change anything, nor the processor [06:47]
surial that's.. bizarre. [06:48]
bendem and if I don't add lombok to the annotationProcessorPaths, it doesn't run at all [06:50]
surial that's just how jigsaw works. [06:50]
bendem weird thing is, jdeps doesn't show lombok [06:50]
odinsbane bendem: Is you module added when you're executing the jar like that? [06:51]
bendem like what? [06:51]
exonity01 [exonity01!] has joined ##java [06:51]
odinsbane By just appending it to the end of the cmd. [06:51]
odinsbane java -p mods/folder some.jar [06:52]
bendem surial, new error if I had the processor to the module path [06:53]
bendem Caused by: java.lang.ClassNotFoundException: ///target/log-timing-parser-1/0/0/jar [06:53]
bendem which I guess means the command I use is wrong (cc odinsbane) [06:54]
surial lombok does nothing whatsoever with log-timing-parser so that's not a lombok related issue. [06:54]
bendem yeah, I think adding the processor to the module path fixes it [06:54]
bendem that's terrible, but it works [06:54]
bendem now I'm back to general modules issues [06:54]
bendem odinsbane, [06:55]
bendem bendem's title: "pastefile1 by bendem" [06:55]
surial The bug you're talking about is 1806, the fix we introduced is voodoo (as in, I don't even know why that fixed it, and therefore it is possible it didn't, or only in certain scenarios and yours isn't one of them). At any rate, we have been asked yesterday to fill in for a cancelled talk at javaland, so all hands on deck to make a nice presentation, we can't pick this up right now. Also, it sonds like the only way out is to [06:55]
surial either [A] replace all the hard work we put in to make mapstruct+lombok work, coordinate with them and completely rework how we do it, or [B] do a deep dive on how the FUCK jigsaw works, which is quite a pit of magic and undocumented weird shit. [06:55]
surial either way, think 'manmonth'. [06:56]
bendem surial, yeah, that's where I found the answer [06:56]
bendem yeah, thanks a bunch for the help surial, sorry you're the one having to deal with all the jigsaw bullshit [06:57]
surial ( [06:57]
bendem of course if I put the target folder in the module path is works, but then it finds two versions of my main class. There is no way to provide a single jar to the module path [06:58]
octo8 parted the channel: [06:59]
bendem ok, now java is just fucking with me... [06:59]
bendem bendem's title: "pastefile1 by bendem" [06:59]
bendem giving it the jar, it doesn't find the class, giving it the folder, it finds it in the jar and in the compiled classes [07:00]
bendem oh no, it finds the module twice, but not the class in it [07:01]
wbrawner [wbrawner!~wbrawner@] has joined ##java [07:02]
bankai_ [bankai_!~bankai@unaffiliated/bankai/x-6544441] has joined ##java [07:04]
Anticom [Anticom!] has joined ##java [07:07]
zh2683 [zh2683!~zh2683@] has joined ##java [07:08]
bolt_ [bolt_!~r00t@unaffiliated/bolt] has joined ##java [07:09]
Android what books are suggested for java and JVM for 2019/2018 [07:09]
bendem look at that! java -p ../target/libs/:. --add-modules be.yelido.logtimingparser be.yelido.logtimingparser.Main [07:10]
bendem apparently that maven warning tells me I need to specify the module name of my application somewhere in my jar manifest [07:10]
bendem I'll go eat and then I'll find out how to do that since maven can't do it by default [07:10]
Noventicx [Noventicx!] has joined ##java [07:12]
progart [progart!~kamee@] has joined ##java [07:12]
kamee parted the channel: [07:14]
exonity01 Android: [07:14]
exonity01 exonity01's title: "Java Books Freenode ##java" [07:14]
Improvotter [Improvotter!] has joined ##java [07:20]
DrowningElysium [DrowningElysium!uid190788@gateway/web/] has joined ##java [07:20]
Jantz [Jantz!~IceChat9@2407:7000:8d04:100:44d6:1ea:a5e7:7154] has joined ##java [07:23]
bolovanos [bolovanos!] has joined ##java [07:23]
waz [waz!~waz@pdpc/supporter/active/waz] has joined ##java [07:33]
Aison [Aison!~Foobar@2a02:168:200f:100::1:1] has joined ##java [07:38]
Aison i'm trying to modularize my project. How do I handle these kind of errors? how can I select the source for a package? [07:39]
Aison The package org.w3c.dom is accessible from more than one module: java.xml, jython,, xml.apis [07:39]
Maldivia well, java.xml is part of the JDK [07:41]
Aison and how do I handle this error? [07:41]
Aison can I somehow say inside that I would like the package org.w3c.dom from java.xml module? [07:42]
Maldivia requires java.xml; [07:49]
Secret-Fire [Secret-Fire!~Secret-Fi@2601:1c1:4201:458c:bc02:9ebc:8b14:1568] has joined ##java [07:49]
Aison that's already present [07:49]
Maldivia having the same package in multiple modules doesn't work [07:49]
Aison the problem is, that org.w3c.dom is also provided by and xml.apis [07:50]
Maldivia so if you have that, things wont work, and you need to make sure that the versions of your libraries are versions that are compatible with this [07:50]
Ard1t [Ard1t!~ard1t@unaffiliated/ard1t] has joined ##java [07:54]
t2mkn [t2mkn!~t2mkn@] has joined ##java [07:58]
ericek111 [ericek111!] has joined ##java [07:58]
indistylo [indistylo!~aruns_@2406:7400:58:adba:603a:5cd7:57a5:4d88] has joined ##java [08:05]
Tobbi [Tobbi!~Tobbi@supertux/tobbi] has joined ##java [08:08]
stryek [stryek!uid332574@gateway/web/] has joined ##java [08:10]
kevin-oculus [kevin-oculus!] has joined ##java [08:10]
whaley [whaley!] has joined ##java [08:12]
noodlepie [noodlepie!] has joined ##java [08:13]
gbobby [gbobby!~raltnoede@LINBIT/gbobby] has joined ##java [08:13]
zeden [zeden!~user@unaffiliated/zeden] has joined ##java [08:14]
zeden [zeden!~user@unaffiliated/zeden] has joined ##java [08:22]
tiogrand_ [tiogrand_!~tiogrand@] has joined ##java [08:23]
sir_galahad_ad [sir_galahad_ad!] has joined ##java [08:23]
themsay [themsay!~themsay@] has joined ##java [08:26]
bendem that's pretty aggressive :P [08:27]
goldstar [goldstar!~adm@unaffiliated/goldstar] has joined ##java [08:27]
whaley [whaley!~whaley@] has joined ##java [08:29]
bike-bill [bike-bill!581268d1@gateway/web/cgi-irc/] has joined ##java [08:40]
erat [erat!] has joined ##java [08:45]
ulkesh [ulkesh!~ulkesh@] has joined ##java [08:45]
bendem surial, odinsbane, if you are interested, the correct way to run a modular jar is java -p ../target/libs/:../target/log-timing-parser-1.0.0.jar --module be.yelido.logtimingparser/be.yelido.logtimingparser.Main [08:46]
bendem -p instead of -cp, and providing the entrypoint using --module module-name/main-class instead of passing the main-class as an unamed parameter [08:46]
odinsbane Cool, where did you get that information? [08:49]
indistylo [indistylo!~aruns_@2406:7400:58:adba:603a:5cd7:57a5:4d88] has joined ##java [08:50]
bendem the most useful source of information I followed is [08:51]
bendem it's very complete [08:51]
Addax bendem ++ [08:51]
Addax bendem has a karma level of 48, Addax [08:51]
Addax you should write something for the channel blog on this [08:51]
bendem Addax, I'm actually doing it right now. I'm giving a presentation about java 11 modules and I'll be sure to link it here once I'm done [08:52]
Addax very cool [08:53]
bendem that tutorial could replace the module factoid I think, it's very complete, I'm kind of disapointed I didn't find it sooner [08:53]
bendem modules [08:53]
bendem Excellent introduction to java modules @ [08:53]
Addax pretty much anything could replace THAT factoid :) [08:54]
Addax info modules [08:54]
Addax modules was added by: dmlloyd on 10 Nov 2017 at 07:41 and has a literal value of: <reply>Excellent introduction to java modules @ [08:54]
plarsen [plarsen!~plarsen@redhat/jboss/pdpc.professional.plarsen] has joined ##java [08:55]
bendem no modules is <reply> provides a good introduction to build and run a modular application. A good introduction is available on youtube @ [08:56]
bendem OK, bendem. [08:56]
Addax modules [08:56]
Addax provides a good introduction to build and run a modular application. A good introduction is available on youtube @ [08:56]
Addax beauty! [08:56]
erat Does anyone know of a reporting framework that handles huge XLSX output well without OOM errors? Apache POI and JExcel (both used by JasperReports and DynamicReports, I believe) have issues, including JExcel which at one point had a temp-file option for smaller memory footprints. Pointers to other channels are cool as well. [08:57]
bendem once you get it working, you realise it's not hard, just completely undocumented [08:57]
bendem erat, I generate very large reports using jasper, are you actually using it correctly (streaming mode and not generating in memory then dumping to disk)? [08:58]
bendem though I have to say I generated pdfs, not excel sheets, I don't know if you can stream to an excel file [08:59]
erat We're generating in memory and then dumping to disk. I had no idea XLSX could be handled in streaming mode. Thanks, that actually gives me something to look into. I'd like to stick with what we use (DynamicReports, although we'll probably switch because DR looks DOA) so that information helps. [08:59]
bendem yeah, somehow I doubt excel doesn't support streaming, but I don't know if it's implemented in poi [09:00]
bendem otherwise, how would excel itself handle very large files? [09:00]
pd09041999 [pd09041999!~pd0904199@2405:205:8d:c9bb:a902:de17:f46c:32b1] has joined ##java [09:00]
erat Even streaming PDFs would help. I'm not sure how that works, though, because I believe page counts are added at the end of the PDF generation, or at least that's how it looks from my brief research. [09:00]
surial erat: Apache POI has a streaming model available, which should be able to deal with XLSX files of any size, although the model is extremely low-level. [09:00]
surial erat: oh, wait, you're trying to tell JasperReports to _OUTPUT_ to XLSX and that's giving you OOMs. Hmm, no experience there; bendem seems to suggest you can get Jasper to emit streaming-style. [09:01]
surial bendem: streaming XLS for reading is definitely implemented by POI. Can't remember if they support read-streaming XLSX, write-streaming XLS, or write-streaming XLSX. [09:02]
erat Yep, we're pulling data from databases and generating XLSX, CSV/TXT, and PDF. Of the three, XLSX is most reliable when it comes to consuming heap. [09:02]
surial 'reliably consumes all of it and then some?' :) [09:02]
Tobbi [Tobbi!~Tobbi@supertux/tobbi] has joined ##java [09:03]
erat It's greedy as hell. :) [09:03]
ricekrispie [ricekrispie!] has joined ##java [09:03]
bendem if you provide the datasource to jasper correctly, jasper will read it lazyly when generating the report, if the report is generated on an outputstream to a file, I'm pretty sure it works correctly [09:03]
bendem at least for pdfs, as I said, no experience with cls [09:04]
bendem with xls* [09:04]
bendem if you can't get it to work, I can dig up the project to check, but I'm busy hitting my head against modules right now :P [09:04]
erat [erat!] has joined ##java [09:06]
bruhbruh [bruhbruh!] has joined ##java [09:07]
erat Ooookay, got bumped from the channel. Anyway, gotta get ready for work, so thanks everyone for the pointers (streaming mode, datasource setup, etc). It'll give me stuff to research when I get to work. [09:07]
nolfie [nolfie!] has joined ##java [09:07]
erat parted the channel: [09:08]
bendem aaaah, now I can't jlink because I need the processor in the module path to boot but it's an automatic module so it can't be include in a jlink image [09:08]
bendem I think the solution is to not use lombok, it's just not worth it with java 11 [09:08]
surial If you go jigsaw, go jigsaw. Or don't. [09:09]
surial Trying to half-ass it with half of the show is automatic modules and the other half is not.. is very very difficult. Which does mean you're dependent on ALLLLLL your deps having a jdk11 specific, modularized release. [09:09]
bendem right, the thing is, the current state of lombok is not compatible with jigsaw, so I'm going there, but without lombok [09:10]
surial bendem: I just talked to Roel, and we think the enduring solution with our mapstruct troubles is to remove all mention of mapstruct interop from lombok's module defs, and then to create a second tiny dependency/module whose only job is to bridge lombok and mapstruct together. It would have direct and required deps on both the lombok and the mapstruct module, andwould ensure the 2 play well. We can at best attempt to detect that [09:10]
surial both are running without the bridger module and emit an error that you should add the bridger module. [09:10]
surial bendem: the current state if lombok IS compatible with jigsaw. [09:11]
surial we have plenty of users reporting no issues, and our tests work fine too. [09:11]
bendem surial, well, I can't run an application with lombok without the mapstruct processor in the module path and jlink is pretty clear that the mapstruct processor cannot be added to a jlink image since it uses automatic modules. [09:12]
surial presumably maven's compiler is having different opinions on how to act when a module says it is a provider for a non-existent interface. javac doesn't care (which seems like the sensible approach to me), evidently maven requires the whole chain to be present. Or not; weird shit was happening when you were trying, including maven lying to you, indicating that either somebody somewhere left a bug in there or your config wasn't [09:12]
surial what you thought it was. (the lie being that lombok did not read a module exporting a given package, but it does). [09:12]
bendem I'm not assigning blame, I'm just stating what I see from trying a lot of different things [09:13]
surial We have a plan to work around the bullshit we didn't cause. [09:13]
surial For fuck's sake that's gotta be enough for now. [09:13]
surial please don't go around advising that you eliminate lombok from your projects because we can't fix this within 24 hours. [09:14]
bendem surial, sure, I'm not mad or anything, a plan is great, but I'm living in the present, not the future, I can't compile with a plan [09:14]
cheeser and you'll do it for free, motherfuckah! [09:14]
bendem and no, I'm not planning on saying lombok doesn't work, I'm planning on saying that lombok is working hard to be compatible with modules, it's almost there, but there are still some cases where it doesn't [09:15]
bendem to be fair, logback doesn't work either [09:16]
bendem so there is that [09:16]
t2mkn [t2mkn!~t2mkn@] has joined ##java [09:16]
plarsen [plarsen!~plarsen@redhat/jboss/pdpc.professional.plarsen] has joined ##java [09:16]
alphazb [alphazb!~alphazb@unaffiliated/alphazb] has joined ##java [09:18]
dmlloyd this is your periodic reminder that Java modules suuuuck [09:19]
bendem great, latest logback depends on javax.mail which is not modular yet [09:20]
dmlloyd maybe it should be optional *oh wait* [09:22]
tiogrand__ [tiogrand__!~tiogrand@] has joined ##java [09:23]
bendem good ol' exclusion it is [09:25]
cheeser hugs slf4j and log4j2 [09:27]
kembrek [kembrek!~kembrek@] has joined ##java [09:28]
orbyt_ [orbyt_!~orbyt@] has joined ##java [09:29]
surial bendem: I think the better advice is: jigsaw is still not ready, or at least, jigsaw being a good idea is dependent on the community having mostly entirely transitioned over to be compatible with it, and it just is not. jigsaw in a world where many crucial deps aren't specifically upgraded with jigsaw abilities IS NOT READY... [09:29]
surial so check your deps, and if there's even one in there that doesn't explicitly advertise 'yeah sure we got yer modules right here', abort, abort. [09:29]
bendem well, my presentation is on modules mostly so [09:29]
surial With all due feathers stuffed up your butt for getting a headstart on things and trying to modularize your builds ? we need more folks putting in that effort I guess, given that I doubt jigsaw is ever going away. [09:30]
RazielZ [RazielZ!~Raziel@unaffiliated/raziel] has joined ##java [09:30]
bendem the conclusion will be that [09:30]
surial awesome. [09:30]
cheeser i should write a maven plugin that validates your deps so that they're all jigsaw or all not. [09:30]
surial that sounds like a nice idea too. Presumably as simple as: "is there a module-info.class in there or not?" [09:30]
nolfie [nolfie!] has joined ##java [09:32]
bendem it's crazy because I see people having a hard time setting this up in maven while maven has all the information needed to do the right thing (tm). If the user has a module-info, compile a multi-release jar that works out of the box with both < 9 and >= 9 [09:32]
bendem the default could be that it just works, but no [09:32]
bendem well, I got everything working with moduels, it's just sad that I can't demo jlink because of a single dependency (jcommander) [09:34]
bendem I'm not willing to rewrite argument parsing really [09:34]
ztychr [ztychr!~ztychr@unaffiliated/ztychr] has joined ##java [09:36]
Addax bendem: file a PR for jcommander! [09:37]
cheeser commons-cli! [09:38]
bendem that would be the reasonable thing to do [09:38]
Addax heh [09:38]
ztychr [ztychr!~ztychr@unaffiliated/ztychr] has joined ##java [09:39]
surial there's picocli. [09:39]
bendem same problem with picocli [09:40]
shicks255_ [shicks255_!] has joined ##java [09:41]
pd09041999 [pd09041999!~pd0904199@2405:205:8d:c9bb:a902:de17:f46c:32b1] has joined ##java [09:42]
bendem gotta love headaches because the java development team only cares about the language and not the whole ecosystem. [09:42]
sbalmos ... like most mainstream languages ... [09:43]
tomscherl [tomscherl!] has joined ##java [09:43]
bendem I have seen languages where the compiler upgrades your code if it detects an old feature being used [09:43]
odinsbane It seems like, especially for pure java project, that making a module wouldn't be too difficult. [09:43]
bendem it's not making a module that's difficult, it's working with the ecosystem [09:44]
odinsbane something like the shade plugin. [09:44]
vdamewood [vdamewood!~vdamewood@unaffiliated/vdamewood] has joined ##java [09:44]
rockyraccoonn [rockyraccoonn!] has joined ##java [09:44]
odinsbane jcommand has a [09:45]
bendem true that, I wonder why it isn't being picked up [09:46]
surial bendem: whilst I am a big fan of both [A] having 'source 11;' or whatnot at the top of your java files and [B] including with the JDK a tool which, partly using those source statements, goes through and suggests code transitions, I think for jigsaw, that's so complicated such a tool couldn't exist. [09:46]
sbalmos bendem: There's only one environment I saw that done, and that was OS/400 on its own bytecode. Think through the implications of that, behavior being changed transparently on the developer, or even the user, by the compiler. [09:46]
sbalmos surial: Ooo! Let's be like Assembler! [BITS 64] :D [09:46]
surial and to be crystal clear, the _COMPILER_ should most definitely nOT do it; a separate tool, in the vein of eclipse's refactors. ALL changes CAN be reviewed, and they fall in 3 categories ([1] suggestion to change A to B, no review needed really, [2] suggestion to change A to B, though, there are some exotic scenarios that'd break shit, here's a list of what you have to check and here's a list of the changes I propose, and [3] A [09:47]
surial is not gonna go real well in the new version, and here's why, and here's what you should do, but, I have no replacement suggestions for you, only some tips; you have to do it yourself). [09:47]
surial sbalmos: we alrady do the equivalent of 'source 11;' by putting the equivalent of javac's -release parameter in pom.xml/proj.iml/.classpath/build.gradle/build.xml/etc [09:48]
bendem surial, no, but the tooling could adapt so that by adding a module-info the next time you publish you get a jar that's compatible with both <9 and >=9 without any other change. The problem is that it's actually *much* more complicated than that, so the users aren't willing to take the risk of doing something that could have repercussions they don't understand. [09:48]
bendem and yes, I agree a tool that auto-updates your code is bad, you should ask it to upgrade it for you [09:49]
bendem sbalmos, cargo fix to upgrade between editions [09:51]
bendem jblow spoke about it for his own language too, though it's not even close to getting released yet [09:52]
bendem I think dart does it, but I would need to check [09:52]
sbalmos bendem: Yeah, one of these days that's going to bite Rust in the ass [09:52]
bendem sbalmos, that's an assumption, we will see [09:53]
surial dart has 'source 11;' style constructs IIRC. [09:54]
surial It sure as flying fuck beats "use strict"; [09:54]
yawkat hm, i remember there being three major categories of java security issues. one's deserialization, one's securitymanager, what's the third? [09:56]
dmlloyd SQL injection? :) [09:57]
teralaser [teralaser!~teralaser@unaffiliated/teralaser] has joined ##java [09:58]
yawkat nahh [09:58]
bendem odinsbane, jcommander moved outside their src root and it's not included in the release jar [09:58]
bendem so not useable [09:58]
yawkat maybe it was "applets" but that's really more of security manager [09:58]
yawkat oh well [09:58]
plarsen [plarsen!~plarsen@redhat/jboss/pdpc.professional.plarsen] has joined ##java [10:02]
Chuguniy [Chuguniy!~Chuguniy@] has joined ##java [10:05]
karab44 [karab44!~karab44@unaffiliated/karab44] has joined ##java [10:07]
bruhbruh [bruhbruh!] has joined ##java [10:11]
t2mkn [t2mkn!~t2mkn@] has joined ##java [10:12]
bendem neat, the script generated with the --launcher parameter of jlink is broken, it doesn't quote arguments it passes through [10:12]
bendem everything has been half assed, it's crazy [10:12]
liefer [liefer!] has joined ##java [10:14]
bluezone [bluezone!uid104970@gateway/web/] has joined ##java [10:14]
liefer pastebin [10:15]
liefer Please paste your code and any errors online. For runnable main-classes, try . For general code and errors, use for instance or [10:15]
Crash1hd [Crash1hd!~Crash1hd@unaffiliated/crash1hd] has joined ##java [10:15]
liefer Is there a more maintainable and less error-prone way of mapping integers to named enum values than this? [10:19]
cheeser yes [10:19]
cheeser static init, iterate, map [10:19]
liefer iterate? [10:20]
bendem liefer, all enums have a values() method that return all values of the enum. You can loop over that instead of hardcoding every possible mapping in a switch [10:20]
liefer bendem, cool thanks [10:21]
bendem and you generally do that once in a static init block and store the mappings in a map so you don't have to iterate every time [10:21]
odinsbane It sounds like they've adopted a similar philosophy for modules that they begun in javafx. [10:21]
liefer guess the solution to enums in java is to not actually use enums :) [10:23]
liefer good point bendem, thanks again [10:23]
bendem that sounds like a terrible answer to enums [10:23]
bendem they are most useful, skipping them because you don't want to understand them is a pretty terrible reaction [10:23]
liefer hmm? Im fairly certain i understand them, i just think they're severely limited in java [10:24]
liefer while at the other hand still having support for things like methods *shrug* [10:24]
bendem they are different than in other languages. Sure, you can compare enums in C++ and in java and say you can't bitwise-or enums in java. Well, duh, they are not the same concepts, they just share a name and a much more generic property [10:25]
bendem more like, they are the same concepts, but don't share the same properties. [10:25]
liefer "Different" is a very polite word to use when you probably mean "worse" :) [10:26]
bendem anyway, enums in java can do both more and less than in other languages. It doesn't make them useless, just different [10:26]
bendem hence why I say you don't understand them. You say worse, I say different. I've used enums in C, C++, rust, TypeScript and java, yes, they are different, no, none of them are worse or better, they just serve different purposes [10:27]
cheeser liefer: no, enums are fine. you just have to actually know what you're doing with them. [10:28]
liefer Sure, in the same way i dont understand pedophelia :D [10:28]
cheeser yes. it's exactly like that. [10:29]
cheeser ffs [10:29]
noodlepie [noodlepie!] has joined ##java [10:30]
Anticom [Anticom!] has joined ##java [10:35]
whaley [whaley!] has joined ##java [10:38]
yawkat enums in Java are much better imo [10:38]
yawkat cpp enums don't actually add anything to the language [10:39]
cheeser but if i can't use bitwise operators on them how good can they *really* be?!? [10:40]
yawkat sbt [10:40]
yawkat SBT is the "simple build tool," proving that Scala developers have well-developed senses of irony and sarcasm. It's really easy to use when your build doesn't actually do anything, apart from the incredible speed. ("It's incredible how SLOW this is!") See ; it's actually not entirely incapable, but really? Use gradle or maven. Nobody wants to read "still compiling" messages. [10:40]
cheeser liefer: how are they limited? [10:40]
Tobbi [Tobbi!~Tobbi@supertux/tobbi] has joined ##java [10:43]
alphazb [alphazb!~alphazb@unaffiliated/alphazb] has joined ##java [10:46]
ztychr [ztychr!~ztychr@unaffiliated/ztychr] has joined ##java [10:48]
greggerz [greggerz!~greggerz@unaffiliated/greggerz] has joined ##java [10:48]
Kristure [Kristure!] has joined ##java [10:49]
jamezp [jamezp!~jamezp@redhat/jboss/jamezp] has joined ##java [10:52]
t2mkn [t2mkn!~t2mkn@] has joined ##java [10:52]
MatthijsH [MatthijsH!~quassel@unaffiliated/matthijs] has joined ##java [10:54]
gbobby enums in C++ add type safety and a bit more awareness about how they are stored compared to C style enums [10:55]
gbobby they are a bit more like Java's instead of just being fancy ints [10:56]
cheeser java's enums are kind of a poor man's sealed classes [10:57]
cheeser with singleton enforcement. [10:57]
cheeser well, "singleton" [10:57]
conan [conan!] has joined ##java [10:58]
sbalmos cheeser: Clearly enums need more economic equality [11:01]
progart [progart!~kamee@] has joined ##java [11:03]
progart parted the channel: [11:04]
quadsar [quadsar!~quadsar@unaffiliated/quadsar] has joined ##java [11:05]
progart [progart!~kamee@] has joined ##java [11:05]
progart parted the channel: [11:06]
rippa [rippa!] has joined ##java [11:12]
MadLamb [MadLamb!~fabio@] has joined ##java [11:13]
q9929t [q9929t!~Thunderbi@] has joined ##java [11:15]
MadLamb Anyone with experience on com.graphql-java-kickstart:graphql-java-tools:5.5.1? Im trying to get it to read my .graphqls file for a couple of hours and I have no clue why it doesnt find the file and maps the graphql endpoint. [11:15]
Phizzy [Phizzy!] has joined ##java [11:15]
shakalaka [shakalaka!] has joined ##java [11:17]
tang^ [tang^!~tang^@] has joined ##java [11:19]
forgottenone [forgottenone!~forgotten@] has joined ##java [11:22]
pd09041999 [pd09041999!~pd0904199@2405:205:8d:c9bb:a902:de17:f46c:32b1] has joined ##java [11:30]
dino82 [dino82!~deeno@unaffiliated/dino82] has joined ##java [11:31]
upgrdman [upgrdman!~upgrdman@blender/artist/upgrdman] has joined ##java [11:34]
led_dark_1 [led_dark_1!~Thunderbi@] has joined ##java [11:47]
Foxfir3 [Foxfir3!] has joined ##java [11:47]
Tobbi [Tobbi!~Tobbi@supertux/tobbi] has joined ##java [11:48]
Anticom [Anticom!] has joined ##java [11:50]
Deeewayne [Deeewayne!~dwayne@] has joined ##java [11:50]
avalchev [avalchev!~user@] has joined ##java [11:57]
Revan- [Revan-!~Revan@] has joined ##java [12:00]
exonity01 [exonity01!] has joined ##java [12:01]
g00s [g00s!~g00s@unaffiliated/g00s] has joined ##java [12:01]
jesse1010 [jesse1010!] has joined ##java [12:07]
Improvotter [Improvotter!] has joined ##java [12:09]
AcTiVaTe [AcTiVaTe!] has joined ##java [12:10]
Improvotter freeone3000: sorry to bother you. I wanted to come back on that Server Push thing from yesterday. I've tested it with Chromium on a test page with pushing all of them and that seems to work fine so there *must* be a problem with my code or with the Java 11 HttpClient Server Push implementation. [12:10]
Improvotter [12:11]
Improvotter And on the server side, they're all properly logged. [12:13]
pd09041999 [pd09041999!~pd0904199@2405:205:8d:c9bb:a902:de17:f46c:32b1] has joined ##java [12:13]
Improvotter Calling the same endpoint (/example which doesn't get data from the POST) from the Java client yields the same results. It doesn't download all of the pushes. [12:15]
Deeewayne [Deeewayne!~dwayne@] has joined ##java [12:18]
shicks2525 [shicks2525!] has joined ##java [12:19]
shicks255_ [shicks255_!] has joined ##java [12:20]
jamezp [jamezp!~jamezp@redhat/jboss/jamezp] has joined ##java [12:20]
ExtraCrispy [ExtraCrispy!~ExtraCris@gateway/tor-sasl/extracrispy] has joined ##java [12:24]
freeone3000 Improvotter: Chromium against the same server, same endpoint that you're hitting with Java? [12:38]
Improvotter freeone3000: yes [12:41]
Improvotter I'm now converting it to Java in 1 file [12:42]
Improvotter I can even send you the go code or send you a compiled version [12:42]
Improvotter I'm starting to go paranoid [12:42]
freeone3000 Chromium's working as a client, so either something's special in google's implementation on both sides that doesn't go with the standard, or something's weird on the java end. [12:43]
Ai9zO5AP [Ai9zO5AP!~BQcdf9eiZ@] has joined ##java [12:45]
Ai9zO5AP hi [12:46]
Ai9zO5AP there is something like oop-anim ? [12:46]
Ai9zO5AP because I cannot find any link for oop-anim. [12:46]
KeyJoo [KeyJoo!~KeyJoo@] has joined ##java [12:46]
ulkesh [ulkesh!] has joined ##java [12:48]
jesse1010 how is the java freelancing world? [12:48]
mohsen_1 How can I tell jackson to ignore a field *only if* it's not available in the json? [12:48]
mohsen_1 I mean, deserialize it if it's available, but don't through an error if it's not [12:49]
orbyt_ [orbyt_!~orbyt@2607:f598:b1b2:fc00::1771] has joined ##java [12:50]
Erocksteady the version of Jackson I uses doesn't by default throw an error on null or missing fields [12:50]
Erocksteady they certainly might have changed that default, but I suspect you've just configured that setting to be on [12:51]
Improvotter freeone3000: how come this is still a problem? HTTP2 is from May 2015. [12:52]
freeone3000 Except nobody uses it, so in internet terms, it's still from the futrue. [12:52]
funeral [funeral!] has joined ##java [12:53]
freeone3000 mohsen_1: @JsonIgnoreProperties(ignoreUnknown = true) if you want it per class, ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) if you want it for the entire ObjectMapper. [12:54]
pengui [pengui!5686930d@gateway/web/freenode/ip.] has joined ##java [12:54]
freeone3000 mohsen_1: Err, sorry, that's not the one you want. missingProperties = true, DeserializationFeature.FAIL_ON_MISSING_CREATOR_PROPERTIES [12:55]
Improvotter So Python does not have support for HTTP2, Golang only has server side support, and Java claims support but is not even production ready. [12:55]
freeone3000 right, 'cause nobody uses it. [12:55]
Improvotter How do people expect us to use HTTP2 when it's not even properly implemented anywhere. [12:55]
freeone3000 I'd also hazard a guess that Java's server-side support is much better than its client-side support. [12:55]
srisri [srisri!~srisri@] has joined ##java [12:55]
mohsen_1 freeone3000: thanks so much [12:56]
freeone3000 (yes, the client-side support isn't great. usually the inbuilt java libraries aren't used for client-side, but httpclient and okhttp both do not implement http2 support, only the inbuilt client, and only in their new bizarre stream interface) [12:56]
pengui im trying to implement a back button and i get this error: alignment=TOP_CENTERis already inside a scene-graph and cannot be set as root. Code: [12:57]
freeone3000 pengui: Your code does not include code that can produce that error. Also, that error message is incompile - it should include the name of the component in addition to its properties. [12:58]
b3nszy [b3nszy!~b3nszy@2600:1700:feb0:1a10:558a:68ad:e015:37a5] has joined ##java [12:58]
freeone3000 *incomplete, not incompile [12:59]
b3nszy hey I made this program... and im not getting the right results for one case. [12:59]
b3nszy when i input the values .. 0.07051282051282062 0.23076923076923084 0.0 0.388235294117647 into the cmd argument I get [01:00]
NeXTSUN [NeXTSUN!~textual@2601:83:8100:42cf:5c44:3adb:fa63:2dba] has joined ##java [01:00]
conan [conan!] has joined ##java [01:00]
b3nszy red = 145 [01:00]
b3nszy green = 119 [01:00]
b3nszy blue = 156 [01:00]
b3nszy but im supposed to get [01:00]
b3nszy red = 145 [01:00]
b3nszy green = 120 [01:00]
b3nszy blue = 156 [01:00]
cheeser use a pastebin for such things [01:00]
ernimril b3nszy, what are the red1, green1 and blue1 set to? [01:01]
freeone3000 (the values in the debugger, not conceptually) [01:01]
b3nszy 0.07051282051282062 0.23076923076923084 0.0 0.388235294117647 [01:02]
pengui freeone3000: [01:02]
b3nszy these are in the input values [01:02]
freeone3000 pengui: Your stack trace has line numbers and file names. Use those instead of guessing. [01:02]
orbyt_ [orbyt_!] has joined ##java [01:03]
Improvotter freeone3000: my last hope: trying it on the Java 11 from Oracle instead of OpenJDK. [01:04]
bolovanos [bolovanos!] has joined ##java [01:05]
pengui freeone3000: that stacktrace means nothing to me literally no idea what file or anything it says [01:05]
freeone3000 If there's a difference, that'd be very surprising and a huge problem. [01:05]
mohsen_1 freeone3000: sorry, @JsonIgnoreProperties doesn't accept missingProperties [01:05]
Deeewayne [Deeewayne!~dwayne@] has joined ##java [01:05]
freeone3000 mohsen_1: Okay, set it at the ObjectMapper level then. [01:06]
yawkat okhttp can do http2 [01:06]
pengui freeone3000: stacktrace: [01:07]
freeone3000 pengui: Aha, you're setting your Grid to be rooted in two parents. [01:08]
b3nszy anyone? [01:08]
b3nszy ernimril: [01:08]
pengui freeone3000: uhm how can I fix that? [01:09]
Improvotter freeone3000: unsurprisingly, no difference on Oracle JDK 11. [01:09]
freeone3000 pengui: Where's your JFXML file involving your pickchooser? [01:09]
code_zombie [code_zombie!~code_zomb@2605:a601:aa1:da00:384b:8079:60b:2056] has joined ##java [01:10]
Improvotter Is it normal that you cannot post bug reports to OpenJDK? [01:10]
Improvotter Improvotter's title: "System Dashboard - Java Bug System" [01:10]
pengui freeone3000: what is a pickchooser? [01:11]
Teckla Has anyone here ever noticed that attaching to, and detaching from, tmux, goes "ding!"? :) [01:11]
freeone3000 pengui: The component it's having a problem with, line 134. [01:11]
cheeser Improvotter: do you have an account? [01:11]
Teckla Oops, wrong channel, my apologies. [01:11]
Improvotter cheeser: well it says you need an account that is an author. Of course I don't have that. [01:12]
Foxfir3 [Foxfir3!] has joined ##java [01:14]
Improvotter freeone3000: *sigh* I guess I'll *have* to use C++ to get some proper HTTP2 client. [01:14]
cheeser 13:06 < yawkat> okhttp can do http2 [01:15]
Improvotter cheeser: OkHttp cannot do server push [01:15]
pengui freeone3000: hmm no idea i never heard of it before or wrote it once no idea where that file is [01:15]
yawkat netty then [01:15]
cheeser do the push or receive them? [01:15]
Foxfir3 Improvotter: undertow? [01:15]
yawkat undertow is server only no? [01:16]
cheeser i believe so [01:16]
cheeser jetty [01:16]
cheeser cheeser, jetty is an open-source, standards-based, full-featured web server implemented entirely in Java. See for more information. Alternatives: ~undertow, ~tomcat. [01:16]
Improvotter Yes, and I need a client :/ [01:16]
Improvotter Server support is everywhere. I wonder where the clients are. [01:16]
yawkat netty supports everything :) [01:16]
yawkat it's just kind of shit to use for http [01:17]
Regon [Regon!~Regon@unaffiliated/regon] has joined ##java [01:17]
Foxfir3 yawkat: any experience with wildfly? [01:20]
yawkat no [01:21]
Improvotter yawkat: ya but is there any proper documentation on how to use server push on the client side? It seems to be a very low level HTTP library, no? [01:21]
yawkat Improvotter: yes, it's low-level, the api pretty much matches the http2 spec [01:21]
esro [esro!] has joined ##java [01:22]
yawkat hence shit to use [01:22]
Improvotter So is it possible for me to report this bug anywhere without selling my soul to Oracle? [01:25]
yawkat possibly but im not sure how current it is [01:25]
Markow [Markow!~ejm@] has joined ##java [01:25]
yawkat it might still only be for oracle jdk [01:25]
Improvotter Ya that's what I meant with selling my soul to Oracle [01:26]
Improvotter I have very low expectations of this even being looked at [01:26]
Improvotter Doubt it's even worth it [01:26]
Improvotter I've wasted so much time on this it's unreal [01:26]
yawkat openjdk is not the easiest project to contribute to, even if it's just reporting a bug [01:27]
Improvotter "Open" [01:27]
Improvotter Just like Android is open then [01:27]
yawkat it's just an antiquated collaboration model [01:28]
Improvotter Isn't everthing Java related antiquated these days? That's my view [01:28]
yawkat no, not really [01:28]
Ai9zO5AP which books do you recommended for Java? [01:29]
yawkat still the best ecosystem for most tasks [01:29]
yawkat books [01:29]
yawkat Some good java books are listed at Also see ~general books [01:29]
Improvotter yawkat: I'd still much rather write Kotlin if I'm using some Java stuff [01:29]
yawkat sure, but that doesnt change the ecosystem [01:29]
yawkat i doubt very many people here use java for how great the actual language is [01:30]
Ai9zO5AP thanks a lot [01:30]
paule32 [paule32!] has joined ##java [01:31]
Improvotter I'm gonna make dinner and contemplate what a waste of week this was [01:31]
paule32 hello [01:31]
paule32 how can i compile a java project [01:31]
paule32 gradle will not work [01:31]
paule32 [01:31]
mohsen_1 I wonder why is Jdbi dao mapping mysql's bigint(20) to int [01:32]
mohsen_1 I have long as the return type of the dao method, but when I put it into a long I get this exception: [01:32]
mohsen_1 java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long [01:32]
yawkat mohsen_1: it depends on what the driver returns [01:33]
yawkat presumably, the mysql driver returns an Integer [01:33]
mohsen_1 yawkat: but last time I checked it used to return long [01:34]
yawkat maybe the driver returns different types depending on size [01:34]
mohsen_1 on the documentation was stated [01:34]
yawkat it's mysql, i wouldnt put it past it [01:34]
mohsen_1 right [01:35]
mohsen_1 If I put it to an int, then if a bigger number comes in, the code breaks [01:36]
yawkat what does your dao look like [01:37]
mohsen_1 damn [01:37]
Anticom [Anticom!~Anticom@] has joined ##java [01:37]
mohsen_1 yawkat: a sec [01:37]
mohsen_1 @SqlUpdate("INSERT INTO `location` (`coordinates`, `tracker_id`) VALUES (:coordinates, :trackerId)") [01:38]
mohsen_1 long create(@BindBean Location location); [01:38]
esro [esro!] has joined ##java [01:38]
mohsen_1 why java.lang.Long in the error, I'm putting into a long [01:39]
yawkat whats the stack trace [01:39]
mohsen_1 long id = JDBIHandler.jdbi.withExtension(LocationDAO.class, dao -> dao.create(location)); [01:39]
mohsen_1 yawkat: paste it in a sec [01:40]
Tobbi [Tobbi!~Tobbi@supertux/tobbi] has joined ##java [01:41]
orbyt_ [orbyt_!~orbyt@] has joined ##java [01:42]
dudek [dudek!~dudek@] has joined ##java [01:45]
Deeewayne [Deeewayne!~dwayne@2605:a601:a803:7800:ffaf:2fa4:84dc:10e4] has joined ##java [01:49]
mohsen_1 yawkat: [01:50]
yawkat that error looks more like a mismatched type between the dao return type and the variable youre assigning to [01:51]
rancor [rancor!] has joined ##java [01:51]
mohsen_1 yawkat: but both of them are long [01:53]
mohsen_1 I just pasted the codes [01:54]
mohsen_1 the lines I sent [01:54]
yawkat no clue [01:59]
yawkat id use a debugger to find out [01:59]
mohsen_1 but if the driver returns int and dao returns long, shouldn't that error happen on some point at jdbi underlying level? [02:02]
kembrek_ [kembrek_!~kembrek@] has joined ##java [02:02]
mohsen_1 when jdbi tries to cast int to long, that's in the jdbi's underlying layers [02:02]
yawkat it could be that it's generics all the way to the proxy conversion [02:03]
ravenousmoose [ravenousmoose!] has joined ##java [02:03]
yawkat and generics are unchecked in java [02:03]
yawkat so as soon as it goes from generics to being returned by the proxy, boom, error [02:03]
yawkat a debugger can show where it actually starts to go wrong [02:04]
mohsen_1 I see [02:06]
Sasazuka [Sasazuka!~Sasazuka@unaffiliated/sasazuka] has joined ##java [02:06]
jesse1010 guys I need some help [02:08]
jesse1010 and I know this room is for java, but I am trying to decide to learn java or c# [02:08]
yawkat well... do you expect us to be unbiased :D [02:08]
jesse1010 I want to freelance, doing web apps mostly, but I also want to create desktop apps for linux [02:08]
yawkat c# is good for win desktop apps and games, thats about it imo [02:09]
yawkat java is better in other areas [02:09]
jesse1010 java is crossplatform [02:09]
jesse1010 that is the big attraction [02:09]
yawkat so is c#, though not the ui parts [02:09]
freeone3000 not really. java is take-your-platform-with-you, like electron. [02:09]
jesse1010 yawkat: yeah exactly [02:10]
jesse1010 i dont like electron [02:10]
g00s [g00s!~g00s@unaffiliated/g00s] has joined ##java [02:10]
mohsen_1 jesse1010: what is your programming background [02:11]
jesse1010 I learned golang, maybe to an intermediate level [02:11]
jesse1010 and php years ago [02:11]
mohsen_1 jesse1010: if you don't want to deal with oo stuff, you don't have to [02:14]
jesse1010 i do want to learn oo [02:14]
mohsen_1 jesse1010: you can't play around in Java land without learning oo [02:15]
jesse1010 sure, I want to learn oo, but another question is, how is the freelancing opportunities with java? [02:16]
paddyez [paddyez!~paddyez@wikipedia/paddyez] has joined ##java [02:16]
Addax not the right channel for that [02:17]
Addax but tiobe says java's pretty popular [02:17]
rancor java is little obsolete and its popularity drops. [02:18]
EgonX [EgonX!~Egon@2601:2c6:47f:98f4:d928:846f:1e39:a0c9] has joined ##java [02:18]
rancor javas syntax, gramma is hard to learn [02:18]
Addax rancor: you should try being even more sarcastic [02:18]
rancor and you need also to learn frameworks like spring, javafx etc [02:19]
Addax not really [02:19]
Addax I barely know javafx and swing, Spring is fundamentally simple [02:19]
mohsen_1 jesse1010: you should define your job title first, then learn the requirements [02:20]
acidjnk Interesting - I was hoping I could make integration tests with an embedded glassfish 5 faster by configuring X1GC and MetaSpace similar to a production Glassfish. Instead, it made the whole thing so slow that one transaction went over the time limit and failed :-) [02:20]
rancor oo is easy to learn [02:20]
bendem Learning how oo works is easy, actually designing software APIs that make sense and guide the users into correct patterns is a lot harder. [02:22]
seventwo [seventwo!] has joined ##java [02:22]
rancor almost all job descriptions requires java, spring, hibernate, Rest, Git, docker. Looots of time to learn that things [02:22]
Addax shrugs. It's all pretty easy. [02:23]
acidjnk I found it most important to have good fundamentals. Better to read Thinking in Java, Effective Java and Design Patterns 3 times than to waste time with overly complex books about standards and libraries. For the latter, the shorter, the better. [02:24]
acidjnk I agree though that all of that really adds up. [02:24]
Addax but... the fundamentals help add velocity in the first place [02:25]
Addax if you know java, and can grasp inversion of control, you've... got spring [02:25]
mohsen_1 jesse1010: be careful about your professional career [02:25]
Addax hibernate's a little more wiggly because JPA uses proxies and managed object concepts, but eh [02:25]
orbyt_ [orbyt_!~orbyt@] has joined ##java [02:26]
acidjnk I've been able to dodge Spring so far. Many projects with EJB don't use Spring. It can be a viable strategy to specialise in ONE common combination (like the one rancor mentioned), as long as there are enough projects. [02:27]
nonconvergent [nonconvergent!c72f2503@gateway/web/freenode/ip.] has joined ##java [02:27]
Addax haha [02:27]
Addax well, if you can do EJB, you can do spring :) [02:27]
acidjnk Just started doing the spring boot tutorial though, because that keeps popping up in recent request at a scary rate... [02:27]
Addax acidjnk: what you'll find is that you end up using configuration objects... and after that it looks A LOT like EJB, which isn't coincidence at all, as EJB owes a lot of its design to spring [02:28]
acidjnk Ok, shouldn't be a problem, then. [02:28]
Addax and considering how much people love JNDI, you'll probably think that configuration objects were way easier in the first place [02:28]
Addax like I said, the basics add velocity all the way around, unless you're a moron [02:29]
nonconvergent Addax: do you know anything about Spring prototype beans? [02:29]
Addax yes [02:29]
rancor JavaEE is dying and spring is takig its place [02:29]
Addax rancor: please don't lie to people [02:30]
acidjnk I agree; on IRC I observed people struggling with Java for years, because their foundation was weak, yet they kept trying to read books about special frameworks etc. [02:30]
nonconvergent Someone asked me to turn a non-Spring class into a prototype and wire it that way, something I haven't done before. And because my non Spring class is meant to be one instance per input and the Service I'd wire has a list a of input objects collected from DB, I decided prototype doesn't do what he thinks it does. [02:31]
mohsen_1 rancor: haha [02:31]
Addax nonconvergent: prototype will create a new instance every time you retrieve one from the context [02:32]
nonconvergent Am I right? Prototype is for when you one a single instance of your prototyped class per collaborating bean and they're wired at instantiation. So since my @Service class is a singleton, and inputs are only collected dynamically at runtime, you can't create a new instance, right? [02:34]
Addax nonconvergent: no [02:36]
Addax prototype means that it'll create a new instance every time it's retrieved [02:36]
darkSeid [darkSeid!~textual@2a02:c7d:281c:e200:b955:2602:cabe:c848] has joined ##java [02:37]
Addax singleton beans - the default - are created once and injected everywhere [02:37]
kembrek [kembrek!] has joined ##java [02:41]
tang^ [tang^!~tang^@] has joined ##java [02:41]
nonconvergent That's not how the documentation reads. [02:43]
nonconvergent [02:43]
Addax then you're reading it improperly [02:43]
nonconvergent nonconvergent's title: "Spring Framework Reference Documentation" [02:43]
nonconvergent "However, suppose you want the singleton-scoped bean to acquire a new instance of the prototype-scoped bean repeatedly at runtime. You cannot dependency-inject a prototype-scoped bean into your singleton bean, because that injection occurs only once, when the Spring container is instantiating the singleton bean and resolving and injecting its dependencies." [02:44]
Addax note: "the non-singleton, prototype scope..." (section 7.5.2) [02:44]
Addax "The non-singleton, prototype scope of bean deployment results in the creation of a new bean instance every time a request for that specific bean is made. That is, the bean is injected into another bean or you request it through a getBean() method call on the container. As a rule, use the prototype scope for all stateful beans and the singleton scope for stateless beans." [02:44]
Addax Exactly what I said. [02:44]
kirua [kirua!~kirua@unaffiliated/kirua] has joined ##java [02:46]
nonconvergent Right but when dependency injected into a Singleton, it will only ever be requested for once at instantiation of the Singleton. So the Singleton will only wire to one instance of the Prototype. [02:48]
Addax yes. [02:48]
nonconvergent Which isn't my use case. [02:48]
ogradyd [ogradyd!~Thunderbi@2a02:8070:88bf:9df0::dff] has joined ##java [02:49]
Addax But that doesn't change the meaning of "prototype." If you want the singleton to get a new instance every time it... uses a prototype, have it REQUEST THE INSTANCE from the context. [02:49]
MarkyC [MarkyC!] has joined ##java [02:49]
fstd_ [fstd_!~fstd@unaffiliated/fisted] has joined ##java [02:53]
gelignite [gelignite!] has joined ##java [02:53]
Diablo-D3 [Diablo-D3!] has joined ##java [02:54]
orbyt_ [orbyt_!~orbyt@] has joined ##java [02:56]
Foxfir3 [Foxfir3!] has joined ##java [02:57]
kirua i would like to reduce the cyclomatic complexity of this method : maybe using guava functions ? any tips? [03:00]
freeone3000 ...Why? [03:03]
freeone3000 I think that's the best version of that function in Java. [03:04]
indistylo [indistylo!~aruns_@2406:7400:58:adba:9c29:c5cd:1cdf:bd3a] has joined ##java [03:07]
Gazooo [Gazooo!~Gazooo@] has joined ##java [03:07]
Anticom [Anticom!] has joined ##java [03:12]
surial kirua: feels like the design fuckup was made elsewhere. [03:15]
surial kirua: specifically, the design fuckup of: "If an empty object and null are semantically equivalent.. why return null at all?" [03:16]
Addax surial: OTOH, maybe it's generated from external input that's... inconsistent, like wikidata or the like [03:19]
paule32 [paule32!] has joined ##java [03:19]
paule32 hello [03:19]
paule32 how can i copy license [03:19]
paule32 to work with gradle [03:19]
surial Addax: ... at which point trying to worry about the 'cleanest' code is in my expert and considered opinion, a stupid waste of time. [03:19]
dmlloyd walks in, immediately turns around, walks out [03:19]
paule32 i have delete android studio for some month ago [03:20]
[rg] [[rg]!~ricardo@] has joined ##java [03:20]
surial The API is fugly by design. It is not worth building a bridge API for it. Okay. Fantastic. But you just decided not to worry about API cleanliness, so.. be consistent, don't worry about it. [03:20]
[rg] does java have default type for methods like c/c++ ? [03:20]
cheeser nope [03:20]
surial There's for (TbRecordBaseVO o : Optional.ofNullable(this.betaxAgent).map(x -> x.getData()).map(x -> x.getDeclarations()).orElse(List.of())) { .. } [03:20]
surial kirua: I'd.. strongly suggest NOT to do that. [03:20]
Addax oh, you'll not get any arguments from me on that one, surial [03:21]
nonconvergent surial: Dealing with the same. So many people returning null across service boundaries. [03:21]
cheeser throw exceptions [03:22]
Addax nonconvergent: tell them you're sorry [03:22]
whaley [whaley!] has joined ##java [03:22]
Addax nonconvergent: whatever it was you did, you apologize, now will they stop being morons [03:22]
nonconvergent I saw `if (StringUtils.EMPTY().equals(x))` the other week. StringUtils.EMPTY is just empty string. [03:23]
dmlloyd nice [03:23]
nonconvergent Apache Commons cruft. [03:23]
paule32 this is the message, what gradlew give me: [03:23]
paule32 To build this project, accept the SDK license agreements and install the missing components using the Android Studio SDK Manager. [03:23]
paule32 Alternatively, to transfer the license agreements from one workstation to another, see [03:23]
paule32 paule32's title: "Exporting licenses - Android Studio Project Site" [03:23]
nonconvergent Oh, and like 11 different versions of it in the codebase [03:23]
yawkat android [03:23]
yawkat paule32, Android is Google's OS based on Linux and a non-Java-bytecode Virtual Machine. See . Start in #android-dev if you have Android development questions - and if you use Android's API or you're running it on Android, you have an Android development question. [03:23]
indistylo [indistylo!~aruns_@2406:7400:58:adba:9c29:c5cd:1cdf:bd3a] has joined ##java [03:24]
nonconvergent I saw this gem yesterday. `if (isSuccess) { doStuff(); } else { Optional.ofNullable(Some.long().call().chain().get(0).getMessage()).orElseThrow(() -> new Runtime Exception("response was empty"))` [03:27]
nonconvergent that's not how any of those things work >_> [03:27]
surial nonconvergent: we've been toying with a lombok tool for this. [03:29]
surial nonconvergent: Lombok.nullChain(a.b().c().d().e.f.g().h(), valueIfNull) [03:29]
nonconvergent I'm still trying to get lombok into the only artifactory we're allowed to use. It's got 11 versions of Apache Commons but no lombok. [03:29]
surial With optional it was even doable without really extensive code analysis, but.. eh. [03:29]
nonconvergent I like Optional and don't understand why people think it gets a bad wrap. [03:33]
Diablo-D3 [Diablo-D3!] has joined ##java [03:33]
dmlloyd it's just very easy to overuse, that's all [03:33]
nonconvergent Spend some time in Scala APIs. Everything is either an Optional or a Future. [03:34]
indistylo [indistylo!~aruns_@2406:7400:58:adba:9c29:c5cd:1cdf:bd3a] has joined ##java [03:34]
cheeser Optional is a blunt force alternative to much more elegant solutions. [03:35]
Tobbi [Tobbi!~Tobbi@supertux/tobbi] has joined ##java [03:36]
nonconvergent Don't return null? [03:38]
impermanence [impermanence!6cab87bd@gateway/web/cgi-irc/] has joined ##java [03:38]
cheeser nullable types. the NullObject pattern. throwing exceptions. excessive drinking. heroine. stepping in front of train. [03:39]
waz [waz!~waz@pdpc/supporter/active/waz] has joined ##java [03:40]
F1nny [F1nny!] has joined ##java [03:40]
freeone3000 just returning null. [03:40]
nonconvergent Issue I run into with that is everyone's got their own opinion of what that means, especially around Stringly typed data, and my opinion is that if you give me a String I do not care what that String is unless it's my job to care what that String is and if your String cases my algorithm to blow up then it's either A) a bad input or B) we did not have clear contracts [03:41]
nonconvergent So instead it's the wild west and defensive coding all over the place [03:42]
F1nny_ [F1nny_!] has joined ##java [03:42]
immibis [immibis!] has joined ##java [03:43]
nonconvergent Anyone could send you anything, but validation is done by another team so just install this library and it just works via AOP (except when it doesn't). [03:43]
nonconvergent That other team doesn't have to use their validation library I should note. I do. [03:43]
freeone3000 Yes, this is a good rule for not having null assignable to an arbitrary type. However, this is a requirement for Java. Have you considered Kotlin? [03:44]
F1nny_ [F1nny_!] has joined ##java [03:44]
indistylo [indistylo!~aruns_@2406:7400:58:adba:9c29:c5cd:1cdf:bd3a] has joined ##java [03:45]
rohdef [rohdef!] has joined ##java [03:47]
F1nny [F1nny!F1nny@gateway/vpn/privateinternetaccess/f1nny] has joined ##java [03:49]
orbyt_ [orbyt_!~orbyt@] has joined ##java [03:54]
MarkyC Lombok.nullChain looks nice when dealing with bad data. I have a Supplier-based method to do something like that: T nullSafe(Supplier<T> supplier, T fallback) { try { T result = supplier.get(); return result != null ? result : fallback; } catch (NullPointerException npe) { return fallback; } } [03:59]
indistylo [indistylo!~aruns_@2406:7400:58:adba:9c29:c5cd:1cdf:bd3a] has joined ##java [04:04]
F1nny_ [F1nny_!F1nny@gateway/vpn/privateinternetaccess/f1nny] has joined ##java [04:05]
Android is it true that arrays cannot be expanded nor shrunk? [04:20]
[rg] thanks cheeser [04:22]
[rg] if I have a char array like so { 'a','b','b',nul,nul...} [04:23]
[rg] can I call String() on it? [04:23]
indistylo [indistylo!~aruns_@2406:7400:58:adba:9c29:c5cd:1cdf:bd3a] has joined ##java [04:24]
Nicmavr [Nicmavr!~Nicmavr@unaffiliated/nicmavr] has joined ##java [04:24]
Bombe Of course you can. [04:25]
Bombe It will probably not do what you expect, though. [04:25]
[rg] ok, what if it looks like { 'a','b','b','\0',nul...} [04:25]
Bombe It will do the same. [04:26]
[rg] hmm ok [04:26]
Bombe Which is probably still not what you expect. [04:26]
[rg] what will happen? [04:26]
plarsen [plarsen!~plarsen@redhat/jboss/pdpc.professional.plarsen] has joined ##java [04:26]
[rg] i would like to see "abb" [04:26]
Bombe That?s not what it does. [04:27]
[rg] damn [04:27]
LtHummus tias [04:27]
LtHummus Try it and see. You learn much more by experimentation than by asking without having even tried. [04:27]
[rg] true [04:28]
dosdebug clear [04:30]
dosdebug dosdebug: wrong window, pal [04:30]
LtHummus i love that command [04:30]
LtHummus ls [04:30]
LtHummus LtHummus: wrong window, Einstein [04:30]
LtHummus ;) [04:31]
LtHummus q [04:31]
LtHummus boooo [04:31]
tang^ you will never escape that window [04:31]
jamezp [jamezp!~jamezp@redhat/jboss/jamezp] has joined ##java [04:34]
conan [conan!] has joined ##java [04:36]
whaley [whaley!] has joined ##java [04:36]
NeXTSUN [NeXTSUN!~textual@2601:83:8100:42cf:784d:8731:5e79:64bf] has joined ##java [04:36]
comrad [comrad!~comrad@holarse/core/comrad] has joined ##java [04:41]
F1nny_ [F1nny_!F1nny@gateway/vpn/privateinternetaccess/f1nny] has joined ##java [04:43]
indistylo [indistylo!~aruns_@2406:7400:58:adba:9c29:c5cd:1cdf:bd3a] has joined ##java [04:44]
orbyt_ [orbyt_!~orbyt@] has joined ##java [04:48]
nmourey [nmourey!~nmourey@2604:6000:100c:1ad:35f7:e8d8:50d:7002] has joined ##java [04:50]
g00s [g00s!~g00s@unaffiliated/g00s] has joined ##java [04:50]
AugustusCaesar24 [AugustusCaesar24!~AugustusC@] has joined ##java [04:50]
AugustusCaesar24 parted the channel: [04:51]
Android isnt tias bad? [04:52]
Android eg just trying random crap untill it works [04:52]
[rg] did some experimenting, but the code looks pretty bad [04:53]
otto_j [otto_j!] has joined ##java [04:54]
MarkyC Android: no, pushing that random crap to production without refactoring/testing is bad [04:56]
[rg] [04:56]
Android hmmm ok [04:56]
Android when should overloading be used, and when should it not be used [04:57]
[rg] when you want to resuse the function name [04:57]
[rg] when wouldnt you want it? [04:57]
Iolo [Iolo!] has joined ##java [04:57]
MarkyC when the function has different semantics [04:57]
[rg] true [04:58]
ron when you don't have a choice ;) [04:58]
[rg] is there a more java way to get c strings? [04:58]
[rg] than my code [04:58]
Android for example, if a function is 400 LOC and 5 types are required to be supported, would it be best to use a type of Any and check with IS, as opposed to duplicating 400 LOC 4 more times [05:00]
MarkyC that approach is better than duplicating code [05:02]
MarkyC using an overload instead of Any would be an improvement over that [05:03]
MarkyC depends how similar the 5 types are [05:03]
tete_ [tete_!] has joined ##java [05:03]
indistylo [indistylo!~aruns_@2406:7400:58:adba:9c29:c5cd:1cdf:bd3a] has joined ##java [05:04]
tete_ hi, can someone tell me if there is any security concern in using processbuilder which gets some of the params for the executable from the user? i would like to execute a command "register_new_matrix_user" which needs some parameters, e.g. a username and a password (which is entered by the user). so i execute final ProcessBuilder processBuilder = new ProcessBuilder(registrationBinary, "-u", "'" + user.getUsername() + "'", "-p", "'" + [05:04]
tete_ user.getPassword() + "'", "--no-admin", "-k", "'" + sharedSecret + "'"); - anything to take care of? [05:04]
ron can you think of any value of sharedSecret or user.getUsername() that would make the average machine go boom? [05:06]
tete_ hm when the user enters ' this could maybe escape that - i never had to deal with such evil construct ;) [05:07]
tete_ in sql its quiet easy, just take a prepared statement, but i guess nothing like that exists in processbuilder [05:07]
tete_ when the user enters ' && rm -rf && ' [05:07]
tete_ i dont know what happens [05:07]
ron tias ;) [05:08]
ron ron, what does that even *mean*? [05:08]
ron er yeah [05:08]
ron but you get the idea. [05:08]
Quick_Wango Hi! Does anyone know a library to convert regexes to FSMs (for those where it's possible) and then e.g. calculate the intersection between two FSMs? [05:08]
tete_ how would you protect that? a regex which only allows a-zA-Z0-9 ? [05:08]
ron the best way to protect against that would be to not allow it in the first place [05:09]
tete_ hm i see, so i should take care of that in the rest controller [05:09]
tete_ no that makes no sense, because the rest controller only accepts rest requests [05:10]
ron depends on what the end goal is. [05:10]
tete_ the validation is probably correct in that place [05:10]
tete_ i have a matrix server (its like whatsapp) but it is not possible to register with a password, so i wrote a little application with spring [05:10]
ron if you absolutely have to execute something on behalf of the user, you want it to be sandboxed. [05:10]
tete_ the spring application is just a rest controller with a html page (thymeleaf) - and the html page has a form which calls the rest controller [05:11]
ron I was referring to the process itself. [05:11]
mark_infinite [mark_infinite!] has joined ##java [05:12]
tete_ how could i sandbox that? [05:12]
mark_infinite hello! Any ideas how I can abort constructor initialization? [05:12]
kgrimes2 [kgrimes2!] has joined ##java [05:12]
impermanence [impermanence!6cab87bd@gateway/web/cgi-irc/] has joined ##java [05:13]
tete_ mark_infinite, just throw a runtime exception in the constructor then it aborts [05:13]
skuuter [skuuter!] has joined ##java [05:13]
mark_infinite tete_: try/catch you mean? or declare on the constructor "throws Exception" ?? [05:14]
ron tete_: docker? vm? whatever? [05:14]
MarkyC mark_infinite: public MyObjec() { throw new RuntimeException(); } [05:15]
tete_ ron, thats what i was thinking now too... docker. but urg... i would really like to avoid that as i have nearly no knowledge of the matrix server (and its db ...) [05:15]
tete_ guess i will go with the regex validation in a first step, and when everything works i will try to get it working in a docker container [05:16]
ron sure [05:16]
mark_infinite MarkyC: you mean I try { open a file } catch (FileNotFoundException){ throw new RuntimeException(); } ???? [05:16]
MarkyC mark_infinite: ugly, but that will work [05:17]
mark_infinite MarkyC: any other ideas? How could it been written better? [05:18]
MarkyC Ideally you should separate the IO part from the Object creation part, especially if that Object is otherwise just data [05:18]
surial mark_infinite: or.. just let the FNFEx escape from the constructor. [05:19]
mark_infinite MarkyC: I cannot follow you unfortunately, but ty [05:19]
ravenousmoose [ravenousmoose!] has joined ##java [05:20]
mark_infinite surial: how does that happen? [05:20]
surial mark_infinite: public MyObject(File f) throws IOException { in = new FileInputStream(f); } [05:20]
surial mark_infinite: exactly like that. [05:20]
mark_infinite surial: Oh! Elegant! [05:20]
surial mark_infinite: That works, but, it is shit style. It's what MarkyC was also trying to tell you. But, hey, if you must 'abort a constructor', that will do it. [05:20]
surial mark_infinite: the problem with this is that your object ITSELF now has a resource that MUST be closed. [05:20]
surial mark_infinite: so, your class MUST implement AutoClosable and have a close method. Make sure you take care of that. [05:21]
mark_infinite what about try { open a file } catch (FileNotFoundException){ throw new RuntimeException(); } ???? [05:21]
[rg] parted the channel: [05:22]
surial mark_infinite: that'll abort just the same but makes no fucking sense. [05:25]
surial mark_infinite: you have a constructor which opens a file. Unless that is some sort of throwaway implementation detail that basically can't ever go wrong, you're just making it impossible to debug the issue if opening the file fails. [05:26]
surial at LEAST 'throw new RuntimeException(e);', but that's still fugly code. [05:26]
mark_infinite surial: I use RandomAccessFile. Does that make any difference? [05:28]
tete_ mark_infinite, when you open a file in your constructor (which can be legit!), i would really think about if the class does not more than it should [05:29]
mark_infinite tete_: so the best practice would be to open the file on a seperate method, right? [05:30]
mark_infinite tete_: BUT if it fails!? I have a useless object, correct? I want to prevent it before it even is initialized [05:31]
LtHummus what is this object supposed to do anyway? [05:32]
tete_ mark_infinite, no, for me this sounds more a configuration thing [05:32]
MarkyC the failure would happen before you create the object, presumably [05:32]
tete_ mark_infinite, usually, at least how i do such stuff: create a class which gets a parameter (e.g. a file object) and then do your stuff with that [05:32]
tete_ and i have a class called Application (the entry point) and a class called ApplicationConfig (configuration for the application) [05:32]
tete_ in applicationconfig you could create something like: getConfigurationFile() { return new File("myConfig.txt") } [05:33]
mark_infinite I see [05:33]
tete_ and pass this in your class where you want to read that file, and the just do whatever you need (permission check, does it even exist, etc.) [05:33]
julius_ [julius_!~julius@] has joined ##java [05:33]
julius_ hi [05:33]
LtHummus hello [05:33]
julius_ my spring test is annotated with @springboottest which apparently starts my application.class run method because of the implemented commandlinerunner, [05:34]
AfroThundr|main [AfroThundr|main!~AfroThund@countervandalism/AfroThundr3007730] has joined ##java [05:35]
julius_ but what i need in my test is the service that provides the db access, how do you tell spring to @autowire the variables in the testing class and all their dependencys and nothing else? [05:35]
somazero [somazero!~somazero@2600:8805:100:1a:6a:af7a:a492:3607] has joined ##java [05:36]
tete_ you can use the spring annotation beanmock or so [05:37]
tete_ sorry it is @MockBean [05:37]
tete_ then just use the contextconfiguration and pass your class (implementation) in [05:37]
tete_ julius_, a very simple example: [05:39]
tete_ tete_'s title: "src/test/java/matrixregistration/handler/ master Oliver Z. / MatrixRegistration GitLab" [05:39]
tete_ MyDatabase is used in the implementation and will get mocked from spring [05:39]
julius_ tete_, in securityhandler theres also a @Autowired MyDatabase database as is in the file, why is that? [05:44]
F1nny__ [F1nny__!F1nny@gateway/vpn/privateinternetaccess/f1nny] has joined ##java [05:44]
tete_ thats the interface which is used in the implementation, spring recognizes that [05:44]
tomorrow__ [tomorrow__!] has joined ##java [05:44]
tete_ otherwise it would throw a nullpointerexception when i say what it should return [05:45]
tete_ given(this.database.registrationPasswordMatches(anyString())).willReturn(true); [05:45]
tete_ s/what it should return/when i execute any method on it [05:45]
julius_ ah i see [05:46]
tete_ and the implementation just will get the database implementation injected by spring [05:46]
julius_ what about if you wanted to use the original @Autowired bean in the class, would spring instantiate it if you do not mock it? [05:47]
tete_ no it would not [05:47]
tete_ thats why you need mockbean [05:47]
tete_ afaik, but i am not that spring hero [05:47]
julius_ ok, my service class contains ~5 hibernate repository classes that are all set as @Autowired. how do you tell sprint to create them in a text context? [05:48]
julius_ the service is a @Component [05:48]
tete_ you have to list them all in the context annotation in the test class [05:49]
julius_ ok [05:49]
julius_ that sounds easy [05:49]
tete_ then you can mockbean them all and spring recognizes it has to inject those instead of real implementations [05:49]
julius_ i really dont want to mock them at this point [05:49]
tete_ but this feels wrong to me, i highly doubt mocking hibernate repositories is a good idea [05:49]
julius_ its more of a integration test [05:49]
tete_ ah ok [05:50]
tete_ then try it without beanmock, maybe that works [05:50]
julius_ probably to much, but i wanted to know how it could be done [05:50]
julius_ yes, tomorrow at work [05:50]
julius_ the @SpringBootApplication recognizes all of my beans "correctly", there should be a way for spring to figure out all of the @autowired annotations in my service and automagically find them [05:51]
julius_ in a testcase [05:52]
Android i really wish i had macros so i can reduce the LOC i need ;-; [05:52]
julius_ Android, macros as evil ;) as far as ive seen them in c [05:52]
Android how tf do i declare an overload with no body [05:53]
Sasazuka__ [Sasazuka__!~Sasazuka@unaffiliated/sasazuka] has joined ##java [05:53]
buttholesprouts What is polymorphic recursion in Java? are all recursive methods polymorphic ? [05:54]
nfd9001 [nfd9001!~nfd9001@2601:602:8500:d0d1:c1e0:3340:3dcc:a4f6] has joined ##java [05:55]
g00s [g00s!~g00s@unaffiliated/g00s] has joined ##java [05:58]
helderc [helderc!~helderc@] has joined ##java [06:00]
F1nny_ [F1nny_!F1nny@gateway/vpn/privateinternetaccess/f1nny] has joined ##java [06:07]
NeXTSUN [NeXTSUN!~textual@2601:83:8100:42cf:784d:8731:5e79:64bf] has joined ##java [06:23]
g00s [g00s!~g00s@unaffiliated/g00s] has joined ##java [06:24]
darkSeid [darkSeid!~textual@2a02:c7d:281c:e200:4d53:c5d3:16fc:378] has joined ##java [06:28]
Android how can i access variables from an upper class [06:30]
Android for example, class A { val B : Int; class C { A = 0; } } [06:31]
Android B = 0; * [06:31]
sir_galahad_ad hiiiiiiiiiii [06:32]
sir_galahad_ad gh way to the DANGER ZONE [06:32]
conan [conan!] has joined ##java [06:33]
Addax Android: learn java [06:35]
Android ;-; i cant use sub classes [06:42]
Addax bummer. If only you learned java, maybe you could. [06:43]
Addax That's an "outer" class, BTW, not an "upper" class. [06:43]
Android as i have but LibJSON().bind_object() requires a class of LibJSON to access its Object variable [06:44]
Addax yeah, well, your whole object design is nuts anyway [06:45]
Android rip i need to keep all my functions in a single class ;-; [06:47]
Addax don't care [06:47]
Addax what you really need to do is master jackson or gson and lose your fear of nested maps [06:47]
Wagoo [Wagoo!] has joined ##java [06:51]
Android welp, code duplication it is lol [06:53]
orbyt_ [orbyt_!~orbyt@] has joined ##java [06:54]
enoq [enoq!~enoq@2a02:8388:6a87:b080:649f:9456:c1b1:28e4] has joined ##java [06:55]
Android as long as it works i guess i dont really care how many LOC it is [06:58]
Android even though it would become a pain to maintain 16 times X functions [07:00]
Android if i support every type Gson supports [07:00]
Android every type Gson's getAsJsonPrimitive(*).as* supports* [07:01]
Addax and yet you still really just want a map of maps [07:01]
F1nny__ [F1nny__!F1nny@gateway/vpn/privateinternetaccess/f1nny] has joined ##java [07:07]
surial well this is a weird fucking feeling. [07:36]
surial [07:36]
surial surial's title: "Project Lombok: Clean, Concise Java Code" [07:36]
surial that's quite the URL. [07:36]
surial I guess we're a corporate feature now! :P [07:36]
surial speaking of, anybody going to JavaLand? We're presenting. [07:36]
orbyt_ [orbyt_!~orbyt@] has joined ##java [07:37]
F1nny_ [F1nny_!F1nny@gateway/vpn/privateinternetaccess/f1nny] has joined ##java [07:43]
katiex7 [katiex7!] has joined ##java [07:55]
jamezp [jamezp!~jamezp@redhat/jboss/jamezp] has joined ##java [07:58]
Diablo-D3 surial: and here I was thinking, lombok was killed off [08:00]
Crash1hd [Crash1hd!~Crash1hd@unaffiliated/crash1hd] has joined ##java [08:01]
CAPITANOOO [CAPITANOOO!~CAPITANOO@] has joined ##java [08:02]
surial Diablo-D3: ?? [08:05]
tiogrand [tiogrand!~tiogrand@] has joined ##java [08:06]
surial oracle is a big place with many opinions :) [08:07]
g00s [g00s!~g00s@unaffiliated/g00s] has joined ##java [08:17]
orbyt_ [orbyt_!~orbyt@] has joined ##java [08:24]
plarsen [plarsen!~plarsen@redhat/jboss/pdpc.professional.plarsen] has joined ##java [08:27]
Tobbi [Tobbi!~Tobbi@supertux/tobbi] has joined ##java [08:33]
Jigsy` [Jigsy`!~Jigsy@unaffiliated/jigsy] has joined ##java [08:34]
Improvotter [Improvotter!] has joined ##java [08:35]
Improvotter freeone3000: one final update regarding the HTTP2 Server Push thing. The fault is at the Golang server side. It works perfectly with a NodeJS server. Ew. [08:37]
yn [yn!~yano@freenode/staff-emeritus/yano] has joined ##java [08:37]
Improvotter I'll report the bug when I find some time. [08:47]
waz [waz!~waz@pdpc/supporter/active/waz] has joined ##java [08:51]
[rg] [[rg]!] has joined ##java [09:00]
RazielXYZ [RazielXYZ!~Raziel@unaffiliated/raziel] has joined ##java [09:01]
[rg] can I potentially read integers from a byte array? [09:01]
whaley [whaley!] has joined ##java [09:02]
t2mkn [t2mkn!~t2mkn@] has joined ##java [09:03]
votale [votale!] has joined ##java [09:07]
conan [conan!] has joined ##java [09:12]
mbooth [rg]: There could be anything in a byte array! All data is made of bytes ;-) [09:15]
Foxfir3 I want to create a simple console gui. What should I look into? Lanterna or Curses? Are there other option? [09:15]
Addax Foxfir3: there's a gamer's UI for java [09:29]
Addax ircon [09:29]
Addax Addax, what does that even *mean*? [09:29]
Addax zircon [09:29]
Addax Addax, what does that even *mean*? [09:29]
Addax [09:29]
Addax Addax's title: "GitHub - Hexworks/zircon: Zircon is extensible, multiplatform and user-friendly tile engine." [09:29]
Foxfir3 Addax: Thanks! :) Exactly what I was looking for [09:34]
Foxfir3 is such a bot! we still have time before Skynet comes online [09:36]
Foxfir3 no, you are! [09:36]
Foxfir3 okay. maybe not :( [09:36]
conan [conan!] has joined ##java [09:39]
[rg] mbooth: ok, so help me understand something [09:50]
Goplat [Goplat!~Goplat@reactos/developer/Goplat] has joined ##java [09:50]
mbooth [rg]: Go on... [09:51]
[rg] what if I wanted to divide it up per 4 bytes and assign to an integer? is there some java fashion for this? [09:51]
plarsen [plarsen!~plarsen@redhat/jboss/pdpc.professional.plarsen] has joined ##java [09:51]
mbooth [rg]: Yes, just shift the bits over and 'or' them together -- this is not specific to Java, you'd probably do the same in any language [09:54]
[rg] or right, bitwise operators! [09:55]
[rg] was thinking of pointers [09:55]
[rg] and casts [09:55]
[rg] s/or/oh [09:55]
n35xdxb0_ [n35xdxb0_!] has joined ##java [09:58]
Squarism Gah.. any used a distributed hazelcast cache to be used as hibernate 2nd level cache? [10:01]
Squarism idk what im doing wrong but when i start 2 nodes, changes i do in the database get reflected immediatly [10:03]
[rg] parted the channel: [10:03]
Squarism for one single entity that is [10:09]
firewyre [firewyre!] has joined ##java [10:28]
t2mkn [t2mkn!~t2mkn@] has joined ##java [10:35]
[rg] [[rg]!] has joined ##java [10:51]
[rg] is anything legal on the null part of a java array? [10:52]
forgottenone [forgottenone!~forgotten@] has joined ##java [11:07]
row3233 [row3233!row3233@gateway/vpn/privateinternetaccess/row3233] has joined ##java [11:10]
row3233 I want to use a dictionary of two strings...Can a hashtable in java let me do this? [11:11]
tassee [tassee!] has joined ##java [11:15]
zeden [zeden!~user@unaffiliated/zeden] has joined ##java [11:15]
mike802 [mike802!~IceChat9@unaffiliated/mike802] has joined ##java [11:17]
mike802 watch ya selves fools, i is here [11:17]
[rg] parted the channel: [11:25]
dino82 [dino82!~deeno@unaffiliated/dino82] has joined ##java [11:29]
jesse1010 [jesse1010!] has joined ##java [11:46]
jesse1010 what is the most common web stack with java as the backend? [11:46]
immibis [immibis!] has joined ##java [11:53]
th0bse [th0bse!~th0bse@2001:7c7:2055:13c:f4b9:b11:b554:c473] has joined ##java [11:56]