users@glassfish.java.net

Re: Suppressing org.eclipse.persistence.exceptions.DatabaseException from apearing in server.log

From: Mitesh Meswani <mitesh.meswani_at_oracle.com>
Date: Sun, 08 May 2011 23:08:05 -0700

Add following in your persistence.xml to stop the logging

<property name="eclipselink.logging.exceptions" value="true"/>

On 5/8/2011 3:25 AM, forums_at_java.net wrote:
> Hi,
>
> I have a unique key constraint in a table. Upon its violation, that gets
> logged like this:
>
> WARNING: Local Exception Stack: Exception [EclipseLink-4002] (Eclipse
> Persistence Services - 2.2.0.v20110202-r8913):
> org.eclipse.persistence.exceptions.DatabaseException Internal Exception:
> com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:
>
> Duplicate entry 'ff' for key 'languages_ux_name' Error Code: 1062 Call:
> INSERT INTO languages (NAME, updated_at, updated_by) VALUES (?, ?, ?)
> bind =>
> [3 parameters bound] Query: InsertObjectQuery(pkg.Language[ id=null ]) at
> org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:324)
>
> at
> org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeDirectNoSelect(DatabaseAccessor.java:798)
>
> at
> org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeNoSelect(DatabaseAccessor.java:864)
>
> at
> org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:583)
>
> at
> org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:526)
>
> at
> org.eclipse.persistence.internal.sessions.AbstractSession.basicExecuteCall(AbstractSession.java:1729)
>
> at
> org.eclipse.persistence.sessions.server.ClientSession.executeCall(ClientSession.java:234)
>
> at
> org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:207)
>
> at
> org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:193)
>
> at
> org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.insertObject(DatasourceCallQueryMechanism.java:342)
>
> at
> org.eclipse.persistence.internal.queries.StatementQueryMechanism.insertObject(StatementQueryMechanism.java:162)
>
> at
> org.eclipse.persistence.internal.queries.StatementQueryMechanism.insertObject(StatementQueryMechanism.java:177)
>
> at
> org.eclipse.persistence.internal.queries.DatabaseQueryMechanism.insertObjectForWrite(DatabaseQueryMechanism.java:469)
>
> at
> org.eclipse.persistence.queries.InsertObjectQuery.executeCommit(InsertObjectQuery.java:80)
>
> at
> org.eclipse.persistence.queries.InsertObjectQuery.executeCommitWithChangeSet(InsertObjectQuery.java:90)
>
> at
> org.eclipse.persistence.internal.queries.DatabaseQueryMechanism.executeWriteWithChangeSet(DatabaseQueryMechanism.java:291)
>
> at
> org.eclipse.persistence.queries.WriteObjectQuery.executeDatabaseQuery(WriteObjectQuery.java:58)
>
> at
> org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:808)
>
> at
> org.eclipse.persistence.queries.DatabaseQuery.executeInUnitOfWork(DatabaseQuery.java:711)
>
> at
> org.eclipse.persistence.queries.ObjectLevelModifyQuery.executeInUnitOfWorkObjectLevelModifyQuery(ObjectLevelModifyQuery.java:108)
>
> at
> org.eclipse.persistence.queries.ObjectLevelModifyQuery.executeInUnitOfWork(ObjectLevelModifyQuery.java:85)
>
> at
> org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2842)
>
> at
> org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1521)
>
> at
> org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1503)
>
> at
> org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1463)
>
> at
> org.eclipse.persistence.internal.sessions.CommitManager.commitNewObjectsForClassWithChangeSet(CommitManager.java:224)
>
> at
> org.eclipse.persistence.internal.sessions.CommitManager.commitAllObjectsWithChangeSet(CommitManager.java:123)
>
> at
> org.eclipse.persistence.internal.sessions.AbstractSession.writeAllObjectsWithChangeSet(AbstractSession.java:3766)
>
> at
> org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.commitToDatabase(UnitOfWorkImpl.java:1404)
>
> at
> org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork.commitToDatabase(RepeatableWriteUnitOfWork.java:616)
>
> at
> org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.commitToDatabaseWithPreBuiltChangeSet(UnitOfWorkImpl.java:1552)
>
> at
> org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork.writeChanges(RepeatableWriteUnitOfWork.java:427)
>
> at
> org.eclipse.persistence.internal.jpa.EntityManagerImpl.flush(EntityManagerImpl.java:744)
>
> at
> com.sun.enterprise.container.common.impl.EntityManagerWrapper.flush(EntityManagerWrapper.java:418)
>
> ...
> Is there any possibility to suppress this info in the log, as I'm already
> catching the exception on flushing an entity manager?
>
> I tried to declare three application exceptions in ejb-jar.xml:
>
> ... <assembly-descriptor> <application-exception>
> <exception-class>javax.persistence.PersistenException</exception-class> <!--
>
> <exception-class>org.eclipse.persistence.exceptions.DatabaseException</exception-class>-->
>
> <!--
> <exception-class>com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException</exception-class>-->
>
> </application-exception> </assembly-descriptor> ...
> but vainly.
>
>
> --
>
> [Message sent by forum member 'ytx']
>
> View Post: http://forums.java.net/node/800008
>
>