Hi,

I got the reason why the case is happened through the Jconsole log blow.

The thing is that unfortunately my project has referenced
hibernate-validator for entity validation until latest version updated. I
don't know exactly why there is no problem before the version, but after
that it is replaced apache bval library, the thread lock never appeared now.

I am not sure what am I doing with right approach but I just want to share
this case to you all syncoper.

Thanks a lot always.

BR



------- related logs

Stack trace:
java.util.HashMap.hash(Unknown Source)
java.util.HashMap.containsKey(Unknown Source)
org.hibernate.validator.internal.util.TypeHelper.
normalize(TypeHelper.java:611)
org.hibernate.validator.internal.util.TypeHelper.
getActualTypeArgumentsByParameter(TypeHelper.java:555)
org.hibernate.validator.internal.util.TypeHelper.resolveTypeVariables(
TypeHelper.java:540)
org.hibernate.validator.internal.util.TypeHelper.getResolvedInterfaces(
TypeHelper.java:284)
org.hibernate.validator.internal.util.TypeHelper.
isSuperAssignable(TypeHelper.java:492)
org.hibernate.validator.internal.util.TypeHelper.
isParameterizedTypeAssignable(TypeHelper.java:432)
org.hibernate.validator.internal.util.TypeHelper.
isAssignable(TypeHelper.java:116)
org.hibernate.validator.internal.engine.constraintvalidation.
ConstraintValidatorManager.findSuitableValidatorTypes(
ConstraintValidatorManager.java:251)
org.hibernate.validator.internal.engine.constraintvalidation.
ConstraintValidatorManager.findMatchingValidatorClass(
ConstraintValidatorManager.java:227)
org.hibernate.validator.internal.engine.constraintvalidation.
ConstraintValidatorManager.getInitializedValidator(
ConstraintValidatorManager.java:118)
org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.
getConstraintValidatorNoUnwrapping(ConstraintTree.java:303)
org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.
getConstraintValidatorInstanceForAutomaticUnwrapping(
ConstraintTree.java:244)
org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.
getInitializedConstraintValidator(ConstraintTree.java:163)
org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.
validateConstraints(ConstraintTree.java:116)
org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.
validateConstraints(ConstraintTree.java:87)
org.hibernate.validator.internal.metadata.core.MetaConstraint.
validateConstraint(MetaConstraint.java:73)
org.hibernate.validator.internal.engine.ValidatorImpl.
validateMetaConstraint(ValidatorImpl.java:592)
org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraint(
ValidatorImpl.java:555)
org.hibernate.validator.internal.engine.ValidatorImpl.
validateConstraintsForDefaultGroup(ValidatorImpl.java:490)
org.hibernate.validator.internal.engine.ValidatorImpl.
validateConstraintsForCurrentGroup(ValidatorImpl.java:454)
org.hibernate.validator.internal.engine.ValidatorImpl.validateInContext(
ValidatorImpl.java:406)
org.hibernate.validator.internal.engine.ValidatorImpl.
validateCascadedConstraint(ValidatorImpl.java:770)
org.hibernate.validator.internal.engine.ValidatorImpl.
validateCascadedConstraints(ValidatorImpl.java:656)
org.hibernate.validator.internal.engine.ValidatorImpl.validateInContext(
ValidatorImpl.java:415)
org.hibernate.validator.internal.engine.ValidatorImpl.
validate(ValidatorImpl.java:204)
org.springframework.validation.beanvalidation.SpringValidatorAdapter.
validate(SpringValidatorAdapter.java:253)
org.apache.syncope.core.persistence.jpa.validation.entity.
EntityValidationListener.validate(EntityValidationListener.java:52)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
org.apache.openjpa.event.BeanLifecycleCallbacks.makeCallback(
BeanLifecycleCallbacks.java:85)
org.apache.openjpa.persistence.PersistenceListenerAdapter.makeCallback(
PersistenceListenerAdapter.java:71)
org.apache.openjpa.persistence.PersistenceListenerAdapter.beforePersist(
PersistenceListenerAdapter.java:85)
org.apache.openjpa.event.LifecycleEventManager.fireEvent(
LifecycleEventManager.java:404)
org.apache.openjpa.event.LifecycleEventManager.fireEvent(
LifecycleEventManager.java:308)
- locked org.apache.openjpa.event.LifecycleEventManager@a72decf
org.apache.openjpa.kernel.BrokerImpl.fireLifecycleEvent(BrokerImpl.java:814)
org.apache.openjpa.kernel.VersionAttachStrategy.attach(
VersionAttachStrategy.java:140)
org.apache.openjpa.kernel.AttachManager.attach(AttachManager.java:252)
org.apache.openjpa.kernel.AttachManager.attach(AttachManager.java:105)
org.apache.openjpa.kernel.BrokerImpl.attach(BrokerImpl.java:3508)
org.apache.openjpa.kernel.DelegatingBroker.attach(
DelegatingBroker.java:1213)
org.apache.openjpa.persistence.EntityManagerImpl.
merge(EntityManagerImpl.java:877)
org.apache.syncope.core.persistence.jpa.dao.AbstractAnyDAO.save(
AbstractAnyDAO.java:543)
org.apache.syncope.core.persistence.jpa.dao.JPAUserDAO.save(JPAUserDAO.
java:437)





