Mantis Bugtracker
  

Viewing Issue Advanced Details Jump to Notes ] View Simple ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0001699 [Quercus] minor always 04-20-07 13:46 05-01-07 04:29
Reporter stbu View Status public  
Assigned To nam
Priority normal Resolution fixed Platform
Status closed   OS
Projection none   OS Version
ETA none Fixed in Version 3.1.1 Product Version 3.1.0
  Product Build
Summary 0001699: NPE in com.caucho.quercus.lib.db.OracleModule.oci_error(OracleModule.java:706)
Description I've downloaded 'OracleEditor.php' from sourceforge.net, a single php file that should connect to an Oracle Database.

The file OracleEditor.php could be successfully displayed on the screen offering to enter username, password and (tnsnames.ora) service name.

After the 'Connect to Oracle' Button, a NullPointerException is thrown:

java.lang.NullPointerException
    at com.caucho.quercus.lib.db.OracleModule.oci_error(OracleModule.java:706)
    at com.caucho.quercus.lib.db.OracleModule.ocierror(OracleModule.java:1866)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:105)
    at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:614)
    at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:487)
    at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:473)
    at com.caucho.quercus.env.JavaInvoker.callCopy(JavaInvoker.java:482)
    at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:178)
    at com.caucho.quercus.expr.FunctionExpr.evalCopy(FunctionExpr.java:149)
    at com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:77)
    at com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64)
    at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99)
    at com.caucho.quercus.program.Function.callImpl(Function.java:316)
    at com.caucho.quercus.program.Function.call(Function.java:264)
    at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:180)
    at com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:125)
    at com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64)
    at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:75)
    at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99)
    at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:239)
    at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:61)
    at com.caucho.quercus.page.QuercusPage.executeTop(QuercusPage.java:115)
    at com.caucho.quercus.servlet.ResinQuercusServlet.service(ResinQuercusServlet.java:125)
    at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:298)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:92)
    at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103)
    at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:175)
    at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:240)
    at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:263)
    at com.caucho.server.port.TcpConnection.run(TcpConnection.java:477)
    at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:600)
    at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:522)
    at java.lang.Thread.run(Thread.java:595)

I also the Oracle JDBC Driver JAR to WEB-INF/lib folder, but no success.

Environment:
 Windows XP 5.1 x86
 Java 1.5.0_02-b09, 32, mixed mode, Cp1252, de, Sun Microsystems Inc.
 resin.home = C:\Downloads\resin-3.1.s070402


See also "Additional Information" !
Steps To Reproduce
Additional Information Attached is the single php file from: http://sourceforge.net/projects/oracleeditor/ [^]


