
Foojay Podcast #52 from JCON in Cologne!
This is part 4 of the JCON interviews!
In this episode, we have 5 new guests for you.
- We start with garbage collectors and Intelligence Cloud, a tool created by Azul to find out which of your code is actually used in production and which dependencies are known to have vulnerabilities. My colleague Gerrit Grunwald was at JCON to give a talk about these subjects.
- With Balkrishna Rawool we dove into Virtual Threads, a very interesting topic as concurrency and threads can be challenging…
- Piotr Przybyl came to JCON to give a talk about Test Containers and how to test your application in an environment that is similar to your production environment. Another important topic related to testing is Flaky Tests. How do you handle tests that only fail from time to time and make your whole test report unreliable?
- François Martin had a talk about this subject, and he came to the conference together with Annelore Egger, who was one of the many volunteers.
Video
Podcast Apps
You can listen and subscribe to the Foojay Podcast on:
- Spotify
- Apple Podcasts
- And most others…
Content
00:37 Gerrit Grunwald: Talks about Garbage collectors, What is Intelligence Cloud and how can you find out which of your code is actually used in production and which dependencies are known to have vulnerabilities
https://www.linkedin.com/in/gerritgrunwald
09:55 Balkrishna Rawool: Talks about structured concurrency, virtual threads, what will come in the next Java releases
https://www.linkedin.com/in/balkrishnarawool
18:00 Piotr Przybyl: Talks about Test Containers, ToxiProxy, how to test your applications in an environment that is similar to your production environment.
https://www.linkedin.com/in/piotrprzybyl
29:23 François Martin: Volunteer JCON + Talks about Flaky Tests, how to handle waits in unit tests, how to do user interface tests, how to reproduce flaky tests.
https://www.linkedin.com/in/fran%C3%A7oismartin
38:09 Annelore Egger: Volunteer JCON + Visitor + the Java comm
Transcript
Automatically generated from the audio, so it can contain errors in names and technical terms. Suggest a correction.
[0:00] Welcome to the f j podcast all your news about OpenJDK welcome in part four of the jcon interviews in this episode I have five new guests for you and various topics like test containers toxy proxy virtual threats flaky tests and more but let’s first start with garbage collectors and intelligence Cloud a tool created by Azul to find out which of your code is actually being used in production and which depends Es are known to have vulnerabilities my colleague Garrett Grunwald was a jcon to give a talk about these subjects I’m gar Grunwald working with this guy right at aul at a and love coding loveing and you’re here as a speaker yes about the garbage collector we already mentioned it it’s something which is hidden for most people they are not even aware of it and which is a good thing which is a good thing because that means the JVM Developers a good job but still sometimes I think it’s good to have some basic knowledge about what’s going on in garbage collection I’m not a garbage collection expert not by far not but I just read into it and I’m find it’s it’s really interesting and I just
[1:18] Would like to share this stuff with people because for most of them it’s like oh I didn’t know and this is a that’s a good thing well I’ve been developing Java for over 10 years before I joined aul and one of my first assignments was write the blog post about the garbage collector and the fun thing is by working at the zul we can talk to people our colleagues who developed yeah some of these yes because there are many there are several garbage collectors available so it was my first published blog post for the aul website and a quite successful one and successful one but it took me some time because indeed there’s a lot knowledge there are a lot of different garbage collectors and then try to condense that into a block post into block post is quite a challenge it’s probably the same thing for your talk yeah so I started working on the talk last year September and it’s not done yet is it talk ever finished no not for me it’s because it’s like I mean the original version came with 270 slides for one hour for one hour which was not possible right so I had to strip down but for me it was it’s like how to
[2:33] Say that it’s like a notebook so if I go through the slides I put all the information that I find in there so that I can present it and then afterwards I have to condense it similar to the blog post and then figure out what can I leave out and what is the important thing the problem is you have to do it to learn what is really what works in a conference session and what doesn’t work so it’s always a challenge to do that but is as you said it’s so many things to cover and it’s so fascinating once you started looking into that it’s I mean I just scratched the surface but it’s as you mentioned when you talk with Gil for example which is oo who developed C4 which is the garbage collector inul crimee it’s it’s so fascinating when you talk with him you get so many insights it’s it’s it’s overflow right it’s information overflow you probably had the same experience but it’s it’s it’s fascinating once you get a basic understanding you at least understand what the people are talking about to be honest when I was younger and still already was a developer I never attended garbage collection sessions because it
[3:45] It was way over my head it was just so complex and if you don’t have the basic knowledge you can’t follow them because these people dig into all these details and you need the basic understanding to be part of that discussion and now I did this session I’m feeling prepared to be able to talk to Gil and understand what he’s talking about because otherwise he after a minute he’s just off and that’s that’s it’s fascinating I can just recommend taking a look at it I mean yeah you have this paper describing the C4 garbage collector that’s too heavy for me I have to admit yeah it’s really but to be honest I know I get it so I get how it works and it’s it’s really cool and if you think about that we did that more than 10 years ago already and zgc it’s which is more or less a copy of C4 right so they just came up with that now yeah so but we do that for already more than 10 years we did it in Hardware in the beginning so it’s really fascinating to see the history of this garbage collector and what it is able to do right it’s it’s really cool you are a developer advocate for
[4:56] Aul so that means that you’re never home you’re always speaking at J’s conferences it’s part of the job part of the job so you have several topics you talk about crack you talk about garbage collection about security about intelligence cloud in the future intelligence Cloud which is the product byul to find out what’s running within in your what’s your favorite topic or is that one for the next s so crack was one of my favorite topics because I just like the idea it’s simple it solves a problem the startup problem and it’s working right now right that’s why I really like it and you don’t have to step away from java like that you have to do with Native image right native image is also nice but it’s it’s different right it’s not Java anymore with the crack you stay in the Java area that’s what I like but now that I we came up with intelligence cloud in the beginning of this month and I was looking into code inventory which is one of the features besides the vulnerability detection and now I did that for the last 3 weeks getting a better understanding on how it works how the API works and all
[6:09] These built a demo for that and an application and I think this will be my next favorite thing to talk about so I don’t have a session yet but I will probably prepare one because it’s it’s quite cool so getting the ideas if we have the time shortly but the idea is to you have your application running in the cloud mhm and there are tools that tell you oh you have dependencies here you have dependencies there that means the IDE and these tools know exactly the dependencies of your classes to figure out what classes are never really or where you don’t have any dependencies but what is the stuff that you’ve wrote the code that you’ve wrote how do you know if it’s really used in production that might be easy if you start with something new but if you are working in a bank or insurance company and you have a code base that was written by people that are not even the company anymore and you still have to maintain it then it’s really interesting to see do we really need the code and usually what happens is ah I don’t know just let’s maintain it and just let’s keep it running yeah but if there would be a
[7:13] Tool that tells you know what this whole part you never called so you maybe just can get rid of it and that’s the idea one of the tools that we offer is this and that’s it’s quite fascinating to see so it can help also to decide we need to refactor this because it’s used a lot we can make it more performant that is this is I’m not sure if this will be part of it that’s what exactly my idea but I’m to be honest I don’t know if we will offer that but having something like this method was called 5,000 times this method was called 100 times would be great to know because then you know oh this method we should focus on refactoring I’m not sure if we will offer that right now I think right now not but that might come it’s still we are new stuff is coming the product right but it it’s a it’s a cool tool because it’s coming again from the jbm so the jbm tells the cloud what it’s working on and then this is the new thing because it’s not something that is coming from an outside tool but it’s it’s a jbm itself and that makes it interesting and that’s I think the main strong point of aul it’s a Java company
[8:23] So really focusing on everything happening in Java and the Java runtime has already this knowledge yes I have loaded all these classes and these are have been used and these have not been used and that’s what now being exposed with this tool yeah and then the good thing is that we figured that out when we started with the avd which was the vulnerability detection that in the beginning only worked in our own jbm right and we figured out that this is not a reason for companies to switch jbms so they always said oh this is really cool can we also use this tool on let’s say sap machine no you can’t but now we can because now we have an agent and it’s it’s not one of these fat agents that suck 30% of performance but it’s really tiny and really well performing so that you can hook it up to the jbm and get the information from the jbm without really have a drop in performance and then this one will tell the cloud about the usage data so it’s it’s quite interesting and it’s now also useful for all kinds of jbms yeah okay which is a nice thing and I know there’s great documentation available there
[9:33] Because yeah I know there’s some people in our company who’s writing the documentation together with Matt indeed we have been working a lot on this to expose what is all available in there okay one of the recent big changes in Java was the introduction of virtual threats with Bal Krishna rul I dove into this very interesting topic as concurrency and threats can be quite challenging my name is Bal Krishna Rahul I work for G and I’m really passionate about Java I’ve been using Java for 20 years now what brings me to Jon well I am a speaker here I’m talking about Su concurrency in Java that brings me here but mainly it’s the community everything around Java so yeah I really like being part of these conferences and that brings me here okay so you have a talk about concurrency uhhuh I think that’s one of the hard questions at every job interview if you want to be a high level Java programmer right what should I know yeah actually you triggered me so before I answer your question when you say that concurrency is like a hard question on job interviews that is
[10:43] Totally true what I also notice is that in Java you have these puzzlers right you have programs which seem really simple but then you have these outputs which are really strange and they baffle you that’s why they are called puzzlers when you use concurrency don’t have to do much to get puzzlers because everything that you write con is already a Puzzler so yeah so and those could be pretty tricky questions on interviews as well what was your question so what should I know about concurrency what are the Hot Topics nowadays virtual threats is that concurrency yes yes yes yeah well actually if you talk about concurrency it’s such a big or vast thing you have to know about a lot of stuff threads of course virtu threads nowadays but also EX uters Futures completable futures yeah there’s there is quite a lot of stuff if you want to talk you know bit more low level about locks and some of our monitors but there are really good books and one I think one is always referred the one from Brian GS and I think that’s really an awesome book to read so there’s a lot of stuff to be
[11:52] Understood about concurrency and my topic here was about structured concurrency which is based on Virtual threats so okay that’s also a Hot Topic which really good to know about and structured concurrency is that you can combine virtual threats or waits until one has finished or all has finished yeah so structure concurrency as a concept does not have really anything to do with virtual threads so in general it is about how you can have control of your concurrency so if you have multiple tasks and you want them to be arranged in a structure so you want to do them sequentially you want to do them parallel and how do you do that in your programs how do you bring that structure and order that is what stru concurrency is with Java now supporting virtual threads we don’t have that limitation of you know trying to manage your threads you know you don’t want to create too many threads so that is not there and therefore it gives you that Liberty that freedom to create threads in a way that can model your requirements or these requirements about you know sequential or parallel execution in a
[13:04] Much better way and that’s why such a concurrency is now na API built on top of virtual threads and that’s how it connects in Java those two things but in general I mean it is about basically a freedom to organize your concurrency needs in a more structured way and is this structured thing something new in Java is it only because it was introduced recently in Java yes so strictured concurrency API is very recently introduced in fact it is still a preview as of java 22 but as a concept it is like pretty old in Java it is new as I said right with the introduction of virtual threads now you have the freedom that you can create a new virtual thread for every task and then you can organize these tasks in a more structured and ordered way and that’s why it is recently been introduced as an as a preview API mhm it’s a preview it is in preview yeah will it be in 23 or do we don’t we know yet I don’t think we know that yet and I’m not sure even if the JDK team open J team working on it knows that because I think their idea right now is it is done when it is done so once it is done that they are
[14:16] Happy and satisfied with the version of the currency API they have they’ll make it final but as of now it is still still in preview so you’re actually presenting something which is a preview feature yes isn’t that a nice thing about Java nowadays that we have this ongoing work and it’s ready when it’s ready like you said because they are waiting for feedback from the community this is how we think you will use it now tell us how you’re actually using it are there still errors in there does it need to change further yeah so I think first of all it’s really amazing that we have this ability in Java with preview feat teachers that we can experiment with things we can give feedback to the OpenJDK team and they listen to that feedback and then they adapt those things so yeah that’s really an awesome thing talking about structured concurrency API which is in preview so it has gone through multiple revisions and I remember there was one thing which was recently changed so actually they listen to the feedback from the community and then they changed few things so we have an API called
[15:25] Structured doope and that has a method called four in the past I think in one of the early versions of such concurrency it returns it used to return a future right and then you could use that future you can block on it and do get so it gives you the actual result now it actually returns a new entity called as subtask and then you can basically play around with that subtask so they have changed that API and I think it is again because it is in preview you have that freedom to change that API and to make it better and that’s why I really like these preview features because it’s another thing right you as a Java Enthusiast something I’m PR passionate about I really see these new JPS coming new pre futes coming and I can’t wait to try them I try these Early Access version so I have 23 Early Access version with pre Futures enabled and I’m just playing with them it’s so awesome and also another example with string templates right I think also a good example that the PV features are working now because the teams are listening op teams are listening to the community and you can even go back and
[16:30] Then rethink about these API right so it’s an thing awesome awesome feature to have an awesome way to introduce new features for language and indeed 23 is not there yet but you can get Early Access versions so if you want to experiment with it I should not run it in production probably but no yeah well I think so what I read somewhere or I think I heard one of the leaders of open Jed team saying that previous features are already production ready you could use them in production but I work for a bank and I’m not sure if I would really want to use features in production mainly because the API can change right and then do you want to like if the API changes do you want to just know put yourself under time pressure to basically change all your apps and be ready for the next version of Jaa so that’s why I wouldn’t prefer preview to be used in production but I think yeah it’s you definitely can experiment with you can hack around with the API and it’s so awesome to see because you get like the latest Cutting Edge features already with Early Access and prev features but
[17:37] That indeed that’s that’s what people should be aware of the API can still change yes so it’s only when it’s finally provided in the JDK in the next build then it’s stable yes true yeah okay my next guest is p pble he came to jcon to give a talk about test containers and how you can test your application in an environment that is similar to your production environment I am p and what I’m doing is just I’m first I’m attending the conference and second I’m also giv a talk right so this is what I do I go to places and talk to people you have a special batch I want to show it you have a speaker batch you have a Java batch and a Star Trek batch explains well as I said I’m I’m a speaker here then what I’ve been doing here for whyde a few years is Java I mean Java is like let’s say my predominant technology and Star Trek well I watch Star Trek every now and then and that’s it right just for fun I mean because conferences are not only for like you know talking about hard stuff but also like a little bit of fun okay and you also Distributing chocolate yes why well I I’ve
[18:53] Picked it up from one of the other speakers right Nikola Frankel and now there are more speakers doing this it’s because like you know sharing is caring right you bring the suets from your country where you originate from and it just I mean we are not in Poland this time I mean I invite everyone to visit Poland we are going to have like two very nice conferences one will happening this week which is gecom and the next one in the month which is Devo Poland both in kraco so you can of course then enjoy polish Cuisine but today it’s impossible so I just bring a little bit of switch and that’s it I already had a few guests here who will depart this evening yes to come to Poland for the next conference yes I know I’m departing tomorrow so I know that will you have the same schedule yes yes your speaker what are you talking about so this time I’m talking about it’s going to be like bit more advanced than usual I’m talking about how people how we should be using test containers in a better way AKA it’s a like T containers if you don’t know it is a technology
[20:08] Library that allows you to run real dependencies for your tests not only tests but predominantly tests and then you enjoy it I mean you’ve been to a conference or to a workshop and you bring this technology this mindset basically that you test stuff with real stuff to your company to your team and fast forward 6 months everyone was copy pasting like crazy CI builds start to fail simply because there’s not enough money on the credit card and so on right and then you brought it you own it and you have to fix it right exactly and the thing is maybe the problem is not in computer maybe the problem is in the chair right basically maybe we haven’t been using test containers in the optimal way like taking it from the performance point of view right so the first example instead of starting all the containers I need for every test case right I just start them once and take care of resetting the state before the tests right and this is like the first crucial part and then there are other techniques tomorrow I’ll be showing my Secore and elastic search how
[21:19] You can use these containers more efficiently right basically reduce the duration of the build pipeline at least a few times m I I’m having a building a little pet project with a database website thing and I’m using locally an H2 memory database and in production a postgress database that’s the thing that I can fix with test containers right yes or I would say improve drastically improve yes exactly so instead of using an I mean I’m not trying to say that any kind of like mocks or spies or fake or test doubles or whatever are needed I use them a lot I still use them because I employ them as a fast failure grid detection Network right if something is going to break let’s figure it out quickly but then it doesn’t give you confidence that what you’re building is actually going to work right with the actual thing let’s take elastic s right if you mock it if you lock mock elastic search your test will pass very very fast fast like let’s say subc and everyone will be happy right until you decide to jump for example and you should have made this jump like long
[22:37] Long time ago from version seven to version eight and then the question is who is going to read the change log right between the version seven and version eight and reflect it in all the mocks right good luck doing this really that’s why it’s better I mean of course these tests are going to be somewhat slower that’s I mean this cannot be disputed right on the other hand they don’t have to take hours they can they don’t even have to take like quarters they can just take minutes but what they can give you is like great confidence that you’re testing against the actual thing and then like funny thing happened to my friend I mean funny we are sitting here so this is funny right but Kevin Kevin vitk the maintain of containers he’s he was trying to travel back with his family and they have a son he’s more or less one year old right and then the system the airline systems or airport systems weren’t quite Cooperative because this was an exception right so see with this approach that when you use like a real dependency you can also put that real data of course offcat look like no
[23:47] Personal information and stuff right but this can be like a you can take a snapshot from production make sure it’s office get it properly and then you use it right and then you’re testing not only against real dependency but also real data like what can be better than this I guess only production yeah and that’s what you want to do is testing in production and movie to testing somewhere else yeah the Americans call it shifting to the left shifting to the left yes so you replicate as much as possible your production environment even way back to your development machine if you want to Yes I mean one of the technology SL modules I like the most in this ecosystem around T containers is toxir proxy and if you haven’t heard about toxir proxy it’s I mean the name is quite self-explanatory it’s basically a proxy a network proxy and you can make it toxic which means for example you can introduce delays to your network you can introduce dropping packages you can introduce Jeter whatever right basically you can programmatically and in a deterministic way test how your system
[24:55] Behaves when networks go goes crazy and as we know from production eventually it can happen right so the whole idea is even this right so you don’t even go with like real dependencies with real data you can also have like for some cows engineering right this is by the way something I’ll be showing this week in K right at geekon how we can use this to see for example if you have implemented virtual threats from new Java correctly right okay good so a lot to learn about test containers I hope so well not only test containers right so it’s it’s also like Java it’s it’s elastic search and other stuff I saw your talk at JF or J spring I cannot remember with the new features of 21 I think it was at that time J spring this is where we’ met J spring yeah so you’re very energetic very fast but you can learn a lot well this is the problem where I which I have when I’m wearing this speakers hat right I would I mean it’s not a good word right but I would love to spread everything I know just to share everything I know and I’m always limited by 40 4 you have that
[26:12] Time yes exactly so it’s the problem and I annoy these people who love to then to watch YouTube videos let’s say times 1.5 right it might be challenging but then it’s like maybe maybe you have to slow down knowledge overload problem at that time yes but this is you see this is like what I love about this conference this is what I love about every other conference and our community right which is let’s not be afraid to admit that Java Centric right everyone was saying Java’s slow it’s dying I mean and maybe I mean Java 7 this time right it was true but now it’s accelerating it’s going faster and then I mean even if you to cover just what happened to Java standard library right within last year 12 months which is two releases I mean to go deeply within like regular conference slot is impossible yeah so it’s also like a I would say a sign a good sign of something positive right and then you scratch also other topics like like gr or things that come from ass with crack right for example that this is addressing the
[27:29] Issue that the thing is slowing starting really really slow and so on and it shows you like that companies like also doing their own garbage collectors and whatnot so it’s like great place to be in and great time to live in I would say I think the people who hate Java for being slow are stuck on Java eight I think they probably missed what happened in the last four or five years with all these Evolutions I think you might be right really and it’s like I have I mean even if I’m not talking about garbage collectors for example I use this example so you take your all application right it can be it can be just packed in a jar file created using Java 8 and then you deploy it on Modern GDK right and the so what happen since there we have compact strings we have new garbage collectors we have application CDs right and CDs in general you can go for example for crack for St fast startup types and so on and so on and this is you don’t even have to T touch the source code you don’t even touch the jar file right and now it seems that
[28:45] It’s like it scales out better right and everything the only thing you have to do is you have to switch for virtual threads manually in the code that has to happen right but apart from that just run it just run it just keep your just keep your docket files updated and that’s it right that’s it okay that’s a nice me message to conclude another important topic related to testing is flaky tests how do you handle tests which only fail from time to time and make your whole test report unreliable Fran Martin had a talk about this subject and he came to the conference together with anaura Edgar who was one of the many volunteers hello my name is fr Martin I’m here at Jon because I give you a talk and also I’m a volunteer so I help the people to get their badges registered and so on in the morning a lot of volunteers I’ve seen we already had a few of them here are you also involved in the ju or is it just here at the conference that you’re volunteering actually not yet but I was really considering it heavily I mean I also help organize the hacker Garden in Switzerland sometimes but you know apart from that not
[29:52] Really yet but you know it’s on my list definitely and you’re the speaker yeah what’s the topic so the topic is about flaky tests actually and I’m doing it with Brian the MS together with him and I have to say really you know looking at the preparations that we have done so far I’m really looking forward to the talk tomorrow because I feel like it will be really great feel like it was a good decision to do it together with someone else even though in the beginning of course it’s always a bit of a risk doing it together with someone else but you know it worked out really well and I feel like the you know the talk wouldn’t have been as good if I wouldn’t have done it if I would have done it by myself so what is the definition of a flacky test sometimes it fails sometimes it breaks yeah exactly so it’s essentially a test if you run it multiple times sometimes it fails and sometimes it passes so and why could be different reasons I guess yeah absolutely I mean you know we covered those in detail in our talk but you know one of the very common reasons is for example you know what I
[30:52] See people doing a lot is for example they wait for one second you know for example they click a button and then they wait for one second and then they you know see if something appears you know a success message or something like this and then test fails if the load is quite high on the system for example or on the load U of the build in a system and then the test fails and then if you run it locally or if you rerun it when there is less load on the build Runners then it’s you know it’s fine yeah exactly so that’s one of the very common reasons but there are many more reasons of course why this could happen is it a bad idea to have a wait in a test not necessarily but what you should do instead is wait for a certain action and you should have a timeout in it so for example you say you wait for the success message but you say for example you wait for a success message to appear and you have a timeout for example of 30 seconds so then it you know the test framework Waits until it appears and as soon as it appeared you know it will continue this has another advantage that
[31:53] Usually usually the tests are also faster if for example there is not that much load on the system because for example it could be that already in 200 milliseconds this is fulfilled so and then you’re still waiting one second if you’re waiting for a fixed interval so the example you give is a UI test yeah is it using some Library which is good to use in Java to do this or is this an integration test how do you set up such a system so in Java there is for example selenium which is quite a classic that you can use for this I mean with selenium you can do this as well where you can say you wait for something specifically but there are also many other Frameworks you can use that are not Java based you know for example like web driver IO or I mean even Cypress can do things like this or a lot of other tools playright is also a common one that gets used more and more now so yeah but selenium is like a classic that gets used quite a lot probably the most known to yeah absolutely so you’re here as a speaker but I guess you’re also doing some visiting some other talks yeah
[32:59] Absolutely did you pick them or is it just that random no I picked them so I looked at the schedule beforehand and you know I really chose a few topics that really interested me and I really would like to cover can you share a few of them what you’re looking forward to sure I mean what I’m looking forward to is a good question I don’t have it in my mind right now but I remember I visited just earlier a talk from Garett which was about garbage collectors and this was really interesting because I I’m not really up to dat on the you know on all of the types and this really helped me in a way and I also really enjoyed the talk by Merit which was about reading code which I feel like this skill is very important that it’s not talked about enough you know as she also said in her talk and I can really recommend this talk as well if somebody has the chance to see it but I have to look at my list of the talks then probably it will come into my mind again you know like ah okay sure yeah yeah I had Garrett here just before his talk ah interesting he was a bit wondering if it
[34:02] Would not be too heavy because there are a lot of garbage collector so there’s a lot of knowledge he wanted to share it was the first time he gave this specific talk any feedback yes sure I mean I gave him some feedback already earlier but I have to say you know I feel like it was very well done in a way that the slides were very well structured so there was a lot of information on there but it was written in a way way that is very easy to understand you know he put it like in a tabory way and they always used the same criteria and he put next to it you know for example when was it introduced when should you use it when should you not use it and I think this is a really handy reference when I need to for example choose which garbage collector to use then I can go through the slides and see which one you know fits best I didn’t fully understand all of the explanations around how the garbage collection collectors work themselves in detail but in most cases unless you’re debugging some strange garbage collection issues I think this will probably not be something that you need
[35:04] To really know about anyways I think and I said this before to few people more you have higher chance of finding an issue in your own code compared to the JDK to the runtime absolutely if something goes wrong it’s probably your own code absolutely almost falling for no problem Sor the JDK on as such is very stable but there are issues so it can happen indeed that you find a problem there but before you find a problem there probably need to look into your own code absolutely but it’s surprising me always I remember you know I was a lecturer for around two years and I remember we in one of the classes I was teaching Java effect and there for some reason we found a bug in Jo FX itself and I was totally surprised by that because as as you mentioned usually you don’t assume that the bug is yeah in whatever library or whatever you’re using and I was so surprised that even students you know that you especially students were able to find something and the nice thing is if you can report it and make it reproducible and that’s I think that’s that’s the biggest issue if you find a
[36:15] Book also in your own code yeah is how you do you make it reproducible yeah even add it to a test so that you know that you have fixed it that’s I think a nice challenge for every developer to be able to reproduce an error absolutely and I think this is also you know if we go back to the flaky tests thing this is also something that is very challenging with flaky tests you know if you have a flaky test usually it makes sense to reproduce it locally as well but sometimes that’s very difficult I remember when I worked for a different for a different company I had one of the projects where we had an issue where actually on one of the build Runners it was failing but locally it was running fine and we I tried to reproduce it as closely as I could I used the same doct containers everything and I couldn’t get to reproduce it and I was really stumped for a long time and then you know I had the idea of just sshing into the build Runner and then I ran it you know there and then I was able to debug it this way and this way I found that the issue was actually you know a concurrency issue where the
[37:22] Machine on the build Runner was not as fast or fast I’m not 100% sure something like that then our machines where it was running on which caused the test to fail and you also need to be able to reproduce it to be able to fix the flaky test in most cases I mean unless it’s something very simple like with the one second delay for example if you know that this is something that is very flaky then usually you don’t need to reproduce it but yeah this is also always something that’s very tricky especially if you have cases like this where it’s just about the infrastructure itself that is causing troubles we discussed it here before you should get your tests as close as possible to the build in the runtime environment like for instance with test containers MH can also help to avoid this kind of cases okay exactly my name is Anor eer I’m mostly here first of all because my f is a speaker so that’s why I you wanted to see it yes I’m always it’s the second time that I was here I am here so I really like Cheon last year as well and of course I’m a software developer so I like to learn new things about jaava
[38:34] And also to meet new people from the community MH you’re also a volunteer I see on your batch yes so you help with a conference yes is that important for you to be part of this community of people organizing Java events yes I think it’s important that there’s also always in there’s always a need for people that help so in general I find the community is important because like you can reach much more things if you work together and yeah like combine ideas M so events are very important and yeah so they run in order to make them run smoothly it’s important that to help you said you are a Java developer yes what technologies of java are you using so I used to work with spring and I will also work with spring again at my new job but in the meantime I worked more with more like like self-developed like Frameworks and yes I use I also worked already with Jaa 21 a bit but I’m not sure my so as a Java developer are you also following this Evolutions like you said Java 21 I know it depends on the company you works for if they want to migrate to newer versions is it out of
[40:26] Personal interest or was it already used at the company a bit of both so like the company switch to the new to Java 21 but I’m also interested so I also read some like blog posts or summaries on what the new features are and yes also like try to incorporate them and it makes sense mhm did you know Foojay a front I don’t think so we have some work to do we have to promote ourselves a bit more because yeah we try to bring the love for Java and all these new features to the community okay and introduce them that’s the end of part four of the Jacon interviews I have one more for you for next week with Simon Martinelli Nicholas Frankle Marcus hel work Rick oen dver and abdell sigar about SS Juke graphql API versioning vadin open reite error prone gateways proxies and even more see you next week give me a give me a j give me the friends of OpenJDK
Found a mistake, or something to add? Edit this page on GitHub