2017. 7. 17. 오후 3:36에 "Francesco Chicchiriccò" <[email protected]>님이 작성:

> Hi,
> I guess I'll need at least
>
> * the source code of 
> kr.keum.im.core.persistence.jpa.content.StandardAccountLoader
>
> * some context about what you are attempting to achieve
>
> to interpret the logs and be any useful.
>
> Regards.
>
> On 17/07/2017 05:09, Changseok Keum wrote:
>
> Hi
>
> I added codes and logs blow.
>
> Thanks for your kind.
>
>
> BR
>
>
> code :
>
>
>
>  @Autowired
>  private UserDAO    userDAO;
>
> ..
>
> ...
>
>   LOG.debug("call userDAO.save() with param : {}", user);
>    LOG.debug("- username : {}", user.getUsername());
>    LOG.debug("- password : {}", user.getPassword());
>    LOG.debug("- role : {}", user.getRoles());
>    for (UPlainAttr attr : user.getPlainAttrs()) {
>     LOG.debug("- plainAttrs schema : {}", attr.getSchema());
>     LOG.debug("- plainAttrs value : {}", attr.getValuesAsStrings());
>    }
>
>
>    account = userDAO.save(user);  <------ After this code, not go ahead
>    LOG.debug("return saved account : {}", account);  <--- can not be
> called.
> ...
>
> ..
>
>
>
> related log :
>
>
>
> 11:41:00.520 [main] DEBUG kr.keum.im.core.persistence.jp
> a.content.StandardAccountLoader - call userDAO.save() with param :
> JPAUser[null]
> 11:41:00.520 [main] DEBUG kr.keum.im.core.persistence.jp
> a.content.StandardAccountLoader - - username : master
> 11:41:00.520 [main] DEBUG kr.keum.im.core.persistence.jp
> a.content.StandardAccountLoader - - password :
> 2B29260C62D57F9CC3D497F8A29FC1F4C5823BCD2A4B4BA8368531F93814
> D1F1CD6849E7CC7C22BCAFEE0505B552A3137FF3DAAA5C488811372EBB6BBFED696A
> 11:41:00.520 [main] DEBUG kr.keum.im.core.persistence.jp
> a.content.StandardAccountLoader - - role : [JPARole[MASTER_ADMIN]]
> 11:41:00.520 [main] DEBUG kr.keum.im.core.persistence.jp
> a.content.StandardAccountLoader - - plainAttrs schema :
> JPAPlainSchema[email]
> 11:41:00.520 [main] DEBUG kr.keum.im.core.core.persisten
> ce.jpa.content.StandardAccountLoader - - plainAttrs value : [
> [email protected]]
> 39286  Master  TRACE  [main] openjpa.DataCache - Cache miss while looking
> up key "".
> 39286  Master  TRACE  [main] openjpa.jdbc.SQLDiag -
> getInitializeStateResult: oid= class org.apache.syncope.core.persis
> tence.jpa.entity.user.JPAUser
> 39286  Master  TRACE  [main] openjpa.jdbc.SQLDiag - Eager relations:
> [org.apache.syncope.core.persistence.jpa.entity.resource.
> JPAExternalResource.accountPolicy, org.apache.syncope.core.persis
> tence.jpa.entity.resource.JPAExternalResource.connector,
> org.apache.syncope.core.persistence.jpa.entity.JPARealm.accountPolicy,
> org.apache.syncope.core.persistence.jpa.entity.JPARealm.passwordPolicy,
> org.apache.syncope.core.persistence.jpa.entity.resource.
> JPAExternalResource.passwordPolicy, org.apache.syncope.core.persis
> tence.jpa.entity.resource.JPAExternalResource.pullPolicy,
> org.apache.syncope.core.persistence.jpa.entity.JPARealm.parent,
> org.apache.syncope.core.persistence.jpa.entity.user.JPAUser.resources,
> org.apache.syncope.core.persistence.jpa.entity.user.JPAUser.securityQuestion,
> org.apache.syncope.core.persistence.jpa.entity.AbstractAny.realm]
> 39286  Master  TRACE  [main] openjpa.jdbc.SQL - <t 63178138, conn
> 980801953> executing prepstmnt 929278717
> SELECT t0.creationDate, t0.creator, t0.lastChangeDate, t0.lastModifier,
> t1.id,
>         t2.id, t2.description, t2.maxAuthenticationAttempts,
>         t2.propagateSuspension, t1.name, t3.id, t3.ACCOUNTPOLICY_ID,
> t3.name,
>         t3.PASSWORDPOLICY_ID, t4.id, t4.description,
> t4.allowNullPassword,
>         t4.historyLength, t0.status, t0.workflowId, t0.changePwdDate,
>         t0.cipherAlgorithm, t0.failedLogins, t0.lastLoginDate,
>         t0.lastRecertification, t0.lastRecertificator,
> t0.mustChangePassword,
>         t0.password, t0.securityAnswer, t5.id, t5.content, t0.suspended,
>         t0.token, t0.tokenExpireTime, t0.username, t6.user_id, t7.id,
> t8.id,
>         t8.description, t8.maxAuthenticationAttempts,
> t8.propagateSuspension,
>         t9.id, t9.bundleName, t9.connRequestTimeout, t9.connectorName,
>         t9.displayName, t9.location, t9.maxIdle, t9.maxObjects,
> t9.maxWait,
>         t9.minEvictableIdleTimeMillis, t9.minIdle, t9.version,
>         t7.createTraceLevel, t7.deleteTraceLevel,
> t7.enforceMandatoryCondition,
>         t7.overrideCapabilities, t10.id, t10.description,
>         t10.allowNullPassword, t10.historyLength, t7.propagationPriority,
>         t7.provisioningTraceLevel, t11.id, t11.description,
>         t7.randomPwdIfNotProvided, t7.updateTraceLevel
>     FROM SyncopeUser t0 LEFT OUTER JOIN Realm t1 ON t0.REALM_ID = t1.id LEFT
> OUTER
>         JOIN SecurityQuestion t5 ON t0.SECURITYQUESTION_ID = t5.id LEFT
> OUTER
>         JOIN SyncopeUser_ExternalResource t6 ON t0.id = t6.user_id LEFT
> OUTER
>         JOIN AccountPolicy t2 ON t1.ACCOUNTPOLICY_ID = t2.id LEFT OUTER
> JOIN
>         Realm t3 ON t1.PARENT_ID = t3.id LEFT OUTER JOIN PasswordPolicy
> t4 ON
>         t1.PASSWORDPOLICY_ID = t4.id LEFT OUTER JOIN ExternalResource t7
> ON
>         t6.resource_id = t7.id LEFT OUTER JOIN AccountPolicy t8 ON
>         t7.ACCOUNTPOLICY_ID = t8.id LEFT OUTER JOIN ConnInstance t9 ON
>         t7.CONNECTOR_ID = t9.id LEFT OUTER JOIN PasswordPolicy t10 ON
>         t7.PASSWORDPOLICY_ID = t10.id LEFT OUTER JOIN PullPolicy t11 ON
>         t7.PULLPOLICY_ID = t11.id
>     WHERE t0.id = ?
>     ORDER BY t6.user_id ASC
> [params=(String) ]
> 39291  Master  TRACE  [main] openjpa.jdbc.SQL - <t 63178138, conn
> 980801953> [5 ms] spent
> 39382  Master  TRACE  [main] openjpa.Runtime - Found datasource1:
> datasource 41260873 from configuration. StoreContext: org.apache.
> openjpa.kernel.BrokerImpl@261c5d1f
> 39382  Master  TRACE  [main] openjpa.Runtime -
> org.apache.openjpa.persistence.EntityManagerFactoryImpl@fbe70d8 created
> EntityManager org.apache.openjpa.persistence.EntityManagerImpl@261c5d1f.
> 39382  Master  TRACE  [main] openjpa.DataCache - Cache hit while looking
> up key "USER".
> 39382  Master  TRACE  [main] openjpa.DataCache - Cache hit while looking
> up key "BaseUser".
> 39382  Master  TRACE  [main] openjpa.DataCache - Cache hit while looking
> up key "email".
> 39382  Master  TRACE  [main] openjpa.DataCache - Cache hit while looking
> up key "USER".
> 39382  Master  TRACE  [main] openjpa.jdbc.SQLDiag - load: class
> org.apache.syncope.core.persistence.jpa.entity.JPAAnyType oid: USER
> 39382  Master  TRACE  [main] openjpa.jdbc.SQLDiag - Eager relations:
> [org.apache.syncope.core.persistence.jpa.entity.JPAAnyType.classes]
> 39382  Master  TRACE  [main] openjpa.jdbc.SQL - <t 63178138, conn
> 716294057> executing prepstmnt 1084093309
> SELECT t0.kind, t1.anyType_id, t2.id
>     FROM AnyType t0 LEFT OUTER JOIN AnyType_AnyTypeClass t1 ON t0.id =
>         t1.anyType_id LEFT OUTER JOIN AnyTypeClass t2 ON
> t1.anyTypeClass_id =
>         t2.id
>     WHERE t0.id = ?
>     ORDER BY t1.anyType_id ASC
> [params=(String) USER]
> 39382  Master  TRACE  [main] openjpa.jdbc.SQL - <t 63178138, conn
> 716294057> [0 ms] spent
> 39382  Master  TRACE  [main] openjpa.jdbc.SQLDiag - Loading eager toMany:
> classes for org.apache.syncope.core.persistence.jpa.entity.JPAAnyType
> 39382  Master  TRACE  [main] openjpa.jdbc.JDBC - <t 63178138, conn
> 716294057> [0 ms] close
> 39382  Master  TRACE  [main] openjpa.DataCache - Cache hit while looking
> up key "USER".
> 39382  Master  TRACE  [main] openjpa.Runtime -
> [email protected]() invoked.
> 11:41:26.337 [HikariPool-1 housekeeper] DEBUG
> com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Pool stats (total=11,
> active=1, idle=10, waiting=0)
> 11:41:56.339 [HikariPool-1 housekeeper] DEBUG
> com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Pool stats (total=11,
> active=1, idle=10, waiting=0)
>
>
> referenced library :
>
> refer attachment
>
>
> 2017. 7. 14. 오후 8:44에 "Changseok Keum" <[email protected]>님이 작성:
>
> Of course, I will send codes and logs after weekend.
>
> Thanks a lot.
>
> 2017. 7. 14. 오후 8:31에 "Francesco Chicchiriccò" <[email protected]>님이
> 작성:
>
> On 14/07/2017 13:23, Changseok Keum wrote:
>>
>>> Hi,
>>>
>>> I recently updated the syncope version to 2.0.4 released with views.xml
>>> and indexes.xml referenced by guide.
>>>
>>>
>>> As testing, EntityManager.merge() not doing anything, no error log when
>>> userDAO.save() called with parameterized user added with some
>>> plainAttributes. (without plainAttributes, there is no problem.)
>>>
>>> The same codes works well before the version 2.0.3.
>>> I think I did something wrong with updating, but I can not proceed with
>>> debugging inside EntityManager merge function so it is hard to find the
>>> reason.
>>>
>>> Could you please give me some advice to solve this situations?
>>>
>>
>> Hi,
>> can you share your code? Or some logs?
>>
>> Regards.
>
> --
> Francesco Chicchiriccò
>
> Tirasa - Open Source Excellencehttp://www.tirasa.net/
>
> Member at The Apache Software Foundation
> Syncope, Cocoon, Olingo, CXF, OpenJPA, 
> PonyMailhttp://home.apache.org/~ilgrosso/
>
>

Reply via email to