Output with log level "finest" for logger "com.caucho.quercus":

 FINER com.caucho.quercus.env.Env com.caucho.quercus.QuercusException: A link to the server could not be established. java.sql.SQLException: E/A-Exception: The Network Adapter could not establish the connection
    at com.caucho.quercus.env.Env.warning(Env.java:3526)
    at com.caucho.quercus.lib.db.Oracle.connectInternal(Oracle.java:111)
    at com.caucho.quercus.lib.db.Oracle.<init>(Oracle.java:63)
    at com.caucho.quercus.lib.db.OracleModule.connectInternal(OracleModule.java:2209)
    at com.caucho.quercus.lib.db.OracleModule.oci_connect(OracleModule.java:653)
    at com.caucho.quercus.lib.db.OracleModule.ocilogon(OracleModule.java:1983)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:105)
    at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:614)
    at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:487)
    at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:473)
    at com.caucho.quercus.env.JavaInvoker.callCopy(JavaInvoker.java:482)
    at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:178)
    at com.caucho.quercus.expr.FunctionExpr.evalCopy(FunctionExpr.java:149)
    at com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:77)
    at com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64)
    at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99)
    at com.caucho.quercus.program.Function.callImpl(Function.java:316)
    at com.caucho.quercus.program.Function.call(Function.java:264)
    at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:180)
    at com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:125)
    at com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64)
    at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:75)
    at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99)
    at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:239)
    at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:61)
    at com.caucho.quercus.page.QuercusPage.executeTop(QuercusPage.java:115)
    at com.caucho.quercus.servlet.ResinQuercusServlet.service(ResinQuercusServlet.java:125)
    at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:298)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:92)
    at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103)
    at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:175)
    at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:240)
    at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:263)
    at com.caucho.server.port.TcpConnection.run(TcpConnection.java:477)
    at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:600)
    at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:522)
    at java.lang.Thread.run(Thread.java:595)

 FINE com.caucho.quercus.lib.db.Oracle java.sql.SQLException: E/A-Exception: The Network Adapter could not establish the connection
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:414)
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
    at com.caucho.sql.DriverConfig.createDriverConnection(DriverConfig.java:591)
    at com.caucho.sql.ManagedConnectionImpl.initDriverConnection(ManagedConnectionImpl.java:247)
    at com.caucho.sql.ManagedConnectionImpl.<init>(ManagedConnectionImpl.java:136)
    at com.caucho.sql.ManagedFactoryImpl.createManagedConnection(ManagedFactoryImpl.java:126)
    at com.caucho.jca.ConnectionPool.create(ConnectionPool.java:801)
    at com.caucho.jca.ConnectionPool.allocatePool(ConnectionPool.java:670)
    at com.caucho.jca.ConnectionPool.allocate(ConnectionPool.java:629)
    at com.caucho.jca.ConnectionPool.allocateConnection(ConnectionPool.java:496)
    at com.caucho.sql.DataSourceImpl.getConnection(DataSourceImpl.java:91)
    at com.caucho.sql.DBPool.getConnection(DBPool.java:649)
    at com.caucho.quercus.env.Env.getConnection(Env.java:575)
    at com.caucho.quercus.lib.db.Oracle.connectInternal(Oracle.java:104)
    at com.caucho.quercus.lib.db.Oracle.<init>(Oracle.java:63)
    at com.caucho.quercus.lib.db.OracleModule.connectInternal(OracleModule.java:2209)
    at com.caucho.quercus.lib.db.OracleModule.oci_connect(OracleModule.java:653)
    at com.caucho.quercus.lib.db.OracleModule.ocilogon(OracleModule.java:1983)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:105)
    at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:614)
    at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:487)
    at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:473)
    at com.caucho.quercus.env.JavaInvoker.callCopy(JavaInvoker.java:482)
    at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:178)
    at com.caucho.quercus.expr.FunctionExpr.evalCopy(FunctionExpr.java:149)
    at com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:77)
    at com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64)
    at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99)
    at com.caucho.quercus.program.Function.callImpl(Function.java:316)
    at com.caucho.quercus.program.Function.call(Function.java:264)
    at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:180)
    at com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:125)
    at com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64)
    at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:75)
    at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99)
    at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:239)
    at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:61)
    at com.caucho.quercus.page.QuercusPage.executeTop(QuercusPage.java:115)
    at com.caucho.quercus.servlet.ResinQuercusServlet.service(ResinQuercusServlet.java:125)
    at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:298)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:92)
    at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103)
    at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:175)
    at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:240)
    at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:263)
    at com.caucho.server.port.TcpConnection.run(TcpConnection.java:477)
    at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:600)
    at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:522)
    at java.lang.Thread.run(Thread.java:595)

 WARNING com.caucho.server.webapp.ErrorPageManager java.lang.NullPointerException
    at com.caucho.quercus.lib.db.OracleModule.oci_error(OracleModule.java:706)
    at com.caucho.quercus.lib.db.OracleModule.ocierror(OracleModule.java:1866)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:105)
    at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:614)
    at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:487)
    at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:473)
    at com.caucho.quercus.env.JavaInvoker.callCopy(JavaInvoker.java:482)
    at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:178)
    at com.caucho.quercus.expr.FunctionExpr.evalCopy(FunctionExpr.java:149)
    at com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:77)
    at com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64)
    at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99)
    at com.caucho.quercus.program.Function.callImpl(Function.java:316)
    at com.caucho.quercus.program.Function.call(Function.java:264)
    at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:180)
    at com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:125)
    at com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64)
    at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:75)
    at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99)
    at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:239)
    at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:61)
    at com.caucho.quercus.page.QuercusPage.executeTop(QuercusPage.java:115)
    at com.caucho.quercus.servlet.ResinQuercusServlet.service(ResinQuercusServlet.java:125)
    at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:298)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:92)
    at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103)
    at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:175)
    at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:240)
    at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:263)
    at com.caucho.server.port.TcpConnection.run(TcpConnection.java:477)
    at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:600)
    at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:522)
    at java.lang.Thread.run(Thread.java:595)


At least on this very verbose logging level, I can see the real Error:

FINE com.caucho.quercus.lib.db.Oracle java.sql.SQLException: E/A-Exception: The Network Adapter could not establish the connection

However, in my hunmble opinion the method oci_error() in OracleModule.java should check if 'conn' is != null.
Attached Files  C:\\Downloads\\resin-3.1.s070402\\webapps\\oracleeditor\\OracleEditor.php [^] (54,310 bytes) 04-20-07 13:46

- Relationships

- Notes
(0001885)
nam
05-01-07 04:29

php/4414
 

- Issue History
Date Modified Username Field Change
04-20-07 13:46 stbu New Issue
04-20-07 13:46 stbu File Added: C:\\Downloads\\resin-3.1.s070402\\webapps\\oracleeditor\\OracleEditor.php
05-01-07 04:28 nam Status new => assigned
05-01-07 04:28 nam Assigned To  => nam
05-01-07 04:29 nam Status assigned => closed
05-01-07 04:29 nam Note Added: 0001885
05-01-07 04:29 nam Resolution open => fixed
05-01-07 04:29 nam Fixed in Version  => 3.1.1


Mantis 1.0.0rc3[^]
Copyright © 2000 - 2005 Mantis Group
30 total queries executed.
26 unique queries executed.
Powered by Mantis Bugtracker