Saturday, 24 March 2018

Log4j not printing the stacktrace for exception

I've noticed interesting behavior in the server logs on jdk 8. There was an exception without stack trace. After small research I have found that hotspot may apply some optimization to exceptions that are thrown too frequent, it simply trim stack trace) So I scrolled to the first occurrences of the exception and found my stack trace. Here is oracle docs describing it:

and you can disable it with -XX:-OmitStackTraceInFastThrow

Sunday, 17 September 2017

Spring 5 and HSQLDB sample app

Recently I have played a bit with Spring 5 and embedded database HSQLDB. It is very not usual for me to create Spring app even without single xml. Also I used cool library called Lombok it provides auto getter/setter generation.

What was interesting for me that spring-boot auto configure for you following features: mvc, transactions, json serialization, jpa, tests. It has even embedded tomcat)

Here is my github repository

Thursday, 15 June 2017

A different object with the same identifier value was already associated with the session

Hibernate Error: org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session

What is the reason of such exception?

Session already contains object that you are trying to put there one more time  with such identifier (for example with update). It also could be many-to-one  or one-to-many relationship object or cascading operation.

How to deal with it?

  • probably you already called update() for this object, and trying do this 2nd time
  • another possible reason you making copy of the object that is already associated with session (has assigned id and was loaded recently) and trying to update it
  • try session.merge() - it will copy the state of the given object into the persistent object with the same identifier.
  • try session.evict(object) - remove this instance from the session cache.

Sunday, 11 June 2017

Domain Driven Design in Java

I think most enterprise java world is suffering  from Anemic Domain Model. One of the ways that can help you is DDD. I've started researching DDD area, and I've found couple of good books and sources for them:

Implementing Domain-Driven Design by Vaughn Vernon (I think it is good to start book)

and source code is here :

And one more book called Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans 

and source code is here:

Monday, 13 March 2017

Free Java hosting options and Heroku tomcat deployment

I wanted to write some java app that would communicate with 3rd party API. The main problem there was that this API requires https connection. So I needed free java hosting to test my concept.

I will describe my short research about free java hosting proposals. And will describe shortly Heroku quick start.