from my work as a developer
Posts tagged bug fixing
after big bang
Jul 7th
As you probably noticed, I wrote nothing for four/five days. The explanation is simple – we – Warsaw JUG – organized the largest free-of-charge conference about Java in Poland – Javarsovia 2009! It was one-day conference, but we had three parallel tracks with tech-talks and one additional track for workshop. 16 speakers talked about Java and JVM related technologies. We also had afterparty to had opportunity to talk about non-technical topics. That’s how you get new friends
Yesterday I had very short workday, I just dispatched some bugs to other team members – right now I’m the “very important person” in the project
Today, I’ve introduced new team members in the project code base. I’m planning also some pare-programing to introduce them deeply into the code. It’s a waste of time, you can say , but that’s the best option to learn “rookies” how the project is going.
And I still the first with largest solved bug number!

borring day
Jul 2nd
Yeah, it was very boring day, I finished solving the bug from previous day, added additional test and closed the issue, nothing special. I was also checking logs to find something interesting, I mean, some unusual bug. Nothing, just some common problems with timeouts and performance
So, I ran coverage report and started preparing some issues that have to be solved quickly, especially additional tests and code clean-up. As we have new team members, I think it will be the best way to introduce them in to the project by assign some minor issues and tasks as write those additional tests to them. The best way to learned unknown project is prepare the tests for it.
I got free hand for that, so I’m planning to do this next week, when nobody is being pushing us to solve some important bugs.
hunting
Jul 1st
Today I got a new task – analyse thread dumps from test environment and try to find what was wrong ![]()
Yeah, easy job, but it was totally something new for me so I started looking around (with Google) how to do that. As we’re using the best Java Application Server and the best Java Virtual Machine, it was easy. I found a guideline how to prepare thread dump, what it contains, how to read messages and so on. And at the end there was statement which was so funny – jvm will inform you directly about deadlocks, thread chaining and so on, you don’t have to analyse each entry in the dump file
With new knowledge on my side, I discovered very fast that everything was ok, no deadlocks, no thread chaining, nothing interesting. The only thing was suspected – too many calls to cache library to spool object from memory to a hard disk. I must look on that deeply.
With no success, I started reading server logs, but it was so ineffective, so I opened cygwin console and wrote some small script to speed up the work. After few minutes I had all logs merged together and was able to search them with grep tool, few seconds later I found the first bug. All I have to do is to prepare a fix tomorrow!
super fast
Jun 30th
Today’s day was super fast, I spent whole day solving bugs and I closed most of them, nothing special, mostly some typos and misunderstands. And at least, I improved my statistics, I closed something about 5 bugs in one day. Till today I had been solving one bug per week! Impressive?
a day without hangover
Jun 26th
The wine testing experience was quit nice, I learned a lot about a wine and how to drink it, how to feel all the best. You don’t have to love it, but there is magic which can be introduce to your life, all is needed is to give it a chance.
Yeah, but today I had to forgot about that and stick with a real world! I went back to refactoring I had started day before. When I dug deeply I discovered that I had to made another change. I did it, but that was the last. I just wanted commit the changes to repository so I started playing with tests. I had to solve some small mistakes (NullPointerException and ClassCastException
) and I was able to finish the work. I committed them all to the repository and went home – you know this pattern? Commit and Exit
The incoming weekend I will spend on UnConference in Gdansk, I’m looking forward for a great time!
the evolution
Jun 26th
Today I took a look on the internal framework. It isn’t a real framework, but rather a bunch of reusable classes. I’ve been looking around and discovered some classes made by an Architect from the Task Force. It was almost the same crappy code as we made, but was alder. So, it brought home to me, that he wasn’t a a perfect developer from beginning, he evolved and still evolves. He accepted his mistakes and was able to took over them, so I should do the same!
After lunch I started some simple refactoring to help my fellow to solve a bug. He changed some parts on his side and I did the same on my. And then I discovered that I’m not able to commit my changes to the repository. They will break the tests without changes introduced by him. The same was with him, he wasn’t able commit changes without my changes. The classic deadlock! He sent me his changes by e-mail and I implemented them on my local copy, but then the day was over. I went for a nice company event, we have been tasting the wines, so nice!
the beginning
Jun 24th
This is the first entry, hopefully out of many, the first step for on a long journey to become a better software developer, I have some experience, I’m not a rookie, but I want to keep improving my skills, to deal with my weaknesses and achieve developer’s haven (if it exists
Ok then, let start, what did I do today?
I spent the whole day fixing one small bug, NullPointerException, but to fix it, I also had to change the logic for some other parts of the application. Fortunately, we had some unit tests (not as many as it should be), but at least one of them was falling after my change. To correct it I had to spent the rest of the day on that. Right now, when a change is affecting more then one classes, I always start all the tests. It takes 30 minutes to finish them, but still less then time spent on solving bugs introduced by the change. I had to change many things and also learned something new about the application, I understand it better now. So, anyway, I will try to spend some time in the future to improve tests performance
After all I was able to commit the change to the repository which didn’t break anything and that was a success!
