You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Kevin Sutter (JIRA)" <ji...@apache.org> on 2012/05/31 16:30:22 UTC

[jira] [Commented] (OPENJPA-2204) NPE in JDBCStoreManager with Trace turned on

    [ https://issues.apache.org/jira/browse/OPENJPA-2204?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13286601#comment-13286601 ] 

Kevin Sutter commented on OPENJPA-2204:
---------------------------------------

A quick review of the code shows that the vm parameter must not be null.  This JDBCStoreManager.find() is called from three locations and all three locations have accessed the "vm" parameter prior to this find() operation.  So, it's looking like it's the getDeclaredTypeMapping() that is returning null.  I'll look at that next...
                
> NPE in JDBCStoreManager with Trace turned on
> --------------------------------------------
>
>                 Key: OPENJPA-2204
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-2204
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: jdbc, logging
>    Affects Versions: 2.3.0, 2.2.1
>            Reporter: Kevin Sutter
>
> Reporting JIRA on behalf of a user without access to JIRAs...
> OK - nearly there! Presumably because we're no longer hooked in to the container, OpenJPA was pumping out its log messages to system out. I set openjpa.Log to "commons" and, as desired, it now sends trace to java.util.logging. The only problem is that, when I set trace to "openjpa.*=all" I get a NullPointerException (that isn't there when trace isn't turned off):
> [31/05/12 11:31:05:576 BST] 00000020 id=         com.ibm.amc.AmcRuntimeException                              3 printStackTrace java.lang.NullPointerException
> 	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.find(JDBCStoreManager.java:979)
> 	at org.apache.openjpa.jdbc.meta.strats.UntypedPCValueHandler.toObjectValue(UntypedPCValueHandler.java:127)
> 	at org.apache.openjpa.jdbc.meta.strats.HandlerStrategies.loadObject(HandlerStrategies.java:207)
> 	at org.apache.openjpa.jdbc.meta.strats.HandlerCollectionTableFieldStrategy.loadElement(HandlerCollectionTableFieldStrategy.java:78)
> 	at org.apache.openjpa.jdbc.meta.strats.StoreCollectionFieldStrategy.load(StoreCollectionFieldStrategy.java:558)
> 	at org.apache.openjpa.jdbc.meta.FieldMapping.load(FieldMapping.java:934)
> 	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:673)
> 	at com.ibm.ws.persistence.jdbc.kernel.WsJpaJDBCStoreManager.load(WsJpaJDBCStoreManager.java:130)
> 	at org.apache.openjpa.kernel.DelegatingStoreManager.load(DelegatingStoreManager.java:117)
> 	at org.apache.openjpa.kernel.ROPStoreManager.load(ROPStoreManager.java:78)
> 	at org.apache.openjpa.kernel.StateManagerImpl.loadFields(StateManagerImpl.java:3071)
> 	at org.apache.openjpa.kernel.StateManagerImpl.loadField(StateManagerImpl.java:3148)
> 	at org.apache.openjpa.kernel.StateManagerImpl.beforeAccessField(StateManagerImpl.java:1612)
> 	at org.apache.openjpa.kernel.StateManagerImpl.accessingField(StateManagerImpl.java:1597)
> 	at com.ibm.amc.server.action.impl.ActionStatusImpl.pcGetupdates(ActionStatusImpl.java)
> 	at com.ibm.amc.server.action.impl.ActionStatusImpl.getUpdates(ActionStatusImpl.java:206)
> This NPE looks to be due to dumping the parameters for the JDBCStoreManager.find():
>         if (_log.isTraceEnabled()) {
>             _log.trace("find: oid="+oid+" "+vm.getDeclaredTypeMapping().getDescribedType());
>         }
> And, either vm or vm.getDeclaredTypeMapping() is null...

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira