JBoss EAP 6.4 с Hibernate - Скрыть конкретное исключение Oracle в файле журнала - PullRequest
0 голосов
/ 25 сентября 2018

Играя с PersistenceException -> SQLException -> getErrorCode(), я прячу конкретную ошибку Oracle в своем журнале.Проблема в том, что в моем server.log я все еще находил строки вроде:

WARN  25 Sep 2018 12:14:47,121 - id  - org.hibernate.engine.jdbc.spi.SqlExceptionHelper - ms 5829302 SQL Error: 13333, SQLState: 72000
ERROR 25 Sep 2018 12:14:47,121 - id  - org.hibernate.engine.jdbc.spi.SqlExceptionHelper - ms 5829302 ORA-13333: invalid LRS measure
ORA-06512: at "MDSYS.SDO_LRS", line 3149
ORA-06512: at line 1

, которые специально не зарегистрированы мной.

Вот мой код:

try {
 try {
  //business stuff
 } catch (PersistenceException persEx) {
  if (persEx.getCause() != null && persEx.getCause() instanceof GenericJDBCException) {
   GenericJDBCException jdbcEx = (GenericJDBCException) persEx.getCause();
   SQLException sqlEx = (SQLException) jdbcEx.getCause();
   if (sqlEx.getErrorCode() == 13333) {
    //handling ORA-13333: invalid LRS measure as an info
    log.info("Possible invalid LRS measure");
   } else {
    throw persEx; // do not swallow unhandled exceptions
   }
  } else {
   throw persEx; // do not swallow unhandled exceptions
  }
 } catch (Exception e) {
  log.error("Other exception:" + e.getMessage());
 }
} catch (Exception e) {
 log.error("Exception to log:" + e.getMessage());
}

1 Ответ

0 голосов
/ 25 сентября 2018

Решается добавлением определенного фильтра в обработчик журнала JBoss, в данном случае

<filter-spec value="all(not(match(&quot;ORA-13333&quot;)), not(match(&quot;SQL Error: 13333&quot;)))"/>

Надеюсь, это может быть полезно кому-то еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...