Recent Posts

vbochenin's Avatar'

Accidental logforging

Problem we faced with A few days ago, my mentee asked me why he can’t see some log messages in the console. He was asked to add logging for incoming JMS message body to investigate issue we have during its processing. The code in JMS messages consumer looks like this: public void onMessage(TextMessage message) throws JMSException { log.info("Going to process message with id: {}&...

Problem we faced with A few days ago, my mentee asked me why he can’t see some log messages in the console. He was asked to add logging for incoming JMS message body to investigate issue we have during its processing. The code in JMS messages consumer looks like this: public void onMessage(T...

vbochenin's Avatar'

Using filesystem as artifact's repository

What a task I want to solve We’ve got a library from another company, but we’re only allowed to use it in certain projects for reasons known only to the manager. Basically, we don’t even have the option to publish it to the artifact’s repository. Also, some of our projects use Maven; others use Gradle to build. As a result, we need to have an unified way to store the libraries along with our ...

What a task I want to solve We’ve got a library from another company, but we’re only allowed to use it in certain projects for reasons known only to the manager. Basically, we don’t even have the option to publish it to the artifact’s repository. Also, some of our projects use Maven; others use ...

vbochenin's Avatar'

Java 17 migration: bias locks regression

What issue do I need to solve We are about to switch from java 11 to java 17 finally, but a few performance tests failed and failed dramatically with around 50% of regression. It was 6 seconds in java 11 vs. 9 seconds in java 17 in absolute number in some tests. And this happens just by switching runtime. So I’ve got to investigate why the tests failed and fix the issue. What I did to get so...

What issue do I need to solve We are about to switch from java 11 to java 17 finally, but a few performance tests failed and failed dramatically with around 50% of regression. It was 6 seconds in java 11 vs. 9 seconds in java 17 in absolute number in some tests. And this happens just by switchin...

vbochenin's Avatar'

3 ways to know used memory

What task I would like to solve Recently, I was trying to find out how much memory an application uses during a particular operation. The operation I want to measure is the creation of data snapshots. The application stores a sequence of operations on objects and periodically creates object snapshots. So if we want to know the object’s state at a given point in time, we don’t replay all the op...

What task I would like to solve Recently, I was trying to find out how much memory an application uses during a particular operation. The operation I want to measure is the creation of data snapshots. The application stores a sequence of operations on objects and periodically creates object snaps...

vbochenin's Avatar'

How to change already written code: Aspects

What an issue I’m trying to solve Now I’m trying to solve a general problem. We have a lot of idempotent methods, methods that have no side effects and return the same result for the same arguments. In addition, we have some methods that read data from somewhere else, but the data is rarely changed. We can, and do, use caching to improve response time in this case. The problem is that all the...

What an issue I’m trying to solve Now I’m trying to solve a general problem. We have a lot of idempotent methods, methods that have no side effects and return the same result for the same arguments. In addition, we have some methods that read data from somewhere else, but the data is rarely chang...