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