You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@turbine.apache.org by "Phee, Martin J (Jump Tech)" <Ma...@bp.com> on 2001/10/03 20:05:55 UTC
OM workaround: was RE: Oracle and null values with OM
To get around the problem of having nulls in my NUMERIC columns I put an NVL
in the addSelectColumn in my baseXXXpeer.
addSelectColumn( "nvl(" + LEGAL_ENTITY_CUST_ID + ",0)" );
That solved the problem. It now returns results for rows with a null in the
said column.
Is that the proper work around, or am I missing something?
-----Original Message-----
From: Phee, Martin J (Jump Tech) [mailto:Marty.Phee@bp.com]
Sent: Tuesday, October 02, 2001 4:07 PM
To: turbine-user@jakarta.apache.org
Subject: Oracle and null values with OM
If I have a null value in a NUMBER column, and do a select using
retrieveByPk I'm getting a null pointer exception.
If I put a value in the column everything works correctly. Am I doing
something wrong?
Turbine: 2.2-dev-20010912
Village: 1.5.3
Oracle JDBC: 8.1.7 oci8 -> Oracel 7.3.4 database
running with working dir C:\AnyJ3.1\lib\tomcat\webapps\smart
2001-10-02 04:02:24 - ContextManager: Adding context Ctx( /smart )
Starting tomcat. Check logs/tomcat.log for error messages
2001-10-02 04:02:42 - PoolTcpConnector: Starting HttpConnectionHandler on
8080
2001-10-02 04:02:42 - PoolTcpConnector: Starting Ajp12ConnectionHandler on
8007
java.lang.NullPointerException
at java.math.BigDecimal.<init>(BigDecimal.java:129)
at com.workingdogs.village.Value.<init>(Value.java:133)
at com.workingdogs.village.Record.createValues(Record.java:155)
at com.workingdogs.village.Record.<init>(Record.java:102)
at com.workingdogs.village.DataSet.fetchRecords(DataSet.java:526)
at com.workingdogs.village.DataSet.fetchRecords(DataSet.java:467)
at com.workingdogs.village.DataSet.fetchRecords(DataSet.java:452)
at
org.apache.turbine.om.peer.BasePeer.getSelectResults(BasePeer.java:1369)
at org.apache.turbine.om.peer.BasePeer.executeQuery(BasePeer.java:1282)
at org.apache.turbine.om.peer.BasePeer.executeQuery(BasePeer.java:1214)
at org.apache.turbine.om.peer.BasePeer.doSelect(BasePeer.java:1143)
at
com.bp.pipeline_na.smart.om.BaseVCustomersPeer.doSelectVillageRecords(BaseVC
ustomersPeer.java
:286)
at
com.bp.pipeline_na.smart.om.BaseVCustomersPeer.doSelect(BaseVCustomersPeer.j
ava:241)
at
com.bp.pipeline_na.smart.om.BaseVCustomersPeer.retrieveByPK(BaseVCustomersPe
er.java:492)
at
com.bp.pipeline_na.smart.om.BaseVCustomersPeer.retrieveByPK(BaseVCustomersPe
er.java:468)
at
com.bp.pipeline_na.smart.noms.modules.screens.ViewWebNomMvmt.doBuildTemplate
(ViewWebNomMvmt.j
ava:70)
at
org.apache.turbine.modules.screens.VelocitySecureScreen.doBuildTemplate(Velo
citySecureScreen.
java:103)
at
org.apache.turbine.modules.screens.TemplateScreen.doBuild(TemplateScreen.jav
a:129)
at org.apache.turbine.modules.Screen.build(Screen.java:99)
at org.apache.turbine.modules.ScreenLoader.eval(ScreenLoader.java:129)
at
org.apache.turbine.util.template.TemplateScreen.toString(TemplateScreen.java
:126)
at
org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.jav
a:324)
at
org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:26
7)
at org.apache.velocity.Template.merge(Template.java:296)
at org.apache.velocity.app.Velocity.mergeTemplate(Velocity.java:528)
at org.apache.velocity.app.Velocity.mergeTemplate(Velocity.java:497)
at
org.apache.turbine.services.velocity.TurbineVelocityService.decodeRequest(Tu
rbineVelocityServ
ice.java:472)
at
org.apache.turbine.services.velocity.TurbineVelocityService.handleRequest(Tu
rbineVelocityServ
ice.java:314)
at
org.apache.turbine.services.velocity.TurbineVelocity.handleRequest(TurbineVe
locity.java:146)
at
org.apache.turbine.modules.layouts.VelocityDirectLayout.doBuild(VelocityDire
ctLayout.java:106
)
at org.apache.turbine.modules.Layout.build(Layout.java:91)
at org.apache.turbine.modules.LayoutLoader.exec(LayoutLoader.java:123)
at
org.apache.turbine.modules.pages.DefaultPage.doBuild(DefaultPage.java:166)
at org.apache.turbine.modules.Page.build(Page.java:90)
at org.apache.turbine.modules.PageLoader.exec(PageLoader.java:123)
at org.apache.turbine.Turbine.doGet(Turbine.java:462)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404)
at org.apache.tomcat.core.Handler.service(Handler.java:286)
at
org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
at
org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:79
7)
at
org.apache.tomcat.core.ContextManager.service(ContextManager.java:743)
at
org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpC
onnectionHandler.
java:210)
at
org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
at
org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498)
at java.lang.Thread.run(Thread.java:484)
---------------------------------------------------------------------
To unsubscribe, e-mail: turbine-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: turbine-user-help@jakarta.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: turbine-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: turbine-user-help@jakarta.apache.org
Re: OM workaround: was RE: Oracle and null values with OM
Posted by John McNally <jm...@collab.net>.
The NPE shows a bug in Village for which I have committed a patch. I
would recommend grabbing the latest cvs code from share.whichever.com to
fix your problem. Village is in maintenance mode, so the latest code is
generally the best, so I would not worry about working with a
development version.
The fix I checked in allows the NULL to pass through to the Java end, so
you will not get a new BigDecimal("0") as your workaround does.
Modifying BaseXXX om classes is not going to lead to very easy
modifications to the schema.
john mcnally
"Phee, Martin J (Jump Tech)" wrote:
>
> To get around the problem of having nulls in my NUMERIC columns I put an NVL
> in the addSelectColumn in my baseXXXpeer.
>
> addSelectColumn( "nvl(" + LEGAL_ENTITY_CUST_ID + ",0)" );
>
> That solved the problem. It now returns results for rows with a null in the
> said column.
>
> Is that the proper work around, or am I missing something?
>
> -----Original Message-----
> From: Phee, Martin J (Jump Tech) [mailto:Marty.Phee@bp.com]
> Sent: Tuesday, October 02, 2001 4:07 PM
> To: turbine-user@jakarta.apache.org
> Subject: Oracle and null values with OM
>
> If I have a null value in a NUMBER column, and do a select using
> retrieveByPk I'm getting a null pointer exception.
>
> If I put a value in the column everything works correctly. Am I doing
> something wrong?
>
> Turbine: 2.2-dev-20010912
> Village: 1.5.3
> Oracle JDBC: 8.1.7 oci8 -> Oracel 7.3.4 database
>
> running with working dir C:\AnyJ3.1\lib\tomcat\webapps\smart
> 2001-10-02 04:02:24 - ContextManager: Adding context Ctx( /smart )
> Starting tomcat. Check logs/tomcat.log for error messages
> 2001-10-02 04:02:42 - PoolTcpConnector: Starting HttpConnectionHandler on
> 8080
> 2001-10-02 04:02:42 - PoolTcpConnector: Starting Ajp12ConnectionHandler on
> 8007
> java.lang.NullPointerException
> at java.math.BigDecimal.<init>(BigDecimal.java:129)
> at com.workingdogs.village.Value.<init>(Value.java:133)
> at com.workingdogs.village.Record.createValues(Record.java:155)
> at com.workingdogs.village.Record.<init>(Record.java:102)
> at com.workingdogs.village.DataSet.fetchRecords(DataSet.java:526)
> at com.workingdogs.village.DataSet.fetchRecords(DataSet.java:467)
> at com.workingdogs.village.DataSet.fetchRecords(DataSet.java:452)
> at
> org.apache.turbine.om.peer.BasePeer.getSelectResults(BasePeer.java:1369)
> at org.apache.turbine.om.peer.BasePeer.executeQuery(BasePeer.java:1282)
> at org.apache.turbine.om.peer.BasePeer.executeQuery(BasePeer.java:1214)
> at org.apache.turbine.om.peer.BasePeer.doSelect(BasePeer.java:1143)
> at
> com.bp.pipeline_na.smart.om.BaseVCustomersPeer.doSelectVillageRecords(BaseVC
> ustomersPeer.java
> :286)
> at
> com.bp.pipeline_na.smart.om.BaseVCustomersPeer.doSelect(BaseVCustomersPeer.j
> ava:241)
> at
> com.bp.pipeline_na.smart.om.BaseVCustomersPeer.retrieveByPK(BaseVCustomersPe
> er.java:492)
> at
> com.bp.pipeline_na.smart.om.BaseVCustomersPeer.retrieveByPK(BaseVCustomersPe
> er.java:468)
> at
> com.bp.pipeline_na.smart.noms.modules.screens.ViewWebNomMvmt.doBuildTemplate
> (ViewWebNomMvmt.j
> ava:70)
> at
> org.apache.turbine.modules.screens.VelocitySecureScreen.doBuildTemplate(Velo
> citySecureScreen.
> java:103)
> at
> org.apache.turbine.modules.screens.TemplateScreen.doBuild(TemplateScreen.jav
> a:129)
> at org.apache.turbine.modules.Screen.build(Screen.java:99)
> at org.apache.turbine.modules.ScreenLoader.eval(ScreenLoader.java:129)
> at
> org.apache.turbine.util.template.TemplateScreen.toString(TemplateScreen.java
> :126)
> at
> org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.jav
> a:324)
> at
> org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:26
> 7)
> at org.apache.velocity.Template.merge(Template.java:296)
> at org.apache.velocity.app.Velocity.mergeTemplate(Velocity.java:528)
> at org.apache.velocity.app.Velocity.mergeTemplate(Velocity.java:497)
> at
> org.apache.turbine.services.velocity.TurbineVelocityService.decodeRequest(Tu
> rbineVelocityServ
> ice.java:472)
> at
> org.apache.turbine.services.velocity.TurbineVelocityService.handleRequest(Tu
> rbineVelocityServ
> ice.java:314)
> at
> org.apache.turbine.services.velocity.TurbineVelocity.handleRequest(TurbineVe
> locity.java:146)
> at
> org.apache.turbine.modules.layouts.VelocityDirectLayout.doBuild(VelocityDire
> ctLayout.java:106
> )
> at org.apache.turbine.modules.Layout.build(Layout.java:91)
> at org.apache.turbine.modules.LayoutLoader.exec(LayoutLoader.java:123)
> at
> org.apache.turbine.modules.pages.DefaultPage.doBuild(DefaultPage.java:166)
> at org.apache.turbine.modules.Page.build(Page.java:90)
> at org.apache.turbine.modules.PageLoader.exec(PageLoader.java:123)
> at org.apache.turbine.Turbine.doGet(Turbine.java:462)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> at
> org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404)
> at org.apache.tomcat.core.Handler.service(Handler.java:286)
> at
> org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
> at
> org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:79
> 7)
> at
> org.apache.tomcat.core.ContextManager.service(ContextManager.java:743)
> at
> org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpC
> onnectionHandler.
> java:210)
> at
> org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
> at
> org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498)
> at java.lang.Thread.run(Thread.java:484)
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: turbine-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: turbine-user-help@jakarta.apache.org
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: turbine-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: turbine-user-help@jakarta.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: turbine-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: turbine-user-help@jakarta.apache.org