Posts

Mongo - Custom pessimistic locking mechanism

Problem:Having one thread updating a document at a time.
Solution:Lock manager:


, lock implementation:


, how to:
1) check if the document is locked
2) acquire the lock
3) release the lock


Logstash - logstash.runner, An unexpected error occurred! does not exist, and I failed trying to create it

Problem: [FATAL][logstash.runner          ] An unexpected error occurred! {:error=>#<ArgumentError: Path "<path>" does not exist, and I failed trying to create it
Solution: chmod -R 755 <path>
or,
chmod -R 755 <path>/..

spring @async causing BeanCurrentlyInCreationException

Problem: Caused by: org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name '<bean name>': Bean with name '<bean name>' has been injected into other beans [<some other bean name>] in its raw version as part of a circular reference, but has eventually been wrapped. This means that said other beans do not use the final version of the bean. This is often the result of over-eager type matching - consider using 'getBeanNamesOfType' with the 'allowEagerInit' flag turned off, for example.

Solution: Autowire the beans by bean id

@Autowired
@Qualifier("<bean name>")
private <bean type> <var name>;

, for example

@Autowired
@Qualifier("publisher")
private Publisher publisher;





Linux - Grep, escape back slash characters

Problem: Execute 'grep' in order to match with: \"123456789\"
Solution: grep '\\\"123456789\\\"' <filename>

Hibernate - Exception "node to traverse cannot be null"

Problem:Hibernate exception "java.lang.IllegalArgumentException: node to traverse cannot be null"
Query query = session.createQuery("delete " +
"(...) " +
"where map_material.id > map_material_1.id " +
" and map_material.map_key = map_material_1.map_key " +
"(...) "
Solution:Make sure to use hibernate "createSQLQuery" method
Query query = session.createSQLQuery("delete " +
"(...) " +
"where map_material.id > map_material_1.id " +
"and map_material.map_key = map_material_1.map_key " +
"(...) "

Java - Transform string list into list

Problem:Transform a list of strings into a single string. One solution is to iterate over the list and append its contents. Remember that StringBuilder's append is much faster than Strings concatenation.

Solution:A better solution is relying on Java StringJoiner


, or with Java 8