Неизвестное исключение NullPointerException в строке JdbcOdbcDriver.finalize(): 96

Я загружаю источники данных через JNDI, используя:

JDK 1.6.0_31 Tomcat 6.0.30

Когда я запускаю отладчик Eclipse (Indigo SR 2), он прерывается:

Daemon System Thread [Finalizer] (Suspended (exception NullPointerException))   
    JdbcOdbcDriver.finalize() line: 96  
    Finalizer.invokeFinalizeMethod(Object) line: not available [native method]  
    Finalizer.runFinalizer() line: 83   
    Finalizer.access$100(Finalizer) line: 14    
    Finalizer$FinalizerThread.run() line: 160   

Я действительно в недоумении относительно того, что вызывает это. Кроме того, он, похоже, вообще не влияет на мое исполнение. Мои источники данных инициализируются и используются как обычно, и я получаю все ожидаемые результаты. Из того, что я прочитал, это может быть связано с проблемой драйвера Oracle?

MYAPP\META-INF\context.xml

<Resource name="jdbc/conn" auth="Container"
    type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver"
    url="@[email protected]" username="user" password="@[email protected]"
    initialSize="4" maxActive="8" 
    defaultAutoCommit="false"
    accessToUnderlyingConnectionAllowed="true"
    testOnReturn="true"
    validationQuery="select 1 from dual"
    poolPreparedStatements="false"
    connectionProperties="SetBigStringTryClob=true"
    factory="org.apache.commons.dbcp.BasicDataSourceFactory"
/>

MYAPP\WEB-INF\web.xml

<resource-ref>
    <description>My DataSource</description>
    <res-ref-name>jdbc/conn</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>

Ответы

Ответ 1

В конце концов я проигнорировал это исключение, так как оно не закончилось. Хотя я не знаю точной причины, это не кажется фатальным.

Ответ 2

Я бы предположил, что вам не хватает вызова для инициализации(). Это должно установить NPE для OdbcApi.

Ответ 3

Я раньше думал, что это был ответ. Я ошибался.

Наконец я понял это. У меня был управляемый beans, который поддерживался базой данных. Эти управляемые beans были аннотированы @eager

Когда сервер запустил приложение из eclipse, они были созданы и инструмент попал в базу данных, чтобы получить данные. У меня возникло исключение из метода из базы данных bean (исключение нулевого указателя), и в результате соединение с базой данных осталось открытым.

Каким-то образом папка .metadata была взломана и повреждена. Я вышел из Затмения. Затем я перешел в рабочее пространство Eclipse и скопировал папку .metadata на свой рабочий стол, чтобы иметь безопасную копию, затем я удалил ее в рабочей области.

Я запустил Eclipse. Проекты не было. Я импортировал их обратно с помощью Import > File System.

Мне нужно было исправить путь сборки под свойствами проекта и в окне > Настройки, мне пришлось reset Tomcat Home. Вуала, избавилась от этой сверхнаходимой проблемы.

Это и послужило причиной проблемы. Надеюсь, это поможет кому-то.