ClassCastException in PersistenceManagerImpl.getObjectByIdFilter

Getting a ClassCastException with 2.3.1, when trying to get an
object by id. The class has a composite key (String + int) and
used to wrk with 2.2.6. We suspected it might have something to
do with the String constructor that we had to add as part of the
code upgrade, but it never seems to be invoked (running in a
non-managed environment).
What are we doing wrong here? What's happening at line 842 in
PersistenceManagerImpl? Here's the relevant portion of the stack
trace:
javax.jdo.JDOException: java.lang.ClassCastException:
java.lang.String
NestedThrowables:
java.lang.ClassCastException: java.lang.String
at
com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(PersistenceManagerImpl.java:842)
at
com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(PersistenceManagerImpl.java:736)
The Oid class:
public static class Oid implements java.io.Serializable {
public String partner;
public int domainId;
public Oid() {
super();
public Oid(String name, XRDomain domain) {
partner = name;
domainId = domain.getId();
public Oid(String s) {
int pos = s.indexOf( ':' );
if (pos < 0) {
partner = s;
} else {
partner = s.substring( 0, pos );
domainId = Integer.parseInt( s.substring( pos + 1,
s.length() ) );
public String toString() {
return partner + ":" + domainId;
public boolean equals(Object obj) {
if (this == obj) {
return true;
} else if (obj == null || getClass() != obj.getClass()) {
return false;
Oid other = (Oid) obj;
return (domainId == other.domainId)
&& (partner == null? other.partner == null:
partner.equals(other.partner));
public int hashCode() {
return domainId * (partner != null? partner.hashCode(): 1);
Thanks,
Alex Albu
Commerce Technologies, Inc.
21 Corporate Drive
Clifton Park, NY 12065

Here it is. Seems similar to issue in the previous post.
javax.jdo.JDOException: java.lang.ClassCastException:
java.lang.String
NestedThrowables:
java.lang.ClassCastException: java.lang.String
at
com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(PersistenceManagerImpl.java:842)
at
com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(PersistenceManagerImpl.java:736)
at
com.commercehub.core.xr.XRService.getHubVal(XRService.java:63)
at
com.commercehub.core.xr.XRServiceTest.testGetPartnerVal(XRServiceTest.java:29)
at java.lang.reflect.Method.invoke(Native Method)
at junit.framework.TestCase.runTest(TestCase.java:166)
at junit.framework.TestCase.runBare(TestCase.java:140)
at
junit.framework.TestResult$1.protect(TestResult.java:106)
at
junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:131)
at junit.framework.TestSuite.runTest(TestSuite.java:173)
at junit.framework.TestSuite.run(TestSuite.java:168)
at junit.textui.TestRunner.doRun(TestRunner.java:74)
at junit.textui.TestRunner.run(TestRunner.java:200)
at
com.commercehub.core.xr.XRServiceTest.main(XRServiceTest.java:100)
NestedThrowablesStackTrace:
java.lang.ClassCastException: java.lang.String
at
com.solarmetric.kodo.impl.jdbc.schema.dict.GenericDictionary.toSQL(GenericDictionary.java:212)
at
com.solarmetric.kodo.impl.jdbc.sql.ObjectSelect.where(ObjectSelect.java:179)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.loadByPK(JDBCStoreManager.java:372)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.initialize(JDBCStoreManager.java:250)
at
com.solarmetric.kodo.runtime.StateManagerImpl.loadInitialState(StateManagerImpl.java:112)
at
com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(PersistenceManagerImpl.java:831)
at
com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(PersistenceManagerImpl.java:736)
at
com.commercehub.core.xr.XRService.getHubVal(XRService.java:63)
at
com.commercehub.core.xr.XRServiceTest.testGetPartnerVal(XRServiceTest.java:29)
at java.lang.reflect.Method.invoke(Native Method)
at junit.framework.TestCase.runTest(TestCase.java:166)
at junit.framework.TestCase.runBare(TestCase.java:140)
at
junit.framework.TestResult$1.protect(TestResult.java:106)
at
junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:131)
at junit.framework.TestSuite.runTest(TestSuite.java:173)
at junit.framework.TestSuite.run(TestSuite.java:168)
at junit.textui.TestRunner.doRun(TestRunner.java:74)
at junit.textui.TestRunner.run(TestRunner.java:200)
at
com.commercehub.core.xr.XRServiceTest.main(XRServiceTest.java:100)
Abe White wrote:
What are we doing wrong here? What's happening at line 842 in
PersistenceManagerImpl? Here's the relevant portion of the stack
trace:Please post the entire stack trace.--
Alex Albu
Commerce Technologies, Inc.
21 Corporate Drive
Clifton Park, NY 12065

Similar Messages

  • ClassCastException with Query

    This simple query gives me a ClassCastException:
    Extent users = pm.getExtent (User.class, false);
    String filter = "userid == \"test_michael\"";
    Query query = pm.newQuery (users, filter);
    Collection results = (Collection) query.execute ();
    From the log, the SQL generated looks correct. I'm not using any
    inheritance, so I don't see how I could get a ClassCastException.
    [ C:27826089; S:22238933; T:20754125; D:18/09/02 12:02 ] SELECT t0.JDOIDX,
    t0.JDOCLASSX, t0.JDOLOCKX, t0.COMPANYX, t0.PASSWORDX, t0.USERIDX FROM USERX
    t0 WHERE t0.USERIDX = 'test_michael'
    Exception = javax.jdo.JDOFatalDataStoreException: javax.jdo.JDOException:
    java.lang.ClassCastException
    NestedThrowables:
    java.lang.ClassCastException
    NestedThrowables:
    javax.jdo.JDOException: java.lang.ClassCastException
    NestedThrowables:
    java.lang.ClassCastException

    I totally deleted my hashCode() & equals() methods in my object and now it
    works. I'm really confused about writing hashCode & equals.
    "Michael" <[email protected]> a __crit dans le message de news:
    [email protected]...
    Here is a stack trace:
    java.lang.ClassCastException
    at
    com.solarmetric.kodo.impl.jdbc.runtime.LazyResultList.instantiateRow(LazyRes
    ultList.java:186)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.LazyResultList.get(LazyResultList.jav
    a:114)
    at java.util.AbstractList$Itr.next(AbstractList.java:416)
    at
    com.solarmetric.kodo.runtime.ResultListIterator.next(ResultListIterator.java
    :49)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.ResultListFactory.createResultList(Re
    sultListFactory.java:85)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.executeQuery(JDBCSto
    reManager.java:646)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCQuery.executeQuery(JDBCQuery.java
    :150)
    atcom.solarmetric.kodo.query.QueryImpl.executeWithMap(QueryImpl.java:580)
    at com.solarmetric.kodo.query.QueryImpl.execute(QueryImpl.java:428)
    at
    com.solarmetric.kodo.query.QueryImpl$SynchronizedQuery.execute(QueryImpl.jav
    a:1334)
    at
    com.idtect.oemserver.persistence.TestUser.removeTestUser(TestUser.java:75)
    at com.idtect.oemserver.persistence.TestUser.tearDown(TestUser.java:44)
    at junit.framework.TestCase.runBare(TestCase.java:143)
    at junit.framework.TestResult$1.protect(TestResult.java:106)
    at junit.framework.TestResult.runProtected(TestResult.java:124)
    at junit.framework.TestResult.run(TestResult.java:109)
    at junit.framework.TestCase.run(TestCase.java:131)
    at junit.framework.TestSuite.runTest(TestSuite.java:173)
    at junit.framework.TestSuite.run(TestSuite.java:168)
    at
    org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRu
    nner.java:326)
    at
    org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.
    java:215)
    at
    org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner
    .java:148)
    NestedThrowablesStackTrace:
    javax.jdo.JDOException: java.lang.ClassCastException
    NestedThrowables:
    java.lang.ClassCastException
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(Pers
    istenceManagerImpl.java:874)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(Persistenc
    eManagerImpl.java:785)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.createFromResultSet(
    JDBCStoreManager.java:700)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager$2.getResultObject(JD
    BCStoreManager.java:652)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.LazyResultList.instantiateRow(LazyRes
    ultList.java:168)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.LazyResultList.get(LazyResultList.jav
    a:114)
    at java.util.AbstractList$Itr.next(AbstractList.java:416)
    at
    com.solarmetric.kodo.runtime.ResultListIterator.next(ResultListIterator.java
    :49)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.ResultListFactory.createResultList(Re
    sultListFactory.java:85)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.executeQuery(JDBCSto
    reManager.java:646)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCQuery.executeQuery(JDBCQuery.java
    :150)
    atcom.solarmetric.kodo.query.QueryImpl.executeWithMap(QueryImpl.java:580)
    at com.solarmetric.kodo.query.QueryImpl.execute(QueryImpl.java:428)
    at
    com.solarmetric.kodo.query.QueryImpl$SynchronizedQuery.execute(QueryImpl.jav
    a:1334)
    at
    com.idtect.oemserver.persistence.TestUser.removeTestUser(TestUser.java:75)
    at com.idtect.oemserver.persistence.TestUser.tearDown(TestUser.java:44)
    at junit.framework.TestCase.runBare(TestCase.java:143)
    at junit.framework.TestResult$1.protect(TestResult.java:106)
    at junit.framework.TestResult.runProtected(TestResult.java:124)
    at junit.framework.TestResult.run(TestResult.java:109)
    at junit.framework.TestCase.run(TestCase.java:131)
    at junit.framework.TestSuite.runTest(TestSuite.java:173)
    at junit.framework.TestSuite.run(TestSuite.java:168)
    at
    org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRu
    nner.java:326)
    at
    org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.
    java:215)
    at
    org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner
    .java:148)
    NestedThrowablesStackTrace:
    java.lang.ClassCastException
    at com.idtect.domain.User.jdoCopyKeyFieldsFromObjectId(User.java)
    at com.idtect.domain.User.jdoNewInstance(User.java)
    at javax.jdo.spi.JDOImplHelper.newInstance(Unknown Source)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.loadPrimaryMappings(
    JDBCStoreManager.java:401)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.initialize(JDBCStore
    Manager.java:236)
    at
    com.solarmetric.kodo.runtime.StateManagerImpl.loadInitialState(StateManagerI
    mpl.java:112)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(Pers
    istenceManagerImpl.java:863)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(Persistenc
    eManagerImpl.java:785)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.createFromResultSet(
    JDBCStoreManager.java:700)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager$2.getResultObject(JD
    BCStoreManager.java:652)[ C:5618579; T:26094370; D:18/09/02 13:21 ] close:
    jdbc:postgresql://localhost:5432/jdotest (michael)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.LazyResultList.instantiateRow(LazyRes
    ultList.java:168)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.LazyResultList.get(LazyResultList.jav
    a:114)
    at java.util.AbstractList$Itr.next(AbstractList.java:416)
    at
    com.solarmetric.kodo.runtime.ResultListIterator.next(ResultListIterator.java
    :49)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.ResultListFactory.createResultList(Re
    sultListFactory.java:85)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.executeQuery(JDBCSto
    reManager.java:646)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCQuery.executeQuery(JDBCQuery.java
    :150)
    atcom.solarmetric.kodo.query.QueryImpl.executeWithMap(QueryImpl.java:580)
    at com.solarmetric.kodo.query.QueryImpl.execute(QueryImpl.java:428)
    at
    com.solarmetric.kodo.query.QueryImpl$SynchronizedQuery.execute(QueryImpl.jav
    a:1334)
    at
    com.idtect.oemserver.persistence.TestUser.removeTestUser(TestUser.java:75)
    at com.idtect.oemserver.persistence.TestUser.tearDown(TestUser.java:44)
    at junit.framework.TestCase.runBare(TestCase.java:143)
    at junit.framework.TestResult$1.protect(TestResult.java:106)
    at junit.framework.TestResult.runProtected(TestResult.java:124)
    at junit.framework.TestResult.run(TestResult.java:109)
    at junit.framework.TestCase.run(TestCase.java:131)
    at junit.framework.TestSuite.runTest(TestSuite.java:173)
    at junit.framework.TestSuite.run(TestSuite.java:168)
    at
    org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRu
    nner.java:326)
    at
    org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.
    java:215)
    at
    org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner
    .java:148)

  • "null" does not have metadata

    I have an abstract base class named "Activity" and a derived class named
    "Transfer". When trying to retrieve an instance of "Transfer" using
    Transfer t = (Transfer)pm.getObjectById( new Transfer.OID( 100 ),true );
    it throws
    Nested exception is:
    Type "null" does not have jdo metadata.
    javax.jdo.JDOUserException: Type "null" does not have jdo metadata.
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.getMetaData(J
    DBCStoreManager.java:645)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.initialize(JD
    BCStoreManager.java:254)
    at
    com.solarmetric.kodo.runtime.StateManagerImpl.<init>(StateManagerImpl
    ..java:100)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilt
    er(PersistenceManagerImpl.java:957)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(Per
    sistenceManagerImpl.java:865)
    at java.lang.reflect.Method.invoke(Native Method)
    However, the following is successful:
    Transfer t = (Transfer)pm.getObjectById( new Activity$OID( 100 ),true );
    What are the rules for derived classes? Do they each need/not need an
    OID inner class? Does the base class need/not need the OID inner class?
    When calling getObjectById using the base class (Activity$OID) how
    does it know which subclass I'm interested in?
    Thanks

    Typo. Should read:
    However, the following is successful:
    Transfer t = (Transfer)pm.getObjectById( new Activity.OID( 100 ),true);
    Michael Welter wrote:
    I have an abstract base class named "Activity" and a derived class named
    "Transfer". When trying to retrieve an instance of "Transfer" using
    Transfer t = (Transfer)pm.getObjectById( new Transfer.OID( 100 ),true );
    it throws
    Nested exception is:
    Type "null" does not have jdo metadata.
    javax.jdo.JDOUserException: Type "null" does not have jdo metadata.
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.getMetaData(J
    DBCStoreManager.java:645)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.initialize(JD
    BCStoreManager.java:254)
    at
    com.solarmetric.kodo.runtime.StateManagerImpl.<init>(StateManagerImpl
    .java:100)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilt
    er(PersistenceManagerImpl.java:957)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(Per
    sistenceManagerImpl.java:865)
    at java.lang.reflect.Method.invoke(Native Method)
    However, the following is successful:
    Transfer t = (Transfer)pm.getObjectById( new Activity$OID( 100 ),true );
    What are the rules for derived classes? Do they each need/not need an
    OID inner class? Does the base class need/not need the OID inner class?
    When calling getObjectById using the base class (Activity$OID) how does
    it know which subclass I'm interested in?
    Thanks

  • Cache and/or Connection problems under load

    I have a Kodo web app that's been running just fine in
    production for many months now. However, recently the web
    traffic has shot up by a huge amount, literally overnight.
    But unfortunately, it's caused the app to fail very ungracefully
    under the strain.
    It's been a crazy few days, and I haven't been able to do
    very much analysis because of higher priorities. But from
    what I have been able to gleen, it now looks like Kodo is
    the most likely culprit. From what I've read in other messages
    here, it appears others may have been experiencing similar
    problems.
    My environment: Redhat Linux 8, Postgres 7.3.4 with the
    included JDBC3 driver, Apache 1.3.x, Tomcat 4.1.x and the
    webapp connector. Similar behavior was seen with Apache 2.x,
    Tomcat 4.1.x and the JK2 connector (that was on the new machine
    I setup to handle the new traffic, which, of course, died the
    night before).
    As I mentioned, this app has been running reliably for
    months with no problems. But when placed under heavy load,
    it appears to get into some sort of pathological state where
    it slows down dramatically (asymptotically?) to the point where
    it's effectively locked up. In one case, where the app was
    left running for several hours in this state, requests were
    taking 90 minutes to complete (normal is 1-5 seconds).
    From what I can deduce, there seem to be four things
    going on, three of which have been mentioned in recent threads
    here:
    1) Excessive memory consumption. When the app is
    operating normally, I see fairly flat memory usage for
    the JVM process. Under load, the JVM steadily expands
    until it hits its heap limit. I've gotten OutOfMemory
    exceptions with a heap size of 350MB, which should be plenty.
    2) Level 2 cache locking issues. I've seen dozens of
    threads waiting on a lock in the DataCache code. Not sure
    if there's a deadlock happening here or just that the
    threads are waiting on a lock that's being held for a long time.
    3) Database Connection leaks or contention. I see threads
    spinning in the DataSource code trying to get a connection.
    I also see dozens of connections from the Postgres side which
    seem to be sitting idle, but in the middle of a transaction.
    When things get bad, I also see exceptions being thrown because
    of timeouts waiting for a connection to become available. It's
    a web app, PMs should not be tied up for more than a few seconds.
    4) CPU usage pegged or nearly so for the JVM. I suspect
    this is related to #3. Something very bad is going on here.
    If I stop all inbound requests to the JVM when it's in this
    bad state, it will continue to burn CPU at 90%+ for a very
    long time. I think it will eventually finish what it's doing,
    but I haven't had the luxury of waiting for it. It's definitely
    not a linear slowdown proportional to the load.
    Attached are my kodo.properties file and some thread stack
    traces along with some comments. Any advice would be greatly
    appreciated. This is not a complicated app nor am I doing
    anything unusual. It doesn't seem logical that Kodo could
    breakdown so dramatically under load, so I'm hoping it's some
    sort of interaction thing that I can work around.
    Thanks.
    Ron Hitchens {mailto:[email protected]} RonSoft Technologies
    (510) 494-9597 (Home Office) http://www.ronsoft.com
    (707) 924-3878 (fax) Bit Twiddling At Its Finest
    "Born with a broken heart" -Kenny Wayne Shepard

    Please read prior posts regarding level 2 cache. It is unusable under stress
    as far I am concerned. Basically entire cache gets locked on any database
    read. Makes it very unscalable
    Are you using 2.5.3? It will request a connection from a pool every time it
    resolves reference to a PC even if it is cached in PM and therefore Kodo
    does not need to read any. As result if you iterate over 100 objects in your
    query and for each object resolve reference to another object (always the
    same) kodo will request 100 database connections from the pool (and note
    they issue rollback on every time they return a connection to the pool so
    getting connection might be fairly expensive)
    In conjunction with level 2 cache contention this causes application to go
    into a stupor.
    Try to go back to 2.5.2 (or may be 2.5.4 they promised in the near future
    with a workaround) or use "persistent-manager" connection retention if you
    discard PM after each HTTP invocation - it will take care of connection
    pooling issue. As far as L2 cache I was unable to find any work around so
    far - see if you might be better of without cache. You might if your object
    graph is not very complex
    "Ron Hitchens" <[email protected]> wrote in message
    news:[email protected]...
    >
    I have a Kodo web app that's been running just fine in
    production for many months now. However, recently the web
    traffic has shot up by a huge amount, literally overnight.
    But unfortunately, it's caused the app to fail very ungracefully
    under the strain.
    It's been a crazy few days, and I haven't been able to do
    very much analysis because of higher priorities. But from
    what I have been able to gleen, it now looks like Kodo is
    the most likely culprit. From what I've read in other messages
    here, it appears others may have been experiencing similar
    problems.
    My environment: Redhat Linux 8, Postgres 7.3.4 with the
    included JDBC3 driver, Apache 1.3.x, Tomcat 4.1.x and the
    webapp connector. Similar behavior was seen with Apache 2.x,
    Tomcat 4.1.x and the JK2 connector (that was on the new machine
    I setup to handle the new traffic, which, of course, died the
    night before).
    As I mentioned, this app has been running reliably for
    months with no problems. But when placed under heavy load,
    it appears to get into some sort of pathological state where
    it slows down dramatically (asymptotically?) to the point where
    it's effectively locked up. In one case, where the app was
    left running for several hours in this state, requests were
    taking 90 minutes to complete (normal is 1-5 seconds).
    From what I can deduce, there seem to be four things
    going on, three of which have been mentioned in recent threads
    here:
    1) Excessive memory consumption. When the app is
    operating normally, I see fairly flat memory usage for
    the JVM process. Under load, the JVM steadily expands
    until it hits its heap limit. I've gotten OutOfMemory
    exceptions with a heap size of 350MB, which should be plenty.
    2) Level 2 cache locking issues. I've seen dozens of
    threads waiting on a lock in the DataCache code. Not sure
    if there's a deadlock happening here or just that the
    threads are waiting on a lock that's being held for a long time.
    3) Database Connection leaks or contention. I see threads
    spinning in the DataSource code trying to get a connection.
    I also see dozens of connections from the Postgres side which
    seem to be sitting idle, but in the middle of a transaction.
    When things get bad, I also see exceptions being thrown because
    of timeouts waiting for a connection to become available. It's
    a web app, PMs should not be tied up for more than a few seconds.
    4) CPU usage pegged or nearly so for the JVM. I suspect
    this is related to #3. Something very bad is going on here.
    If I stop all inbound requests to the JVM when it's in this
    bad state, it will continue to burn CPU at 90%+ for a very
    long time. I think it will eventually finish what it's doing,
    but I haven't had the luxury of waiting for it. It's definitely
    not a linear slowdown proportional to the load.
    Attached are my kodo.properties file and some thread stack
    traces along with some comments. Any advice would be greatly
    appreciated. This is not a complicated app nor am I doing
    anything unusual. It doesn't seem logical that Kodo could
    breakdown so dramatically under load, so I'm hoping it's some
    sort of interaction thing that I can work around.
    Thanks.
    Ron Hitchens {mailto:[email protected]} RonSoft Technologies
    (510) 494-9597 (Home Office) http://www.ronsoft.com
    (707) 924-3878 (fax) Bit Twiddling At Its Finest
    "Born with a broken heart" -Kenny Wayne Shepard
    With cahce enabled, 2.5.3
    Here the app had recently slowed down and then effectively locked up.
    There where many outstanding web requests that were not receiving output.
    At this point most threads seemed to be waiting at the same location.
    There were a large number of active database connections and most of
    them had open transactions (according to pg_stat_activity). The app
    was not responding to any web requests.
    It would seem that db transactions had been started, then the thread
    got stuck for a long time on a synchronization lock in the cache lookup.
    Below are two randomly chosen thread stack dumps.
    Thread-72[1] where
    [1] java.lang.Object.wait (native method)
    [2] java.lang.Object.wait (Object.java:429)
    [3]oswego.cs.dl.util.concurrent.WriterPreferenceReadWriteLock$ReaderLock.acquir
    e (WriterPreferenceReadWriteLock.java:169)
    [4]com.solarmetric.kodo.runtime.datacache.AbstractCacheImpl.acquireReadLock
    (AbstractCacheImpl.java:384)
    [5]com.solarmetric.kodo.runtime.datacache.TimedDataCache.acquireReadLock
    (TimedDataCache.java:256)
    [6] com.solarmetric.kodo.runtime.datacache.DataCacheStoreManager.load(DataCacheStoreManager.java:595)
    [7] com.solarmetric.kodo.runtime.StateManagerImpl.loadFields(StateManagerImpl.java:2,330)
    [8] com.solarmetric.kodo.runtime.StateManagerImpl.isLoaded(StateManagerImpl.java:897)
    [9] com.europeasap.data.City.jdoGetname (null)
    [10] com.europeasap.data.City.getName (City.java:39)
    [11] com.europeasap.form.CustomerBookingForm.populateDepartureCityInfo(CustomerBookingForm.java:922)
    [12] com.europeasap.form.CustomerBookingForm.onetimeInit(CustomerBookingForm.java:871)
    [13] com.europeasap.form.CustomerBookingForm.populatePackageInfo(CustomerBookingForm.java:880)
    [14] com.europeasap.action.CustomizeTrip.perform (CustomizeTrip.java:66)
    [15] org.apache.struts.action.ActionServlet.processActionPerform(ActionServlet.java:1,787)
    [16] org.apache.struts.action.ActionServlet.process(ActionServlet.java:1,586) [17]
    org.apache.struts.action.ActionServlet.doGet (ActionServlet.java:492)
    [18] javax.servlet.http.HttpServlet.service (HttpServlet.java:740)
    [19] javax.servlet.http.HttpServlet.service (HttpServlet.java:853)
    [20] org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    [21] org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    [22] org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
    [23]org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
    eNext (StandardPipeline.java:643)
    [24] org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    [25] org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    [26] org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    [27]org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
    eNext (StandardPipeline.java:643)
    [28] org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
    [29]org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
    eNext (StandardPipeline.java:641)
    [30] org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    [31] org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    [32] org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2,415)
    [33] org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    [34]org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
    eNext (StandardPipeline.java:643)
    [35] org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
    [36]org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
    eNext (StandardPipeline.java:641)
    [37] org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
    [38]org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
    eNext (StandardPipeline.java:641)
    [39] org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    [40] org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    [41] org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
    [42]org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
    eNext (StandardPipeline.java:643)
    [43] org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    [44] org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    [45] org.apache.catalina.connector.warp.WarpRequestHandler.handle (null)
    [46] org.apache.catalina.connector.warp.WarpConnection.run (null)
    [47] java.lang.Thread.run (Thread.java:534)
    Thread-64[1] where
    [1] java.lang.Object.wait (native method)
    [2] java.lang.Object.wait (Object.java:429)
    [3]oswego.cs.dl.util.concurrent.WriterPreferenceReadWriteLock$ReaderLock.acquir
    e (WriterPreferenceReadWriteLock.java:169)
    [4]com.solarmetric.kodo.runtime.datacache.AbstractCacheImpl.acquireReadLock
    (AbstractCacheImpl.java:384)
    [5]com.solarmetric.kodo.runtime.datacache.TimedDataCache.acquireReadLock
    (TimedDataCache.java:256)
    [6] com.solarmetric.kodo.runtime.datacache.DataCacheStoreManager.load(DataCacheStoreManager.java:595)
    [7] com.solarmetric.kodo.runtime.StateManagerImpl.loadField(StateManagerImpl.java:2,248)
    [8] com.solarmetric.kodo.runtime.StateManagerImpl.isLoaded(StateManagerImpl.java:899)
    [9] com.europeasap.data.HotelPrices.jdoGetseasonalPrices (null)
    [10] com.europeasap.data.HotelPrices.normalizeIndex(HotelPrices.java:113)
    [11] com.europeasap.data.HotelPrices.getCost (HotelPrices.java:45)
    [12] com.europeasap.logic.CostHelper.findLowestHotel(CostHelper.java:181)
    [13] com.europeasap.logic.CostHelper.computeBasePackageCost(CostHelper.java:297)
    [14] com.europeasap.logic.CostHelper.computeFinalPackageCost(CostHelper.java:246)
    [15] com.europeasap.form.CustomerBookingForm.updateDisplayCosts(CustomerBookingForm.java:1,440)
    [16] com.europeasap.form.CustomerBookingForm.updateCustomizeDisplayInfo(CustomerBookingForm.java:1,407)
    [17] com.europeasap.action.CustomizeTrip.perform (CustomizeTrip.java:68)
    [18] org.apache.struts.action.ActionServlet.processActionPerform(ActionServlet.java:1,787)
    [19] org.apache.struts.action.ActionServlet.process(ActionServlet.java:1,586) [20]
    org.apache.struts.action.ActionServlet.doGet (ActionServlet.java:492)
    [21] javax.servlet.http.HttpServlet.service (HttpServlet.java:740)
    [22] javax.servlet.http.HttpServlet.service (HttpServlet.java:853)
    [23] org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    [24] org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    [25] org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
    [26]org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
    eNext (StandardPipeline.java:643)
    [27] org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    [28] org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    [29] org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    [30]org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
    eNext (StandardPipeline.java:643)
    [31] org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
    [32]org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
    eNext (StandardPipeline.java:641)
    [33] org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    [34] org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    [35] org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2,415)
    [36] org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    [37]org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
    eNext (StandardPipeline.java:643)
    [38] org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
    [39]org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
    eNext (StandardPipeline.java:641)
    [40] org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
    [41]org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
    eNext (StandardPipeline.java:641)
    [42] org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    [43] org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    [44] org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
    [45]org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
    eNext (StandardPipeline.java:643)
    [46] org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    [47] org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    [48] org.apache.catalina.connector.warp.WarpRequestHandler.handle (null)
    [49] org.apache.catalina.connector.warp.WarpConnection.run (null)
    [50] java.lang.Thread.run (Thread.java:534)
    while running slow, 2.5.3
    At this point, the app had been running several hours normally, then
    apparently slowed down and locked up while I was away. When looking
    at the app threads and database activity, everything appeared idle.
    No transactions seemed to be open in the db. But the app was not
    behaving normally. Web requests that did not make use of JDO worked
    fine (but slow). But requests that hit the db either blocked or were
    very slow to respond.
    Looking back at the log, there had been a large number of requests
    that threw exceptions because they could not get a connection within
    five seconds.
    Most threads were idle, waiting on read, but some were in the state
    shown by the following two stack dumps. Unlike the cache threads above,
    they did not seem to be waiting for a lock to be granted, they seemed
    to be spinning in the connection management code. Apparently trying
    to get a connection. I suspended and resumed the same thread repeatedly
    and it always seemd to be doing the same thing. Single stepping was
    very difficult because the debugger was slow to respond, apparently
    because of other threads also busy spinning.
    Postgres indicated that there where lots of connections open and
    that they were all idle, so there should not have been a shortage
    of connections in the pool. There are two mysteries here: 1) why
    can't this thread get a connection? and 2) Why is it busy spinning?
    Thread-56[1] where
    [1]com.solarmetric.datasource.PreparedStatementCache$CacheAwareConnection.prepa
    reStatement (PreparedStatementCache.java:184)
    [2]com.solarmetric.datasource.PreparedStatementCache$CacheAwareConnection.prepa
    reStatement (PreparedStatementCache.java:169)
    [3] com.solarmetric.datasource.ConnectionWrapper.prepareStatement(ConnectionWrapper.java:199)
    [4]com.solarmetric.kodo.impl.jdbc.schema.dict.AbstractDictionary.isClosed
    (AbstractDictionary.java:1,912)
    [5]com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.getConnectionFromFact
    ory (SQLExecutionManagerImpl.java:186)
    [6] com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.getConnection(SQLExecutionManagerImpl.java:147)
    [7]com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.newSQLExecutionManag
    er (JDBCStoreManager.java:828)
    [8]com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.getSQLExecutionManag
    er (JDBCStoreManager.java:714)
    [9]com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.getDatastoreConnecti
    on (JDBCStoreManager.java:287)
    [10]com.solarmetric.kodo.runtime.datacache.DataCacheStoreManager.getDatastoreCon
    nection (DataCacheStoreManager.java:465)
    [11] com.solarmetric.kodo.runtime.datacache.DataCacheStoreManager.load(DataCacheStoreManager.java:591)
    [12] com.solarmetric.kodo.runtime.StateManagerImpl.loadFields(StateManagerImpl.java:2,330)
    [13] com.solarmetric.kodo.runtime.StateManagerImpl.isLoaded(StateManagerImpl.java:897)
    [14] com.europeasap.data.City.jdoGetname (null)
    [15] com.europeasap.data.City.getName (City.java:39)
    [16] com.europeasap.form.CustomerBookingForm.populateDepartureCityInfo(CustomerBookingForm.java:922)
    [17] com.europeasap.form.CustomerBookingForm.onetimeInit(CustomerBookingForm.java:871)
    [18] com.europeasap.form.CustomerBookingForm.populatePackageInfo(CustomerBookingForm.java:880)
    [19] com.europeasap.action.CustomizeTrip.perform (CustomizeTrip.java:66)
    [20] org.apache.struts.action.ActionServlet.processActionPerform(ActionServlet.java:1,787)
    [21] org.apache.struts.action.ActionServlet.process(ActionServlet.java:1,586) [22]
    org.apache.struts.action.ActionServlet.doGet (ActionServlet.java:492)
    [23] javax.servlet.http.HttpServlet.service (HttpServlet.java:740)
    [24] javax.servlet.http.HttpServlet.service (HttpServlet.java:853)
    [25] org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    [26] org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    [27] org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
    [28]org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
    eNext (StandardPipeline.java:643)
    [29] org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    [30] org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    [31] org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    [32]org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
    eNext (StandardPipeline.java:643)
    [33] org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
    [34]org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
    eNext (StandardPipeline.java:641)
    [35] org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    [36] org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    [37] org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2,415)
    [38] org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    [39]org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
    eNext (StandardPipeline.java:643)
    [40] org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
    [41]org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
    eNext (StandardPipeline.java:641)
    [42] org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
    [43]org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
    eNext (StandardPipeline.java:641)
    [44] org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    [45] org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    [46] org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
    [47]org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
    eNext (StandardPipeline.java:643)
    [48] org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    [49] org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    [50] org.apache.catalina.connector.warp.WarpRequestHandler.handle (null)
    [51] org.apache.catalina.connector.warp.WarpConnection.run (null)
    [52] java.lang.Thread.run (Thread.java:534)
    Thread-56[1] where
    [1]com.solarmetric.datasource.DataSourceImpl$AbstractPool.findConnection
    (DataSourceImpl.java:826)
    [2] com.solarmetric.datasource.DataSourceImpl$AbstractPool.getConnection(DataSourceImpl.java:605)
    [3] com.solarmetric.datasource.DataSourceImpl.getConnection(DataSourceImpl.java:363)
    [4] com.solarmetric.datasource.DataSourceImpl.getConnection(DataSourceImpl.java:356)
    [5]com.solarmetric.kodo.impl.jdbc.runtime.DataSourceConnector.getConnection
    (DataSourceConnector.java:63)
    [6]com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.getConnectionFromFact
    ory (SQLExecutionManagerImpl.java:185)
    [7] com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.getConnection(SQLExecutionManagerImpl.java:147)
    [8]com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.newSQLExecutionManag
    er (JDBCStoreManager.java:828)
    [9]com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.getSQLExecutionManag
    er (JDBCStoreManager.java:714)
    [10]com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.getDatastoreConnecti
    on (JDBCStoreManager.java:287)
    [11]com.solarmetric.kodo.runtime.datacache.DataCacheStoreManager.getDatastoreCon
    nection (DataCacheStoreManager.java:465)
    [12]com.solarmetric.kodo.runtime.datacache.DataCacheStoreManager.initialize
    (DataCacheStoreManager.java:519)
    [13] com.solarmetric.kodo.runtime.StateManagerImpl.loadInitialState(StateManagerImpl.java:215)
    [14]com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter
    (PersistenceManagerImpl.java:1,278)
    [15] com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(PersistenceManagerImpl.java:1,179)
    [16]com.solarmetric.kodo.runtime.datacache.query.CacheAwareQuery$CachedResultLis
    t.get (CacheAwareQuery.java:432)
    [17] java.util.AbstractList$Itr.next (AbstractList.java:421)
    [18] com.europeasap.form.CustomerBookingForm.populateDepartureCityInfo(CustomerBookingForm.java:919)
    [19] com.europeasap.form.CustomerBookingForm.onetimeInit(CustomerBookingForm.java:871)
    [20] com.europeasap.form.CustomerBookingForm.populatePackageInfo(CustomerBookingForm.java:880)
    [21] com.europeasap.action.CustomizeTrip.perform (CustomizeTrip.java:66)
    [22] org.apache.struts.action.ActionServlet.processActionPerform(ActionServlet.java:1,787)
    [23] org.apache.struts.action.ActionServlet.process(ActionServlet.java:1,586) [24]
    org.apache.struts.action.ActionServlet.doGet (ActionServlet.java:492)
    [25] javax.servlet.http.HttpServlet.service (HttpServlet.java:740)
    [26] javax.servlet.http.HttpServlet.service (HttpServlet.java:853)
    [27] org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    [28] org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    [29] org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
    [30]org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
    eNext (StandardPipeline.java:643)
    [31] org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    [32] org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    [33] org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    [34]org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
    eNext (StandardPipeline.java:643)
    [35] org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
    [36]org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
    eNext (StandardPipeline.java:641)
    [37] org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    [38] org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    [39] org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2,415)
    [40] org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    [41]org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
    eNext (StandardPipeline.java:643)
    [42] org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
    [43]org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
    eNext (StandardPipeline.java:641)
    [44] org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
    [45]org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
    eNext (StandardPipeline.java:641)
    [46] org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    [47] org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    [48] org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
    [49]org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
    eNext (StandardPipeline.java:643)
    [50] org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    [51] org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    [52] org.apache.catalina.connector.warp.WarpRequestHandler.handle (null)
    [53] org.apache.catalina.connector.warp.WarpConnection.run (null)
    [54] java.lang.Thread.run (Thread.java:534)
    With cache disabled 2.4.3
    This run was an accident. I inadvertently ran the app with the older
    2.4.3 version of Kodo, with the cache disabled. This one got into trouble
    almost immediately. It also seemed to lockup with lots of opentransactions
    in the db. It's also interesting that these two threads also seem to be
    hanging around the same method as in 2.5.3.
    Thread-63[1] where 0x9f9
    [1]com.solarmetric.datasource.PreparedStatementCache$CacheAwareConnection.prepa
    reStatement (PreparedStatementCache.java:184)
    [2] com.solarmetric.datasource.ConnectionWrapper.prepareStatement(ConnectionWrapper.java:377)
    [3]com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.prepareStatementInter
    nal (SQLExecutionManagerImpl.java:807)
    [4]com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.executePreparedQueryI
    nternal (SQLExecutionManagerImpl.java:761)
    [5]com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.executeQueryInternal
    (SQLExecutionManagerImpl.java:691)
    [6] com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.executeQuery(SQLExecutionManagerImpl.java:372)
    [7] com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.executeQuery(SQLExecutionManagerImpl.java:356)
    [8] com.solarmetric.kodo.impl.jdbc.ormapping.ClassMapping.loadByPK(ClassMapping.java:950)
    [9] com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.initialize(JDBCStoreManager.java:263)
    [10] com.solarmetric.kodo.runtime.StateManagerImpl.loadInitialState(StateManagerImpl.java:174)
    [11]com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter
    (PersistenceManagerImpl.java:1,023)
    [12] com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(PersistenceManagerImpl.java:942)
    [13] com.solarmetric.kodo.impl.jdbc.ormapping.OneToOneMapping.load(OneToOneMapping.java:147)
    [14] com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.load(JDBCStoreManager.java:375)
    [15] com.solarmetric.kodo.runtime.StateManagerImpl.loadField(StateManagerImpl.java:2,035)
    [16] com.solarmetric.kodo.runtime.StateManagerImpl.isLoaded(StateManagerImpl.java:720)
    [17] com.europeasap.data.CityMarkup.jdoGetcity (null)
    [18] com.europeasap.data.CityMarkup.getCity (CityMarkup.java:30)
    [19] com.europeasap.logic.CostHelper.getCityMarkup (CostHelper.java:81)
    [20] com.europeasap.logic.CostHelper.computeBasePackageCost(CostHelper.java:289)
    [21] com.europeasap.logic.CostHelper.computeFinalPackageCost(CostHelper.java:246)
    [22] com.europeasap.form.CustomerBookingForm.updateDisplayCosts(CustomerBookingForm.java:1,440)
    [23] com.europeasap.form.CustomerBookingForm.updateCustomizeDisplayInfo(CustomerBookingForm.java:1,407)
    [24] com.europeasap.action.CustomizeTrip.perform (CustomizeTrip.java:68)
    [25] org.apache.struts.action.ActionServlet.processActionPerform(ActionServlet.java:1,787)
    [26] org.apache.struts.action.ActionServlet.process(ActionServlet.java:1,586) [27]
    org.apache.struts.action.ActionServlet.doPost (ActionServlet.java:510)
    [28] javax.servlet.http.HttpServlet.service (HttpServlet.java:760)
    [29] javax.servlet.http.HttpServlet.service (HttpServlet.java:853)
    [30] org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    [31] org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    [32] org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
    [33]org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
    eNext (StandardPipeline.java:643)
    [34] org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    [35] org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    [36] org.apache.catal

  • A bug in jdoNewInstance?

    I'm getting a nasty exception from my Kodo-enhanced classes, because the
    generated code for jdoNewInstance(StateManager,Object) is trying to set
    the a private primary key field of a superclass.
    I have a fairly concise reproduction of the problem.
    package test;
    public class Grobble
    public Grobble(long id) { this.id = id; }
    public Grobble getChild() { return child; }
    public void setChild(Grobble child) { this.child = child; }
    private long id;
    private Grobble child;
    static public class ID { public long id; }
    package test;
    public class GrobbleSub
    extends Grobble
    public GrobbleSub(long id) { super(id); }
    <?xml version="1.0"?>
    <jdo>
    <package name="test">
    <class name="Grobble"
    identity-type="application"
    objectid-class="Grobble$ID">
    <field name="id" primary-key="true" />
    </class>
    <class name="GrobbleSub"
    persistence-capable-superclass="Grobble"
    identity-type="application"
    objectid-class="Grobble$ID">
    </class>
    </package>
    </jdo>
    If I persist an instance of GrobbleSub, and then I do this from within an
    EJB...
    persist.getExtent(test.Grobble.class, true).iterator().next();
    ...I get the following exception:
    java.lang.IllegalAccessError: try to access field test.Grobble.id from
    class test.GrobbleSub
    at test.GrobbleSub.jdoNewInstance(GrobbleSub.java)
    at javax.jdo.JDOImplHelper.newInstance(JDOImplHelper.java:154)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.loadFromResultSet(JDBCStoreManager.java:627)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.initialize(JDBCStoreManager.java:245)
    at
    com.solarmetric.kodo.runtime.StateManagerImpl.<init>(StateManagerImpl.java:100)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(PersistenceManagerImpl.java:937)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(PersistenceManagerImpl.java:872)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.createFromResultSet(JDBCStoreManager.java:602)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.executeQuery(JDBCStoreManager.java:557)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCExtent.getIterator(JDBCExtent.java:40)
    at
    com.solarmetric.kodo.query.ExtentImpl.iterator(ExtentImpl.java:44)
    at
    com.solarmetric.kodo.runtime.CacheAwareExtent$CacheAwareIterator.<init>(CacheAwareExtent.java:154)
    at
    com.solarmetric.kodo.runtime.CacheAwareExtent.iterator(CacheAwareExtent.java:132)
    at com.retek.MyEJB.test(MyEJB.java:162)
    I've disassembled the enhanced classes, and it looks like GrobbleSub is
    trying to set Grobble.id directly -- which explains the problem!
    Am I correct that this is, in fact, a bug? Is it a known bug? How shall
    I work around it? It's stopping us cold at the moment.
    Thanks,
    Paul

    Hey,
    See http://bugzilla.solarmetric.com:8080/show_bug.cgi?id=123 for a
    description of what's going on here, and see the
    'java.lang.IllegalAccessError: Inheritance Broken runningunder Tomcat'
    thread from last week for another discussion of the problem.
    In brief, this will go away in Kodo JDO 2.3, as the 1.0 specification
    resolves a bug that existed in the .95 spec.
    -Patrick
    On 5/29/02 3:28 PM, "Paul Cantrell" <[email protected]> wrote:
    I'm getting a nasty exception from my Kodo-enhanced classes, because the
    generated code for jdoNewInstance(StateManager,Object) is trying to set
    the a private primary key field of a superclass.
    I have a fairly concise reproduction of the problem.
    package test;
    public class Grobble
    public Grobble(long id) { this.id = id; }
    public Grobble getChild() { return child; }
    public void setChild(Grobble child) { this.child = child; }
    private long id;
    private Grobble child;
    static public class ID { public long id; }
    package test;
    public class GrobbleSub
    extends Grobble
    public GrobbleSub(long id) { super(id); }
    <?xml version="1.0"?>
    <jdo>
    <package name="test">
    <class name="Grobble"
    identity-type="application"
    objectid-class="Grobble$ID">
    <field name="id" primary-key="true" />
    </class>
    <class name="GrobbleSub"
    persistence-capable-superclass="Grobble"
    identity-type="application"
    objectid-class="Grobble$ID">
    </class>
    </package>
    </jdo>
    If I persist an instance of GrobbleSub, and then I do this from within an
    EJB...
    persist.getExtent(test.Grobble.class, true).iterator().next();
    ..I get the following exception:
    java.lang.IllegalAccessError: try to access field test.Grobble.id from
    class test.GrobbleSub
    at test.GrobbleSub.jdoNewInstance(GrobbleSub.java)
    at javax.jdo.JDOImplHelper.newInstance(JDOImplHelper.java:154)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.loadFromResultSet(JDBC
    StoreManager.java:627)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.initialize(JDBCStoreMa
    nager.java:245)
    at
    com.solarmetric.kodo.runtime.StateManagerImpl.<init>(StateManagerImpl.java:100>
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(Persis
    tenceManagerImpl.java:937)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(PersistenceM
    anagerImpl.java:872)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.createFromResultSet(JD
    BCStoreManager.java:602)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.executeQuery(JDBCStore
    Manager.java:557)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCExtent.getIterator(JDBCExtent.java:
    40)
    at
    com.solarmetric.kodo.query.ExtentImpl.iterator(ExtentImpl.java:44)
    at
    com.solarmetric.kodo.runtime.CacheAwareExtent$CacheAwareIterator.<init>(CacheA
    wareExtent.java:154)
    at
    com.solarmetric.kodo.runtime.CacheAwareExtent.iterator(CacheAwareExtent.java:1
    32)
    at com.retek.MyEJB.test(MyEJB.java:162)
    I've disassembled the enhanced classes, and it looks like GrobbleSub is
    trying to set Grobble.id directly -- which explains the problem!
    Am I correct that this is, in fact, a bug? Is it a known bug? How shall
    I work around it? It's stopping us cold at the moment.
    Thanks,
    Paul
    Patrick Linskey [email protected]
    SolarMetric Inc. http://www.solarmetric.com

  • DataStoreException for multi-table inheritence using numeric indicator value

    I am using multi-table inheritance with Kodo 2.5.5
    Relevant kodo.properties are:
    com.solarmetric.kodo.PersistentTypes=com.letsys.erespond.business.model.netw
    ork.PowerTransformer,com.letsys.erespond.business.model.network.Device,com.l
    etsys.erespond.business.model.network.ElectricalDevice,com.letsys.erespond.b
    usiness.model.network.Switch
    javax.jdo.PersistenceManagerFactoryClass=com.solarmetric.kodo.impl.jdbc.JDBC
    PersistenceManagerFactory
    com.solarmetric.kodo.impl.jdbc.DefaultSubclassProviderClass=com.solarmetric.
    kodo.impl.jdbc.ormapping.IntegerSubclassProvider
    I have given each of my PC classes s a numeric subclass indicator value (to
    improve join performance)
    e.g.
    <extension vendor-name="kodo" key="subclass-indicator-value" value="1">
    </extension>
    Here is my query code, the exception is at the end of the email:
    Extent e = pm.getExtent(Device.class, true);
    Query q = pm.newQuery(e, "active == p1");
    q.declareParameters("int p1");
    Collection c = (Collection)q.execute(new Integer(1));
    Iterator iter = c.iterator();
    while (iter.hasNext()) {
    Device d = (Device)iter.next();
    System.out.println("name="+d.getName());
    NOTE: The above code works if I first do a similar query, but specify the
    subclass in the pm.getExtent()
    It seems to me that the persistent classes listed in kodo.properties are not
    getting loaded.
    I also get this from debug on startup
    421 DEBUG [TestRunner-Thread] kodo.Runtime -
    [email protected]067:
    registering 1 classes: [class
    com.letsys.erespond.business.model.network.Device]
    421 DEBUG [TestRunner-Thread] kodo.MetaData - found JDO resource
    Device.jdo for com.letsys.erespond.business.model.network.Device at
    file:/C:/Dev/projectm/classes/com/letsys/erespond/business/model/network/Device.jdo
    421 INFO [TestRunner-Thread] kodo.MetaData -
    com.solarmetric.kodo.meta.JDOMetaDataParser@d12eea: parsing source:
    file:/C:/Dev/projectm/classes/com/letsys/erespond/business/model/network/Device.jdo
    I would have expected it to register all my PC classes at this stage.
    Any ideas ???
    Regards,
    Chris.
    [junit] Testcase: testInheritenceQuery took 9.747 sec
    [junit] Caused an ERROR
    [junit] com.solarmetric.kodo.runtime.DataStoreException: Type "null",
    the type registered for subclass indicatorvalue "3", is re
    ferenced in the database, but does not exist.
    [junit] NestedThrowables:
    [junit] com.solarmetric.kodo.runtime.DataStoreException: Type "3" is
    referenced in the database, but does not exist.
    [junit] com.solarmetric.kodo.runtime.FatalDataStoreException:
    com.solarmetric.kodo.runtime.DataStoreException: Type "null", the
    type registered for subclass indicatorvalue "3", is referenced in the
    database, but does not exist.
    [junit] NestedThrowables:
    [junit] com.solarmetric.kodo.runtime.DataStoreException: Type "3" is
    referenced in the database, but does not exist.
    [junit] NestedThrowables:
    [junit] com.solarmetric.kodo.runtime.DataStoreException: Type "null",
    the type registered for subclass indicatorvalue "3", is re
    ferenced in the database, but does not exist.
    [junit] NestedThrowables:
    [junit] com.solarmetric.kodo.runtime.DataStoreException: Type "3" is
    referenced in the database, but does not exist.
    [junit] at
    com.solarmetric.kodo.impl.jdbc.runtime.LazyResultList.instantiateRow(LazyRes
    ultList.java:217)
    [junit] at
    com.solarmetric.kodo.impl.jdbc.runtime.LazyResultList.get(LazyResultList.jav
    a:142)
    [junit] at java.util.AbstractList$Itr.next(AbstractList.java:416)
    [junit] at
    com.solarmetric.kodo.runtime.objectprovider.ResultListIterator.next(ResultLi
    stIterator.java:49)
    [junit] at
    com.solarmetric.kodo.impl.jdbc.runtime.ResultListFactory.createResultList(Re
    sultListFactory.java:82)
    [junit] at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.executeQuery(JDBCSto
    reManager.java:1138)
    [junit] at
    com.solarmetric.kodo.impl.jdbc.query.JDBCQuery.executeQuery(JDBCQuery.java:1
    26)
    [junit] at
    com.solarmetric.kodo.query.QueryImpl$DatastoreQueryExecutor.executeQuery(Que
    ryImpl.java:1565)
    [junit] at
    com.solarmetric.kodo.query.QueryImpl.executeQueryWithMap(QueryImpl.java:685)
    [junit] at
    com.solarmetric.kodo.query.QueryImpl.executeWithMap(QueryImpl.java:545)
    [junit] at
    com.solarmetric.kodo.query.QueryImpl.executeWithArray(QueryImpl.java:531)
    [junit] at
    com.solarmetric.kodo.query.QueryImpl.execute(QueryImpl.java:501)
    [junit] at
    com.letsys.erespond.business.model.network.DeviceAppTest.testInheritenceQuer
    y(DeviceAppTest.java:32)
    [junit] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
    Method)
    [junit] at
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
    [junit] at
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
    ..java:25)
    [junit] NestedThrowablesStackTrace:
    [junit] com.solarmetric.kodo.runtime.DataStoreException: Type "null",
    the type registered for subclass indicatorvalue "3", is re
    ferenced in the database, but does not exist.
    [junit] NestedThrowables:
    [junit] com.solarmetric.kodo.runtime.DataStoreException: Type "3" is
    referenced in the database, but does not exist.
    [junit] at
    com.solarmetric.kodo.impl.jdbc.ormapping.IntegerSubclassProvider.getType(Int
    egerSubclassProvider.java:214)
    [junit] at
    com.solarmetric.kodo.impl.jdbc.ormapping.SubclassProviderImpl.getType(Subcla
    ssProviderImpl.java:97)
    [junit] at
    com.solarmetric.kodo.impl.jdbc.ormapping.ClassMapping.loadPrimaryMappings(Cl
    assMapping.java:1060)
    [junit] at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.initialize(JDBCStore
    Manager.java:374)
    [junit] at
    com.solarmetric.kodo.runtime.StateManagerImpl.loadInitialState(StateManagerI
    mpl.java:215)
    [junit] at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(Pers
    istenceManagerImpl.java:1278)
    [junit] at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(Persistenc
    eManagerImpl.java:1196)
    [junit] at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.createFromResultSet(
    JDBCStoreManager.java:967)
    [junit] at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager$2.getResultObject(JD
    BCStoreManager.java:1146)
    [junit] at
    com.solarmetric.kodo.impl.jdbc.runtime.LazyResultList.instantiateRow(LazyRes
    ultList.java:199)
    [junit] at
    com.solarmetric.kodo.impl.jdbc.runtime.LazyResultList.get(LazyResultList.jav
    a:142)
    [junit] at java.util.AbstractList$Itr.next(AbstractList.java:416)
    [junit] at
    com.solarmetric.kodo.runtime.objectprovider.ResultListIterator.next(ResultLi
    stIterator.java:49)
    [junit] at
    com.solarmetric.kodo.impl.jdbc.runtime.ResultListFactory.createResultList(Re
    sultListFactory.java:82)
    [junit] at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.executeQuery(JDBCSto
    reManager.java:1138)
    [junit] at
    com.solarmetric.kodo.impl.jdbc.query.JDBCQuery.executeQuery(JDBCQuery.java:1
    26)
    [junit] at
    com.solarmetric.kodo.query.QueryImpl$DatastoreQueryExecutor.executeQuery(Que
    ryImpl.java:1565)
    [junit] at
    com.solarmetric.kodo.query.QueryImpl.executeQueryWithMap(QueryImpl.java:685)
    [junit] at
    com.solarmetric.kodo.query.QueryImpl.executeWithMap(QueryImpl.java:545)
    [junit] at
    com.solarmetric.kodo.query.QueryImpl.executeWithArray(QueryImpl.java:531)
    [junit] at
    com.solarmetric.kodo.query.QueryImpl.execute(QueryImpl.java:501)
    [junit] at
    com.letsys.erespond.business.model.network.DeviceAppTest.testInheritenceQuer
    y(DeviceAppTest.java:32)
    [junit] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
    Method)
    [junit] at
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
    [junit] at
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
    ..java:25)
    [junit] NestedThrowablesStackTrace:
    [junit] com.solarmetric.kodo.runtime.DataStoreException: Type "3" is
    referenced in the database, but does not exist.
    [junit] at
    com.solarmetric.kodo.impl.jdbc.ormapping.IntegerSubclassProvider.getType(Int
    egerSubclassProvider.java:207)
    [junit] at
    com.solarmetric.kodo.impl.jdbc.ormapping.SubclassProviderImpl.getType(Subcla
    ssProviderImpl.java:97)
    [junit] at
    com.solarmetric.kodo.impl.jdbc.ormapping.ClassMapping.loadPrimaryMappings(Cl
    assMapping.java:1060)
    [junit] at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.initialize(JDBCStore
    Manager.java:374)
    [junit] at
    com.solarmetric.kodo.runtime.StateManagerImpl.loadInitialState(StateManagerI
    mpl.java:215)
    [junit] at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(Pers
    istenceManagerImpl.java:1278)
    [junit] at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(Persistenc
    eManagerImpl.java:1196)
    [junit] at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.createFromResultSet(
    JDBCStoreManager.java:967)
    [junit] at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager$2.getResultObject(JD
    BCStoreManager.java:1146)
    [junit] at
    com.solarmetric.kodo.impl.jdbc.runtime.LazyResultList.instantiateRow(LazyRes
    ultList.java:199)
    [junit] at
    com.solarmetric.kodo.impl.jdbc.runtime.LazyResultList.get(LazyResultList.jav
    a:142)
    [junit] at java.util.AbstractList$Itr.next(AbstractList.java:416)
    [junit] at
    com.solarmetric.kodo.runtime.objectprovider.ResultListIterator.next(ResultLi
    stIterator.java:49)
    [junit] at
    com.solarmetric.kodo.impl.jdbc.runtime.ResultListFactory.createResultList(Re
    sultListFactory.java:82)
    [junit] at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.executeQuery(JDBCSto
    reManager.java:1138)
    [junit] at
    com.solarmetric.kodo.impl.jdbc.query.JDBCQuery.executeQuery(JDBCQuery.java:1
    26)
    [junit] at
    com.solarmetric.kodo.query.QueryImpl$DatastoreQueryExecutor.executeQuery(Que
    ryImpl.java:1565)
    [junit] at
    com.solarmetric.kodo.query.QueryImpl.executeQueryWithMap(QueryImpl.java:685)
    [junit] at
    com.solarmetric.kodo.query.QueryImpl.executeWithMap(QueryImpl.java:545)
    [junit] at
    com.solarmetric.kodo.query.QueryImpl.executeWithArray(QueryImpl.java:531)
    [junit] at
    com.solarmetric.kodo.query.QueryImpl.execute(QueryImpl.java:501)
    [junit] at
    com.letsys.erespond.business.model.network.DeviceAppTest.testInheritenceQuer
    y(DeviceAppTest.java:32)
    [junit] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
    Method)
    [junit] at
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
    [junit] at
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
    ..java:25)
    [junit] Testcase: testInheritenceQuery
    [junit] TEST com.letsys.erespond.business.model.network.DeviceAppTest
    FAILED

    Marc,
    All of my PC classes are in the result of the api call you suggested:
    [junit] Kodo type[0] =
    com.letsys.erespond.business.model.network.PowerTransformer
    [junit] Kodo type[1] = com.letsys.erespond.business.model.network.Device
    [junit] Kodo type[2] =
    com.letsys.erespond.business.model.network.ElectricalDevice
    [junit] Kodo type[3] = com.letsys.erespond.business.model.network.Switch
    However, when doing the query, it only seems to read the parent jdo file
    [junit] (kodo.MetaData 89 )
    com.solarmetric.kodo.meta.JDOMetaDataParser@16477d9: parsing source:
    file:C:/Dev/projectm/classes/com/letsys/erespond/business/model/network/Device.jdo
    When I do a Class.forName() on each of the classes, I see that it loads in
    all the .jdo files.
    Chris.
    "Marc Prud'hommeaux" <[email protected]> wrote in message
    news:[email protected]..
    Chris-
    Strange. It does seem like your PersistentTypes property is not being
    used at all.
    Can you try casting your pmf to a JDBCPersistenceManagerFactory and
    seeing if your types have actually been registered with:
    String[] types = pmf.getConfiguration ().getPersistentTypeNames ();
    In article <bop53p$a5u$[email protected]>, Chris McCarthy wrote:
    Hi Patrick,
    Just tried it and yes, doing a Class.forName() on the classes I insert
    does provide a work-around.
    Any idea what is causing this ?
    Regards,
    Chris.
    "Patrick Linskey" <[email protected]> wrote in message
    news:boc31n$7do$[email protected]..
    Chris,
    What happens if you do a Class.forName() (or just a class reference) to
    each of your persistent classes before executing any JDO code?
    -Patrick
    Marc Prud'hommeaux [email protected]
    SolarMetric Inc. http://www.solarmetric.com

  • Why Kodo tries to reload deleted object?

    Hello,
    I'm deleting User object that has dependent child object. Child is removed
    in jdoPreDelete() method. Than client application invokes different method
    selecting all the Users by Extent (for different PersistenceManager
    instance):
    Extent userExt = pm.getExtent(User.class, true);
    Iterator it = userExt.iterator();
    while (it.hasNext()) {
    User user = (User) it.next();
    On the it.next() call I get the following exception:
    javax.jdo.JDODataStoreException: The instance "253" does not exist in the
    data store.
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(Pers
    istenceManagerImpl.java:860)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(Persistenc
    eManagerImpl.java:781)
    at com.solarmetric.kodo.runtime.PCData.lookup(PCData.java:518)
    at com.solarmetric.kodo.runtime.PCData.getData(PCData.java:494)
    at com.solarmetric.kodo.runtime.PCData.load(PCData.java:210)
    at com.solarmetric.kodo.runtime.PCData.load(PCData.java:112)
    at
    com.solarmetric.kodo.runtime.datacache.DataCacheStoreManager.initialize(Data
    CacheStoreManager.java:221)
    at
    com.solarmetric.kodo.runtime.StateManagerImpl.loadInitialState(StateManagerI
    mpl.java:112)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(Pers
    istenceManagerImpl.java:859)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(Persistenc
    eManagerImpl.java:781)
    at com.solarmetric.kodo.runtime.PCData.lookup(PCData.java:518)
    at com.solarmetric.kodo.runtime.PCData.getData(PCData.java:494)
    at com.solarmetric.kodo.runtime.PCData.load(PCData.java:210)
    at com.solarmetric.kodo.runtime.PCData.load(PCData.java:112)
    at
    com.solarmetric.kodo.runtime.datacache.DataCacheStoreManager.initialize(Data
    CacheStoreManager.java:221)
    at
    com.solarmetric.kodo.runtime.StateManagerImpl.loadInitialState(StateManagerI
    mpl.java:112)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(Pers
    istenceManagerImpl.java:859)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(Persistenc
    eManagerImpl.java:781)
    at com.solarmetric.kodo.runtime.PCData.lookup(PCData.java:518)
    at com.solarmetric.kodo.runtime.PCData.getData(PCData.java:494)
    at com.solarmetric.kodo.runtime.PCData.load(PCData.java:210)
    at com.solarmetric.kodo.runtime.PCData.load(PCData.java:112)
    at
    com.solarmetric.kodo.runtime.datacache.DataCacheStoreManager.initialize(Data
    CacheStoreManager.java:221)
    at
    com.solarmetric.kodo.runtime.StateManagerImpl.loadInitialState(StateManagerI
    mpl.java:112)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(Pers
    istenceManagerImpl.java:859)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(Persistenc
    eManagerImpl.java:781)
    at com.solarmetric.kodo.runtime.PCData.lookup(PCData.java:518)
    at com.solarmetric.kodo.runtime.PCData.getData(PCData.java:494)
    at com.solarmetric.kodo.runtime.PCData.load(PCData.java:210)
    at com.solarmetric.kodo.runtime.PCData.load(PCData.java:112)
    at
    com.solarmetric.kodo.runtime.datacache.DataCacheStoreManager.initialize(Data
    CacheStoreManager.java:221)
    at
    com.solarmetric.kodo.runtime.StateManagerImpl.loadInitialState(StateManagerI
    mpl.java:112)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(Pers
    istenceManagerImpl.java:859)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(Persistenc
    eManagerImpl.java:781)
    at com.solarmetric.kodo.runtime.PCData.lookup(PCData.java:518)
    at com.solarmetric.kodo.runtime.PCData.getData(PCData.java:494)
    at com.solarmetric.kodo.runtime.PCData.load(PCData.java:195)
    at com.solarmetric.kodo.runtime.PCData.load(PCData.java:112)
    at
    com.solarmetric.kodo.runtime.datacache.DataCacheStoreManager.initialize(Data
    CacheStoreManager.java:221)
    at
    com.solarmetric.kodo.runtime.StateManagerImpl.loadInitialState(StateManagerI
    mpl.java:112)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(Pers
    istenceManagerImpl.java:859)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(Persistenc
    eManagerImpl.java:781)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.createFromResultSet(
    JDBCStoreManager.java:700)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager$2.getResultObject(JD
    BCStoreManager.java:652)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.LazyResultList.instantiateRow(LazyRes
    ultList.java:168)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.LazyResultList.get(LazyResultList.jav
    a:114)
    at java.util.AbstractList$Itr.next(AbstractList.java:416)
    at
    com.solarmetric.kodo.runtime.ResultListIterator.next(ResultListIterator.java
    :49)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.ResultListFactory.createResultList(Re
    sultListFactory.java:85)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.executeQuery(JDBCSto
    reManager.java:646)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCExtent.getIterator(JDBCExtent.jav
    a:49)
    at
    com.solarmetric.kodo.runtime.ExtentImpl$TransactionAwareIterator.newIterator
    (ExtentImpl.java:219)
    at serp.util.MultiIterator.setIterator(MultiIterator.java:70)
    at serp.util.MultiIterator.hasNext(MultiIterator.java:25)
    at
    com.solarmetric.kodo.runtime.ExtentImpl$TransactionAwareIterator.hasNext(Ext
    entImpl.java:195)
    at
    net.xtrim.crm.system.persistence.UserFactory.getUsers(UserFactory.java:121)
    at net.xtrim.crm.user.ejb.UserFacadeBean.getUsers(UserFacadeBean.java:106)
    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:324)
    at
    org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(Stateles
    sSessionContainer.java:660)
    at
    org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(Cach
    edConnectionInterceptor.java:186)
    at
    org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSe
    ssionInstanceInterceptor.java:77)
    at
    org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor
    ..java:107)
    at
    org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.
    java:151)
    at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:60)
    at
    org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:13
    0)
    at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:204)
    at
    org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContainer.jav
    a:313)
    at org.jboss.ejb.Container.invoke(Container.java:712)
    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:517)
    at
    org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:382)
    at sun.reflect.GeneratedMethodAccessor50.invoke(Unknown Source)
    at
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
    ..java:25)
    at java.lang.reflect.Method.invoke(Method.java:324)
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261)
    at sun.rmi.transport.Transport$1.run(Transport.java:148)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.Transport.serviceCall(Transport.java:144)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
    at
    sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:7
    01)
    at java.lang.Thread.run(Thread.java:536)
    Am I doing something wrong?
    P.S. Everything works fine if User has no child reference.

    I've disabled PMF cache but it didn't help.... :(
    "Patrick Linskey" <[email protected]> wrote in message
    news:[email protected]...
    A temporary workaround is to disable the PMF cache.
    -Patrick
    Alexey Maslov wrote:
    Hello,
    I'm deleting User object that has dependent child object. Child is
    removed
    in jdoPreDelete() method. Than client application invokes different
    method
    selecting all the Users by Extent (for different PersistenceManager
    instance):
    Extent userExt = pm.getExtent(User.class, true);
    Iterator it = userExt.iterator();
    while (it.hasNext()) {
    User user = (User) it.next();
    On the it.next() call I get the following exception:
    javax.jdo.JDODataStoreException: The instance "253" does not exist inthe
    data store.
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(Pers
    istenceManagerImpl.java:860)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(Persistenc
    eManagerImpl.java:781)
    at com.solarmetric.kodo.runtime.PCData.lookup(PCData.java:518)
    at com.solarmetric.kodo.runtime.PCData.getData(PCData.java:494)
    at com.solarmetric.kodo.runtime.PCData.load(PCData.java:210)
    at com.solarmetric.kodo.runtime.PCData.load(PCData.java:112)
    at
    com.solarmetric.kodo.runtime.datacache.DataCacheStoreManager.initialize(Data
    CacheStoreManager.java:221)
    at
    com.solarmetric.kodo.runtime.StateManagerImpl.loadInitialState(StateManagerI
    mpl.java:112)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(Pers
    istenceManagerImpl.java:859)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(Persistenc
    eManagerImpl.java:781)
    at com.solarmetric.kodo.runtime.PCData.lookup(PCData.java:518)
    at com.solarmetric.kodo.runtime.PCData.getData(PCData.java:494)
    at com.solarmetric.kodo.runtime.PCData.load(PCData.java:210)
    at com.solarmetric.kodo.runtime.PCData.load(PCData.java:112)
    at
    com.solarmetric.kodo.runtime.datacache.DataCacheStoreManager.initialize(Data
    CacheStoreManager.java:221)
    at
    com.solarmetric.kodo.runtime.StateManagerImpl.loadInitialState(StateManagerI
    mpl.java:112)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(Pers
    istenceManagerImpl.java:859)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(Persistenc
    eManagerImpl.java:781)
    at com.solarmetric.kodo.runtime.PCData.lookup(PCData.java:518)
    at com.solarmetric.kodo.runtime.PCData.getData(PCData.java:494)
    at com.solarmetric.kodo.runtime.PCData.load(PCData.java:210)
    at com.solarmetric.kodo.runtime.PCData.load(PCData.java:112)
    at
    com.solarmetric.kodo.runtime.datacache.DataCacheStoreManager.initialize(Data
    CacheStoreManager.java:221)
    at
    com.solarmetric.kodo.runtime.StateManagerImpl.loadInitialState(StateManagerI
    mpl.java:112)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(Pers
    istenceManagerImpl.java:859)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(Persistenc
    eManagerImpl.java:781)
    at com.solarmetric.kodo.runtime.PCData.lookup(PCData.java:518)
    at com.solarmetric.kodo.runtime.PCData.getData(PCData.java:494)
    at com.solarmetric.kodo.runtime.PCData.load(PCData.java:210)
    at com.solarmetric.kodo.runtime.PCData.load(PCData.java:112)
    at
    com.solarmetric.kodo.runtime.datacache.DataCacheStoreManager.initialize(Data
    CacheStoreManager.java:221)
    at
    com.solarmetric.kodo.runtime.StateManagerImpl.loadInitialState(StateManagerI
    mpl.java:112)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(Pers
    istenceManagerImpl.java:859)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(Persistenc
    eManagerImpl.java:781)
    at com.solarmetric.kodo.runtime.PCData.lookup(PCData.java:518)
    at com.solarmetric.kodo.runtime.PCData.getData(PCData.java:494)
    at com.solarmetric.kodo.runtime.PCData.load(PCData.java:195)
    at com.solarmetric.kodo.runtime.PCData.load(PCData.java:112)
    at
    com.solarmetric.kodo.runtime.datacache.DataCacheStoreManager.initialize(Data
    CacheStoreManager.java:221)
    at
    com.solarmetric.kodo.runtime.StateManagerImpl.loadInitialState(StateManagerI
    mpl.java:112)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(Pers
    istenceManagerImpl.java:859)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(Persistenc
    eManagerImpl.java:781)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.createFromResultSet(
    JDBCStoreManager.java:700)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager$2.getResultObject(JD
    BCStoreManager.java:652)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.LazyResultList.instantiateRow(LazyRes
    ultList.java:168)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.LazyResultList.get(LazyResultList.jav
    a:114)
    at java.util.AbstractList$Itr.next(AbstractList.java:416)
    at
    com.solarmetric.kodo.runtime.ResultListIterator.next(ResultListIterator.java
    :49)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.ResultListFactory.createResultList(Re
    sultListFactory.java:85)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.executeQuery(JDBCSto
    reManager.java:646)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCExtent.getIterator(JDBCExtent.jav
    a:49)
    at
    com.solarmetric.kodo.runtime.ExtentImpl$TransactionAwareIterator.newIterator
    (ExtentImpl.java:219)
    at serp.util.MultiIterator.setIterator(MultiIterator.java:70)
    at serp.util.MultiIterator.hasNext(MultiIterator.java:25)
    at
    com.solarmetric.kodo.runtime.ExtentImpl$TransactionAwareIterator.hasNext(Ext
    entImpl.java:195)
    at
    net.xtrim.crm.system.persistence.UserFactory.getUsers(UserFactory.java:121)
    at
    net.xtrim.crm.user.ejb.UserFacadeBean.getUsers(UserFacadeBean.java:106)
    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:324)
    at
    org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(Stateles
    sSessionContainer.java:660)
    at
    org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(Cach
    edConnectionInterceptor.java:186)
    at
    org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSe
    ssionInstanceInterceptor.java:77)
    at
    org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor
    ..java:107)
    at
    org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.
    java:151)
    at
    org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:60)
    at
    org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:13
    0)
    at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:204)
    at
    org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContainer.jav
    a:313)
    at org.jboss.ejb.Container.invoke(Container.java:712)
    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:517)
    at
    org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:382)
    at sun.reflect.GeneratedMethodAccessor50.invoke(Unknown Source)
    at
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
    ..java:25)
    at java.lang.reflect.Method.invoke(Method.java:324)
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261)
    at sun.rmi.transport.Transport$1.run(Transport.java:148)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.Transport.serviceCall(Transport.java:144)
    at
    sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
    at
    sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:7
    01)
    at java.lang.Thread.run(Thread.java:536)
    Am I doing something wrong?
    P.S. Everything works fine if User has no child reference.
    Patrick Linskey [email protected]
    SolarMetric Inc. http://www.solarmetric.com

  • Exception when call makeNontransactional() on Transient Transactional instance

    this fragment causes exception in Kodo v2.4.1
    Court coo = Court.newInstance();
    jdo.pm().makeTransactional(coo);
    jdo.pm().makeNontransactional(coo); // evict would causes the same error
    jdo.pm().evict(coo);
    javax.jdo.JDOUserException: The instance "class
    peacetech.gao.ogc.gctrack.jdo.Court" of id
    "peacetech.gao.ogc.gctrack.jdo.oid.CourtOid#8852" is not managed by this
    PersistenceManager.
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.checkValid(PersistenceMa
    nagerImpl.java:2234)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.makeNontransactionalFilt
    er(PersistenceManagerImpl.java:1268)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.makeNontransactional(Per
    sistenceManagerImpl.java:1249)
    at peacetech.gao.ogc.gctrack.Test.main(Test.java:51)
    Exception in thread "main" Process terminated with exit code 1

    Sorry "null" is referenced in the database, but does not exist error does
    not apply - someone was tampering with data
    "Alex Roytman" <[email protected]> wrote in message
    news:[email protected]...
    Transactional Transient instances stays forever in PM's ManagedObjectseven
    if evictAll() is issued and so do all object they reference eating all
    available memory untill garbage collection kicks in.
    and if I keep reading this objects over and over again
    Kodo blows with following error:
    javax.jdo.JDODataStoreException: javax.jdo.JDODataStoreException: Type
    "null" is referenced in the database, but does not exist.
    NestedThrowables:
    java.lang.NullPointerException
    NestedThrowables:
    javax.jdo.JDODataStoreException: Type "null" is referenced in thedatabase,
    but does not exist.
    NestedThrowables:
    java.lang.NullPointerException
    at
    com.solarmetric.kodo.runtime.objectprovider.EagerResultList.<init>(EagerResu
    ltList.java:40)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.ResultListFactory.createResultList(Re
    sultListFactory.java:75)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.executeQuery(JDBCSto
    reManager.java:709)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCQuery.executeQuery(JDBCQuery.java
    :93)
    atcom.solarmetric.kodo.query.QueryImpl.executeWithMap(QueryImpl.java:792)
    at com.solarmetric.kodo.query.QueryImpl.execute(QueryImpl.java:595)
    at peacetech.gao.ogc.gctrack.Test.main(Test.java:51)
    NestedThrowablesStackTrace:
    javax.jdo.JDODataStoreException: Type "null" is referenced in thedatabase,
    but does not exist.
    NestedThrowables:
    java.lang.NullPointerException
    at
    com.solarmetric.kodo.impl.jdbc.ormapping.SubclassProviderImpl.getType(Subcla
    ssProviderImpl.java:122)
    at
    com.solarmetric.kodo.impl.jdbc.ormapping.SubclassProviderImpl.getType(Subcla
    ssProviderImpl.java:96)
    at
    com.solarmetric.kodo.impl.jdbc.ormapping.ClassMapping.loadPrimaryMappings(Cl
    assMapping.java:1034)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.initialize(JDBCStore
    Manager.java:249)
    at
    com.solarmetric.kodo.runtime.StateManagerImpl.loadInitialState(StateManagerI
    mpl.java:174)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(Pers
    istenceManagerImpl.java:1023)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(Persistenc
    eManagerImpl.java:942)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.createFromResultSet(
    JDBCStoreManager.java:762)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager$2.getResultObject(JD
    BCStoreManager.java:717)
    at
    com.solarmetric.kodo.runtime.objectprovider.EagerResultList.<init>(EagerResu
    ltList.java:35)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.ResultListFactory.createResultList(Re
    sultListFactory.java:75)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.executeQuery(JDBCSto
    reManager.java:709)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCQuery.executeQuery(JDBCQuery.java
    :93)
    atcom.solarmetric.kodo.query.QueryImpl.executeWithMap(QueryImpl.java:792)
    at com.solarmetric.kodo.query.QueryImpl.execute(QueryImpl.java:595)
    at peacetech.gao.ogc.gctrack.Test.main(Test.java:51)
    NestedThrowablesStackTrace:
    java.lang.NullPointerException
    at
    com.solarmetric.kodo.impl.jdbc.ormapping.SubclassProviderImpl.getType(Subcla
    ssProviderImpl.java:118)
    at
    com.solarmetric.kodo.impl.jdbc.ormapping.SubclassProviderImpl.getType(Subcla
    ssProviderImpl.java:96)
    at
    com.solarmetric.kodo.impl.jdbc.ormapping.ClassMapping.loadPrimaryMappings(Cl
    assMapping.java:1034)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.initialize(JDBCStore
    Manager.java:249)
    at
    com.solarmetric.kodo.runtime.StateManagerImpl.loadInitialState(StateManagerI
    mpl.java:174)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(Pers
    istenceManagerImpl.java:1023)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(Persistenc
    eManagerImpl.java:942)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.createFromResultSet(
    JDBCStoreManager.java:762)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager$2.getResultObject(JD
    BCStoreManager.java:717)
    at
    com.solarmetric.kodo.runtime.objectprovider.EagerResultList.<init>(EagerResu
    ltList.java:35)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.ResultListFactory.createResultList(Re
    sultListFactory.java:75)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.executeQuery(JDBCSto
    reManager.java:709)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCQuery.executeQuery(JDBCQuery.java
    :93)
    atcom.solarmetric.kodo.query.QueryImpl.executeWithMap(QueryImpl.java:792)
    at com.solarmetric.kodo.query.QueryImpl.execute(QueryImpl.java:595)
    at peacetech.gao.ogc.gctrack.Test.main(Test.java:51)
    Exception in thread "main" Process terminated with exit code 1
    "Alex Roytman" <[email protected]> wrote in message
    news:[email protected]...
    this fragment causes exception in Kodo v2.4.1
    Court coo = Court.newInstance();
    jdo.pm().makeTransactional(coo);
    jdo.pm().makeNontransactional(coo); // evict would causes the sameerror
    jdo.pm().evict(coo);
    javax.jdo.JDOUserException: The instance "class
    peacetech.gao.ogc.gctrack.jdo.Court" of id
    "peacetech.gao.ogc.gctrack.jdo.oid.CourtOid#8852" is not managed by this
    PersistenceManager.
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.checkValid(PersistenceMa
    nagerImpl.java:2234)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.makeNontransactionalFilt
    er(PersistenceManagerImpl.java:1268)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.makeNontransactional(Per
    sistenceManagerImpl.java:1249)
    at peacetech.gao.ogc.gctrack.Test.main(Test.java:51)
    Exception in thread "main" Process terminated with exit code 1

  • NullPointerException when doing a getObjectById

    In one circumstance I am getting a NullPointerException when performing a
    getObjectById. I double checked to be sure that all fields of the object
    Id are filled properly and that the metadata is mapped properly. This
    error is with 2.5.0 b2
    - Jeff
    Exception and Stack Trace:
    com.solarmetric.kodo.runtime.FatalException: java.lang.NullPointerException
    NestedThrowables:
    java.lang.NullPointerException
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(PersistenceManagerImpl.java:1150)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(PersistenceManagerImpl.java:1045)
    at
    dtv.pos.tender.TenderHelper.getTenderSettingsForGroup(TenderHelper.java:69)
    at
    dtv.pos.tender.ValidateTenderAmountRule.validateGroup(ValidateTenderAmountRule.java:42)
    at
    dtv.pos.tender.ValidateTenderAmountRule.isValid(ValidateTenderAmountRule.java:28)
    at
    dtv.pos.common.AbstractValidationOp.applyValidationRules(AbstractValidationOp.java:205)
    at
    dtv.pos.common.AbstractValidationOp.runValidationCheck(AbstractValidationOp.java:170)
    at
    dtv.pos.common.AbstractValidationOp.handleOpExec(AbstractValidationOp.java:133)
    at
    dtv.pos.framework.op.DefaultOpChain.internalDoOp(DefaultOpChain.java:353)
    at
    dtv.pos.framework.op.DefaultOpChain.handleOpExec(DefaultOpChain.java:178)
    at
    dtv.pos.framework.op.OpChainProcessor.runChain(OpChainProcessor.java:336)
    at
    dtv.pos.framework.op.OpChainProcessor.internalEventHandle(OpChainProcessor.java:271)
    at dtv.pos.framework.op.OpChainProcessor.run(OpChainProcessor.java:106)
    at java.lang.Thread.run(Thread.java:536)
    NestedThrowablesStackTrace:
    java.lang.NullPointerException
    at
    com.solarmetric.kodo.runtime.StateManagerImpl.initialize(StateManagerImpl.java:216)
    at
    com.solarmetric.kodo.impl.jdbc.ormapping.ClassMapping.loadByPK(ClassMapping.java:986)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.initialize(JDBCStoreManager.java:327)
    at
    com.solarmetric.kodo.runtime.StateManagerImpl.loadInitialState(StateManagerImpl.java:177)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(PersistenceManagerImpl.java:1143)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(PersistenceManagerImpl.java:1045)
    at
    dtv.pos.tender.TenderHelper.getTenderSettingsForGroup(TenderHelper.java:69)
    at
    dtv.pos.tender.ValidateTenderAmountRule.validateGroup(ValidateTenderAmountRule.java:42)
    at
    dtv.pos.tender.ValidateTenderAmountRule.isValid(ValidateTenderAmountRule.java:28)
    at
    dtv.pos.common.AbstractValidationOp.applyValidationRules(AbstractValidationOp.java:205)
    at
    dtv.pos.common.AbstractValidationOp.runValidationCheck(AbstractValidationOp.java:170)
    at
    dtv.pos.common.AbstractValidationOp.handleOpExec(AbstractValidationOp.java:133)
    at
    dtv.pos.framework.op.DefaultOpChain.internalDoOp(DefaultOpChain.java:353)
    at
    dtv.pos.framework.op.DefaultOpChain.handleOpExec(DefaultOpChain.java:178)
    at
    dtv.pos.framework.op.OpChainProcessor.runChain(OpChainProcessor.java:336)
    at
    dtv.pos.framework.op.OpChainProcessor.internalEventHandle(OpChainProcessor.java:271)
    at dtv.pos.framework.op.OpChainProcessor.run(OpChainProcessor.java:106)
    at java.lang.Thread.run(Thread.java:536)

    I have discovered that the cause of this error was that we accidentaly
    made the class abstract. I am confused however as to why this caused a
    null-pointer exception, as opposed to an exception that complained about
    trying to instantiate an abstract class.
    Jeff Sheldon wrote:
    In one circumstance I am getting a NullPointerException when performing a
    getObjectById. I double checked to be sure that all fields of the object
    Id are filled properly and that the metadata is mapped properly. This
    error is with 2.5.0 b2
    - Jeff
    Exception and Stack Trace:
    com.solarmetric.kodo.runtime.FatalException: java.lang.NullPointerException
    NestedThrowables:
    java.lang.NullPointerException
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(PersistenceManagerImpl.java:1150)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(PersistenceManagerImpl.java:1045)
    at
    dtv.pos.tender.TenderHelper.getTenderSettingsForGroup(TenderHelper.java:69)
    at
    dtv.pos.tender.ValidateTenderAmountRule.validateGroup(ValidateTenderAmountRule.java:42)
    at
    dtv.pos.tender.ValidateTenderAmountRule.isValid(ValidateTenderAmountRule.java:28)
    at
    dtv.pos.common.AbstractValidationOp.applyValidationRules(AbstractValidationOp.java:205)
    at
    dtv.pos.common.AbstractValidationOp.runValidationCheck(AbstractValidationOp.java:170)
    at
    dtv.pos.common.AbstractValidationOp.handleOpExec(AbstractValidationOp.java:133)
    at
    dtv.pos.framework.op.DefaultOpChain.internalDoOp(DefaultOpChain.java:353)
    at
    dtv.pos.framework.op.DefaultOpChain.handleOpExec(DefaultOpChain.java:178)
    at
    dtv.pos.framework.op.OpChainProcessor.runChain(OpChainProcessor.java:336)
    at
    dtv.pos.framework.op.OpChainProcessor.internalEventHandle(OpChainProcessor.java:271)
    at dtv.pos.framework.op.OpChainProcessor.run(OpChainProcessor.java:106)
    at java.lang.Thread.run(Thread.java:536)
    NestedThrowablesStackTrace:
    java.lang.NullPointerException
    at
    com.solarmetric.kodo.runtime.StateManagerImpl.initialize(StateManagerImpl.java:216)
    at
    com.solarmetric.kodo.impl.jdbc.ormapping.ClassMapping.loadByPK(ClassMapping.java:986)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.initialize(JDBCStoreManager.java:327)
    at
    com.solarmetric.kodo.runtime.StateManagerImpl.loadInitialState(StateManagerImpl.java:177)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(PersistenceManagerImpl.java:1143)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(PersistenceManagerImpl.java:1045)
    at
    dtv.pos.tender.TenderHelper.getTenderSettingsForGroup(TenderHelper.java:69)
    at
    dtv.pos.tender.ValidateTenderAmountRule.validateGroup(ValidateTenderAmountRule.java:42)
    at
    dtv.pos.tender.ValidateTenderAmountRule.isValid(ValidateTenderAmountRule.java:28)
    at
    dtv.pos.common.AbstractValidationOp.applyValidationRules(AbstractValidationOp.java:205)
    at
    dtv.pos.common.AbstractValidationOp.runValidationCheck(AbstractValidationOp.java:170)
    at
    dtv.pos.common.AbstractValidationOp.handleOpExec(AbstractValidationOp.java:133)
    at
    dtv.pos.framework.op.DefaultOpChain.internalDoOp(DefaultOpChain.java:353)
    at
    dtv.pos.framework.op.DefaultOpChain.handleOpExec(DefaultOpChain.java:178)
    at
    dtv.pos.framework.op.OpChainProcessor.runChain(OpChainProcessor.java:336)
    at
    dtv.pos.framework.op.OpChainProcessor.internalEventHandle(OpChainProcessor.java:271)
    at dtv.pos.framework.op.OpChainProcessor.run(OpChainProcessor.java:106)
    at java.lang.Thread.run(Thread.java:536)

  • Setting auto-commit inside a transaction

    I am trying Kodo 2.4 RC3 with JBoss 3.0.4 and Hypersonic SQL DB
    1.7.1b (in server mode) on Mac OS X 10.2.2 and get the exception listed
    below. I understand that the autocommit property of the database
    connections should be off in order to avoid this error, but how can I
    achieve this?
    [java] java.sql.SQLException: You cannot set autocommit during a
    managed transaction!
    [java] at
    org.jboss.resource.adapter.jdbc.local.LocalManagedConnection.setJdbcAutoCommit(LocalManagedConnection.java:447)
    [java] at
    org.jboss.resource.adapter.jdbc.local.LocalConnection.setAutoCommit(LocalConnection.java:426)
    [java] at
    com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.getConnection(SQLExecutionManagerImpl.java:149)
    [java] at
    com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.prepareStatementInternal(SQLExecutionManagerImpl.java:805)
    [java] at
    com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.executePreparedQueryInternal(SQLExecutionManagerImpl.java:760)
    [java] at
    com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.executeQueryInternal(SQLExecutionManagerImpl.java:692)
    [java] at
    com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.executeQuery(SQLExecutionManagerImpl.java:373)
    [java] at
    com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.executeQuery(SQLExecutionManagerImpl.java:357)
    [java] at
    com.solarmetric.kodo.impl.jdbc.ormapping.SubclassProviderImpl.getSubclasses(SubclassProviderImpl.java:231)
    [java] at
    com.solarmetric.kodo.impl.jdbc.ormapping.ClassMapping.getPrimaryMappingFields(ClassMapping.java:1093)
    [java] at
    com.solarmetric.kodo.impl.jdbc.ormapping.ClassMapping.loadByPK(ClassMapping.java:931)
    [java] at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.initialize(JDBCStoreManager.java:263)
    [java] at
    com.solarmetric.kodo.runtime.StateManagerImpl.loadInitialState(StateManagerImpl.java:174)
    [java] at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(PersistenceManagerImpl.java:986)
    [java] at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(PersistenceManagerImpl.java:888)
    [java] at
    im.jdo.JDOWorker$IssueWorker.getIssue(JDOWorker.java:952)
    [java] at
    im.jdo.JDOWorker$IssueWorker.getIssue(JDOWorker.java:810)
    [java] at
    im.jdo.JDOWorker$IssueWorker.access$2400(JDOWorker.java:789)
    [java] at im.jdo.JDOWorker.getIssue(JDOWorker.java:1089)
    [java] at im.jdo.JDOWorker.getIssue(JDOWorker.java:1079)
    [java] at
    im.ejb.impl.MeisterSessionBean.getIssue(MeisterSessionBean.java:280)
    [java] at java.lang.reflect.Method.invoke(Native Method)
    [java] at
    org.jboss.ejb.StatefulSessionContainer$ContainerInterceptor.invoke(StatefulSessionContainer.java:817)
    [java] at
    org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:130)
    [java] at
    org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:186)
    [java] at
    org.jboss.ejb.plugins.StatefulSessionInstanceInterceptor.invoke(StatefulSessionInstanceInterceptor.java:268)
    [java] at
    org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:107)
    [java] at
    org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:178)
    [java] at
    org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:60)
    [java] at
    org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:204)
    [java] at
    org.jboss.ejb.StatefulSessionContainer.invoke(StatefulSessionContainer.java:380)
    [java] at org.jboss.ejb.Container.invoke(Container.java:712)
    [java] at
    org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:517)
    [java] at
    org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:382)
    [java] at java.lang.reflect.Method.invoke(Native Method)
    [java] at
    sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:236)
    [java] at sun.rmi.transport.Transport$1.run(Transport.java:147)
    [java] at java.security.AccessController.doPrivileged(Native
    Method)
    [java] at
    sun.rmi.transport.Transport.serviceCall(Transport.java:143)
    [java] at
    sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
    [java] at
    sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
    [java] at java.lang.Thread.run(Thread.java:491)

    Jakob,
    That's a good question. I don't have much experience with HSQLDB and
    JBoss, but I imagine that there's a configuration option somewhere
    that's setting autocommit to true. We only try to set autocommit to
    false if we see that it's set to true (by invoking conn.getAutoCommit()).
    What do your HSQL properties look like? Do you get any hits when running
    'grep -ri autocommit /path/to/jboss' from a terminal window?
    -Patrick
    Jakob Spies wrote:
    I am trying Kodo 2.4 RC3 with JBoss 3.0.4 and Hypersonic SQL DB
    1.7.1b (in server mode) on Mac OS X 10.2.2 and get the exception listed
    below. I understand that the autocommit property of the database
    connections should be off in order to avoid this error, but how can I
    achieve this?
    [java] java.sql.SQLException: You cannot set autocommit during a
    managed transaction!
    [java] at
    org.jboss.resource.adapter.jdbc.local.LocalManagedConnection.setJdbcAutoCommit(LocalManagedConnection.java:447)
    [java] at
    org.jboss.resource.adapter.jdbc.local.LocalConnection.setAutoCommit(LocalConnection.java:426)
    [java] at
    com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.getConnection(SQLExecutionManagerImpl.java:149)
    [java] at
    com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.prepareStatementInternal(SQLExecutionManagerImpl.java:805)
    [java] at
    com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.executePreparedQueryInternal(SQLExecutionManagerImpl.java:760)
    [java] at
    com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.executeQueryInternal(SQLExecutionManagerImpl.java:692)
    [java] at
    com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.executeQuery(SQLExecutionManagerImpl.java:373)
    [java] at
    com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.executeQuery(SQLExecutionManagerImpl.java:357)
    [java] at
    com.solarmetric.kodo.impl.jdbc.ormapping.SubclassProviderImpl.getSubclasses(SubclassProviderImpl.java:231)
    [java] at
    com.solarmetric.kodo.impl.jdbc.ormapping.ClassMapping.getPrimaryMappingFields(ClassMapping.java:1093)
    [java] at
    com.solarmetric.kodo.impl.jdbc.ormapping.ClassMapping.loadByPK(ClassMapping.java:931)
    [java] at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.initialize(JDBCStoreManager.java:263)
    [java] at
    com.solarmetric.kodo.runtime.StateManagerImpl.loadInitialState(StateManagerImpl.java:174)
    [java] at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(PersistenceManagerImpl.java:986)
    [java] at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(PersistenceManagerImpl.java:888)
    [java] at
    im.jdo.JDOWorker$IssueWorker.getIssue(JDOWorker.java:952)
    [java] at
    im.jdo.JDOWorker$IssueWorker.getIssue(JDOWorker.java:810)
    [java] at
    im.jdo.JDOWorker$IssueWorker.access$2400(JDOWorker.java:789)
    [java] at im.jdo.JDOWorker.getIssue(JDOWorker.java:1089)
    [java] at im.jdo.JDOWorker.getIssue(JDOWorker.java:1079)
    [java] at
    im.ejb.impl.MeisterSessionBean.getIssue(MeisterSessionBean.java:280)
    [java] at java.lang.reflect.Method.invoke(Native Method)
    [java] at
    org.jboss.ejb.StatefulSessionContainer$ContainerInterceptor.invoke(StatefulSessionContainer.java:817)
    [java] at
    org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:130)
    [java] at
    org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:186)
    [java] at
    org.jboss.ejb.plugins.StatefulSessionInstanceInterceptor.invoke(StatefulSessionInstanceInterceptor.java:268)
    [java] at
    org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:107)
    [java] at
    org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:178)
    [java] at
    org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:60)
    [java] at
    org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:204)
    [java] at
    org.jboss.ejb.StatefulSessionContainer.invoke(StatefulSessionContainer.java:380)
    [java] at org.jboss.ejb.Container.invoke(Container.java:712)
    [java] at
    org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:517)
    [java] at
    org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:382)
    [java] at java.lang.reflect.Method.invoke(Native Method)
    [java] at
    sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:236)
    [java] at sun.rmi.transport.Transport$1.run(Transport.java:147)
    [java] at java.security.AccessController.doPrivileged(Native
    Method)
    [java] at
    sun.rmi.transport.Transport.serviceCall(Transport.java:143)
    [java] at
    sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
    [java] at
    sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
    [java] at java.lang.Thread.run(Thread.java:491)
    Patrick Linskey [email protected]
    SolarMetric Inc. http://www.solarmetric.com

  • Java.sql.SQLException: Refcursor value is invalid

    Hi,
    I faced this exception. The exception does not always happen, so it is not
    easy to find solution.
    javax.jdo.JDODataStoreException: java.sql.SQLException: Refcursor value is
    invalid [code=17442;state=null]
    NestedThrowables:
    java.sql.SQLException: Refcursor value is invalid
         at
    com.solarmetric.kodo.impl.jdbc.runtime.SQLExceptions.throwDataStore(SQLExceptions.java:23)
         at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.initialize(JDBCStoreManager.java:254)
         at
    com.solarmetric.kodo.runtime.StateManagerImpl.loadInitialState(StateManagerImpl.java:112)
         at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(PersistenceManagerImpl.java:859)
         at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(PersistenceManagerImpl.java:764)
    Usually, it happens after web application, WAR file, is deployed on the
    Tomcat server.
    After the exception is occurred, Tomcat server is restarted manually. Then
    the exception never happens.
    Do you have any clue?
    My Env:
    Apache 1.3 & Tomcat 1.4.x
    MVC2 Model with Struts
    Oracle 8i database
    Thanks.

    Brient-
    Can you post the complete stack trace (as well as all the nested
    exceptions)?
    In article <cpqh8p$3nr$[email protected]>, Brient Oh wrote:
    Hi,
    I faced this exception. The exception does not always happen, so it is not
    easy to find solution.
    javax.jdo.JDODataStoreException: java.sql.SQLException: Refcursor value is
    invalid [code=17442;state=null]
    NestedThrowables:
    java.sql.SQLException: Refcursor value is invalid
         at
    com.solarmetric.kodo.impl.jdbc.runtime.SQLExceptions.throwDataStore(SQLExceptions.java:23)
         at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.initialize(JDBCStoreManager.java:254)
         at
    com.solarmetric.kodo.runtime.StateManagerImpl.loadInitialState(StateManagerImpl.java:112)
         at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(PersistenceManagerImpl.java:859)
         at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(PersistenceManagerImpl.java:764)
    Usually, it happens after web application, WAR file, is deployed on the
    Tomcat server.
    After the exception is occurred, Tomcat server is restarted manually. Then
    the exception never happens.
    Do you have any clue?
    My Env:
    Apache 1.3 & Tomcat 1.4.x
    MVC2 Model with Struts
    Oracle 8i database
    Thanks.
    Marc Prud'hommeaux
    SolarMetric Inc.

  • Datacache lock problems

    Hi,
    I am having problems when I use the datacache.
    I have set the following properties as explained in the manual:
    com.solarmetric.kodo.DataCacheClass:
    com.solarmetric.kodo.runtime.datacache.plugins.CacheImpl
    com.solarmetric.kodo.RemoteCommitProviderClass:
    com.solarmetric.kodo.runtime.event.impl.SingleJVMRemoteCommitProvider
    I have 11 threads in my code which do a mixture of reading and writing to
    the datastore. Each thread is passed it's own PM using
    JDOFactory.getPersistenceManager(). With the data cache on I seem to
    sometimes get all my threads locking. I dont understand why. Maybe someone
    can tell me what I'm doing wrong.
    Stack trace for one thread is:
    Object.wait(long) line: not available [native method]
    UpgradableReentrantWriterPreferenceRWL$UpgradableWriterLock(Object).wait()
    line: 426
    UpgradableReentrantWriterPreferenceRWL$UpgradableWriterLock(WriterPreferenceReadWriteLock$WriterLock).acquire()
    line: 249
    UpgradableReentrantWriterPreferenceRWL$UpgradableWriterLock.acquire()
    line: 83
    CacheImpl(AbstractCacheImpl).acquireWriteLock() line: 411
    TimedDataCache.acquireWriteLock() line: 268
    DataCacheStoreManager.commit() line: 270
    PersistenceManagerImpl.endTransaction(boolean) line: 796
    PersistenceManagerImpl.commit() line: 476
    TradeFactory.getTrade(PersistenceManager, ProductType, Currency, long,
    double, Date, Date) line: 50
    Another is:
    Object.wait(long) line: not available [native method]
    WriterPreferenceReadWriteLock$ReaderLock(Object).wait() line: 426 [local
    variables unavailable]
    WriterPreferenceReadWriteLock$ReaderLock.acquire() line: 169
    CacheImpl(AbstractCacheImpl).acquireReadLock() line: 384
    TimedDataCache.acquireReadLock() line: 256
    TimedDataCache.containsKey(Object) line: 176
    DataCacheStoreManager.exists(Object, ClassMetaData) line: 478
    PersistenceManagerImpl.getObjectByIdFilter(Object, Object, boolean,
    boolean, boolean) line: 1243
    PersistenceManagerImpl.getObjectById(Object, boolean) line: 1179
    CacheAwareQuery$CachedResultList.get(int) line: 432
    AbstractList$Itr.next() line: 416 [local variables unavailable]
    ProductFactory.getProduct(PersistenceManager, String) line: 43
    The other threads are all stopped on the following code
    Transaction tx = pm.currentTransaction();
    apart from one thread which is locked on iterating through an extent.
    Regards,
    Menno

    Can you post a full thread dump for all threads, including full class
    names etc., or send it to [email protected]?
    -Patrick
    On Tue, 02 Sep 2003 13:56:20 +0000, Menno wrote:
    Patrick Linskey wrote:
    Also, where is the extent-iteration lock happening?I'm running version 2.5.3 but it also happened with 2.5.2.
    The iteration lock is actually on a query.
    The stack is:
    CachingRandomAccessList.get(int) line: 139
    AbstractList$Itr.next() line: 416
    LimitFactory.getLimit(PersistenceManager, ProductType, Currency) line: 44
    The code is as follows:
              Transaction tx = pm.currentTransaction();
              tx.begin();
              String id = p.getProductname() + ":" + c.getName();
              String Filter = "name == id";
              Query q = pm.newQuery(Limit.class,Filter);
              q.declareParameters("String id");
              Collection res = (Collection) q.execute(id);
              Limit l = null;
              Iterator I = res.iterator();
              if( I.hasNext() )
                   l = (Limit)I.next(); // locks here
    ...more code--
    Patrick Linskey
    SolarMetric Inc.

  • Kodo cannot find metadata for valid persistent class?

    Hi!
    I still cannot make 2.4.0 working. It just refuses loading valid
    persistent class. I've tried to preload class by calling Class c =
    Category.class but it didn't help.
    Tried it on 2.4.0 RC3.
    The stacktrace:
    2002-12-05 13:56:14,377 ERROR [org.jboss.ejb.plugins.LogInterceptor]
    RuntimeException:
    javax.jdo.JDOUserException: No database mapping was found for type
    "net.xtrim.crm.troubleticket.object.Category@cf9bf0". Make sure that
    "net.xtrim.crm.troubleticket.object.Category@cf9bf0" has been enhanced.
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.getClassMapping(JDBC
    StoreManager.java:835)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.initialize(JDBCStore
    Manager.java:262)
    at
    com.solarmetric.kodo.runtime.datacache.DataCacheStoreManager.initialize(Data
    CacheStoreManager.java:255)
    at
    com.solarmetric.kodo.runtime.StateManagerImpl.loadInitialState(StateManagerI
    mpl.java:174)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(Pers
    istenceManagerImpl.java:986)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(Persistenc
    eManagerImpl.java:905)
    at
    com.solarmetric.kodo.impl.jdbc.ormapping.OneToOneMapping.load(OneToOneMappin
    g.java:147)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.load(JDBCStoreManage
    r.java:366)
    at
    com.solarmetric.kodo.runtime.datacache.DataCacheStoreManager.load(DataCacheS
    toreManager.java:284)
    at
    com.solarmetric.kodo.runtime.StateManagerImpl.loadField(StateManagerImpl.jav
    a:1987)
    at
    com.solarmetric.kodo.runtime.StateManagerImpl.isLoaded(StateManagerImpl.java
    :721)
    at net.xtrim.crm.troubleticket.object.Type.jdoGetcategory(Type.java)
    at net.xtrim.crm.troubleticket.object.Type.getCategory(Type.java:147)
    at
    net.xtrim.crm.system.persistence.TroubleTicketFactory.getTroubleTicketType(T
    roubleTicketFactory.java:148)
    at
    net.xtrim.crm.system.persistence.TroubleTicketFactory.getTroubleTicket(Troub
    leTicketFactory.java:74)
    at
    net.xtrim.crm.system.persistence.TroubleTicketFactory.getDTO(TroubleTicketFa
    ctory.java:280)
    at
    net.xtrim.crm.troubleticket.ejb.TroubleTicketFacadeBean.getLastTicketsForCur
    rentUser(TroubleTicketFacadeBean.java:1015)
    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:324)
    at
    org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(Stateles
    sSessionContainer.java:660)
    at
    org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(Cach
    edConnectionInterceptor.java:186)
    at
    org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSe
    ssionInstanceInterceptor.java:77)
    at
    org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor
    ..java:107)
    at
    org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.
    java:178)
    at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:60)
    at
    org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:13
    0)
    at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:204)
    at
    org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContainer.jav
    a:313)
    at
    org.jboss.ejb.plugins.local.BaseLocalContainerInvoker.invoke(BaseLocalContai
    nerInvoker.java:301)
    at
    org.jboss.ejb.plugins.local.StatelessSessionProxy.invoke(StatelessSessionPro
    xy.java:81)
    at $Proxy64.getLastTicketsForCurrentUser(Unknown Source)
    at net.xtrim.crm.web.WebManager.getListTTCreatedByUser(WebManager.java:58)
    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:324)
    at
    org.apache.struts.util.PropertyUtils.getSimpleProperty(PropertyUtils.java:71
    7)
    at
    org.apache.struts.util.PropertyUtils.getNestedProperty(PropertyUtils.java:42
    6)
    at org.apache.struts.util.PropertyUtils.getProperty(PropertyUtils.java:453)
    at org.apache.struts.util.RequestUtils.lookup(RequestUtils.java:503)
    at
    org.apache.struts.taglib.logic.IterateTag.doStartTag(IterateTag.java:302)
    at org.apache.jsp.home$jsp._jspService(home$jsp.java:534)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at
    org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.ja
    va:201)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:366)
    at
    org.mortbay.jetty.servlet.WebApplicationHandler$Chain.doFilter(WebApplicatio
    nHandler.java:341)
    at net.xtrim.crm.web.LogOnFilter.doFilter(LogOnFilter.java:43)
    at
    org.mortbay.jetty.servlet.WebApplicationHandler$Chain.doFilter(WebApplicatio
    nHandler.java:333)
    at
    org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandl
    er.java:285)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:581)
    at org.mortbay.http.HttpContext.handle(HttpContext.java:1687)
    at
    org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext
    ..java:544)
    at org.mortbay.http.HttpContext.handle(HttpContext.java:1637)
    at org.mortbay.http.HttpServer.service(HttpServer.java:875)
    at org.jboss.jetty.Jetty.service(Jetty.java:543)
    at org.mortbay.http.HttpConnection.service(HttpConnection.java:806)
    at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:956)
    at org.mortbay.http.HttpConnection.handle(HttpConnection.java:823)
    at
    org.mortbay.http.SocketListener.handleConnection(SocketListener.java:203)
    at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:290)
    at org.mortbay.util.ThreadPool$JobRunner.run(ThreadPool.java:743)
    at java.lang.Thread.run(Thread.java:536)
    2002-12-05 13:56:14,547 ERROR [net.xtrim.crm.web.WebManager]
    javax.ejb.EJBException: RuntimeException; CausedByException is:
    No database mapping was found for type
    "net.xtrim.crm.troubleticket.object.Category@cf9bf0". Make sure that
    "net.xtrim.crm.troubleticket.object.Category@cf9bf0" has been enhanced.
    2002-12-05 13:56:14,747 WARN [org.jboss.jbossweb] WARNING: Exception for
    /rt/home.jsp
    javax.servlet.jsp.JspException: Exception thrown by getter for property
    listTTCreatedByUser of bean manager
    at org.apache.struts.util.RequestUtils.lookup(RequestUtils.java:513)
    at
    org.apache.struts.taglib.logic.IterateTag.doStartTag(IterateTag.java:302)
    at org.apache.jsp.home$jsp._jspService(home$jsp.java:534)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at
    org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.ja
    va:201)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:366)
    at
    org.mortbay.jetty.servlet.WebApplicationHandler$Chain.doFilter(WebApplicatio
    nHandler.java:341)
    at net.xtrim.crm.web.LogOnFilter.doFilter(LogOnFilter.java:43)
    at
    org.mortbay.jetty.servlet.WebApplicationHandler$Chain.doFilter(WebApplicatio
    nHandler.java:333)
    at
    org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandl
    er.java:285)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:581)
    at org.mortbay.http.HttpContext.handle(HttpContext.java:1687)
    at
    org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext
    ..java:544)
    at org.mortbay.http.HttpContext.handle(HttpContext.java:1637)
    at org.mortbay.http.HttpServer.service(HttpServer.java:875)
    at org.jboss.jetty.Jetty.service(Jetty.java:543)
    at org.mortbay.http.HttpConnection.service(HttpConnection.java:806)
    at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:956)
    at org.mortbay.http.HttpConnection.handle(HttpConnection.java:823)
    at
    org.mortbay.http.SocketListener.handleConnection(SocketListener.java:203)
    at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:290)
    at org.mortbay.util.ThreadPool$JobRunner.run(ThreadPool.java:743)
    at java.lang.Thread.run(Thread.java:536)
    During startup I see messages in JBoss log file saying that Category has
    been loaded successfully.
    Please look at the attached file that contains part of the JBoss log.
    begin 666 kodo.log
    M,C P,BTQ,BTP-2 Q,SHU-CHQ,2PS,3(@1$5"54<@6V-O;2YS;VQA<FUE=')I
    M8RYK;V1O+E)U;G1I;65=(&-O;2YS;VQA<FUE=')I8RYK;V1O+FEM<&PN:F1B
    M8RYE92Y%15!E<G-I<W1E;F-E36%N86=E<D9A8W1O<GE ,6%F-SAC93H@<V5T
    M=7 -"C(P,#(M,3(M,#4@,3,Z-38Z,3$L,S4R($1%0E5'(%MC;VTN<V]L87)M
    M971R:6,N:V]D;RY2=6YT:6UE72!C;VTN<V]L87)M971R:6,N:V]D;RYI;7!L
    M+FID8F,N964N145097)S:7-T96YC94UA;F%G97)&86-T;W)Y0#%A9C<X8V4Z
    M('-E='5P.B!D969E<G)I;F<@<F5G:7-T<F%T:6]N(&]F.B!N970N>'1R:6TN
    M8W)M+F-U<W1O;65R+F]B:F5C="Y#=7-T;VUE<D R-S-F-&4-"C(P,#(M,3(M
    M,#4@,3,Z-38Z,3$L,S4R($1%0E5'(%MC;VTN<V]L87)M971R:6,N:V]D;RY2
    M=6YT:6UE72!C;VTN<V]L87)M971R:6,N:V]D;RYI;7!L+FID8F,N964N1450
    M97)S:7-T96YC94UA;F%G97)&86-T;W)Y0#%A9C<X8V4Z(')E9VES=&5R0VQA
    M<W,Z(&YE="YX=')I;2YC<FTN8W5S=&]M97(N;V)J96-T+D-U<W1O;65R0#(W
    M,V8T93T^9F%L<V4-"C(P,#(M,3(M,#4@,3,Z-38Z,3$L,S4R($1%0E5'(%MC
    M;VTN<V]L87)M971R:6,N:V]D;RY2=6YT:6UE72!C;VTN<V]L87)M971R:6,N
    M:V]D;RYI;7!L+FID8F,N964N145097)S:7-T96YC94UA;F%G97)&86-T;W)Y
    M0#%A9C<X8V4Z('-E='5P.B!D969E<G)I;F<@<F5G:7-T<F%T:6]N(&]F.B!N
    M970N>'1R:6TN8W)M+F1I8W1I;VYA<GDN;V)J96-T+D-U<G)E;F-Y0#0S,34S
    M8PT*,C P,BTQ,BTP-2 Q,SHU-CHQ,2PS-3(@1$5"54<@6V-O;2YS;VQA<FUE
    M=')I8RYK;V1O+E)U;G1I;65=(&-O;2YS;VQA<FUE=')I8RYK;V1O+FEM<&PN
    M:F1B8RYE92Y%15!E<G-I<W1E;F-E36%N86=E<D9A8W1O<GE ,6%F-SAC93H@
    M<F5G:7-T97)#;&%S<SH@;F5T+GAT<FEM+F-R;2YD:6-T:6]N87)Y+F]B:F5C
    M="Y#=7)R96YC>4 T,S$U,V,]/F9A;'-E#0HR,# R+3$R+3 U(#$S.C4V.C$Q
    M+#0W,B!)3D9/("!;8V]M+G-O;&%R;65T<FEC+FMO9&\N4G5N=&EM95T@4W1A
    M<G1I;F<@2V]D;R!*1$\@=F5R<VEO;B R+C0N," H:V]D;VID;RTR+C0N,"TR
    M,# R,3$R-2TQ.34Q*2!W:71H(&-A<&%B:6QI=&EE<SH@6T5N=&5R<')I<V4@
    M161I=&EO;B!&96%T=7)E<RP@4W1A;F1A<F0@161I=&EO;B!&96%T=7)E<RP@
    M3&ET92!%9&ET:6]N($9E871U<F5S+"!%=F%L=6%T:6]N($QI8V5N<V4L(%%U
    M97)Y($5X=&5N<VEO;G,L($1A=&%C86-H92!0;'5G+6EN+"!3=&%T96UE;G0@
    M0F%T8VAI;F<L($=L;V)A;"!4<F%N<V%C=&EO;G,L($1E=F5L;W!E<B!4;V]L
    M<RP@0W5S=&]M($1A=&%B87-E($1I8W1I;VYA<FEE<RP@16YT97)P<FES92!$
    M871A8F%S97-=#0HR,# R+3$R+3 U(#$S.C4V.C$Q+#0X,B!705).("!;8V]M
    M+G-O;&%R;65T<FEC+FMO9&\N4G5N=&EM95T@5T%23DE.1SH@2V]D;R!*1$\@
    M179A;'5A=&EO;B!E>'!I<F5S(&EN(#$@9&%Y<RX@4&QE87-E(&-O;G1A8W0@
    M<V%L97- <V]L87)M971R:6,N8V]M(&9O<B!I;F9O<FUA=&EO;B!O;B!E>'1E
    M;F1I;F<@>6]U<B!E=F%L=6%T:6]N('!E<FEO9"!O<B!P=7)C:&%S:6YG(&$@
    M;&EC96YS92X-"C(P,#(M,3(M,#4@,3,Z-38Z,3$L-3$R($1%0E5'(%MC;VTN
    M<V]L87)M971R:6,N:V]D;RY2=6YT:6UE72!C;VTN<V]L87)M971R:6,N:V]D
    M;RYI;7!L+FID8F,N964N145097)S:7-T96YC94UA;F%G97)&86-T;W)Y0#%A
    M9C<X8V4Z(&9L=7-H:6YG(&1E9F5R<F5D(')E9VES=')A=&EO;B!O9B R(&-L
    M87-S97,-"C(P,#(M,3(M,#4@,3,Z-38Z,3$L-3,R($1%0E5'(%MC;VTN<V]L
    M87)M971R:6,N:V]D;RY2=6YT:6UE72!C;VTN<V]L87)M971R:6,N:V]D;RYI
    M;7!L+FID8F,N964N145097)S:7-T96YC94UA;F%G97)&86-T;W)Y0#%A9C<X
    M8V4Z(')E9VES=&5R:6YG(#(@8VQA<W-E<SH@6V-L87-S(&YE="YX=')I;2YC
    M<FTN8W5S=&]M97(N;V)J96-T+D-U<W1O;65R+"!C;&%S<R!N970N>'1R:6TN
    M8W)M+F1I8W1I;VYA<GDN;V)J96-T+D-U<G)E;F-Y70T*,C P,BTQ,BTP-2 Q
    M,SHU-CHQ,2PU-C,@1$5"54<@6V-O;2YS;VQA<FUE=')I8RYK;V1O+DUE=&%$
    M871A72!F;W5N9"!*1$\@<F5S;W5R8V4@0W5S=&]M97(N:F1O(&9O<B!N970N
    M>'1R:6TN8W)M+F-U<W1O;65R+F]B:F5C="Y#=7-T;VUE<B!A="!J87(Z9FEL
    M93HO1#HO:F%V82]J8F]S<RTS+C N-"]S97)V97(O<W5P<&]R=&-R;2]T;7 O
    M9&5P;&]Y+W-E<G9E<B]S=7!P;W)T8W)M+V1E<&QO>2]3=7!P;W)T0U)-+F5A
    M<B\V-BY3=7!P;W)T0U)-+F5A<BUC;VYT96YT<R]C<FU%2D)S+FIA<B$O;F5T
    M+WAT<FEM+V-R;2]C=7-T;VUE<B]O8FIE8W0O0W5S=&]M97(N:F1O#0HR,# R
    M+3$R+3 U(#$S.C4V.C$Q+#8P,R!)3D9/("!;8V]M+G-O;&%R;65T<FEC+FMO
    M9&\N365T841A=&%=(&-O;2YS;VQA<FUE=')I8RYK;V1O+FUE=&$N2D1/365T
    M841A=&%087)S97) -F1C9F1E.B!P87)S:6YG('-O=7)C93H@:F%R.F9I;&4Z
    M+T0Z+VIA=F$O:F)O<W,M,RXP+C0O<V5R=F5R+W-U<'!O<G1C<FTO=&UP+V1E
    M<&QO>2]S97)V97(O<W5P<&]R=&-R;2]D97!L;WDO4W5P<&]R=$-232YE87(O
    M-C8N4W5P<&]R=$-232YE87(M8V]N=&5N=',O8W)M14I"<RYJ87(A+VYE="]X
    M=')I;2]C<FTO8W5S=&]M97(O;V)J96-T+T-U<W1O;65R+FID;PT*,C P,BTQ
    M,BTP-2 Q,SHU-CHQ,2PV-C,@1$5"54<@6V-O;2YS;VQA<FUE=')I8RYK;V1O
    M+E)U;G1I;65=(&-O;2YS;VQA<FUE=')I8RYK;V1O+FEM<&PN:F1B8RYE92Y%
    M15!E<G-I<W1E;F-E36%N86=E<D9A8W1O<GE ,6%F-SAC93H@<F5G:7-T97)I
    M;F<Z(&1E9F5R<FEN9R!R96=I<W1R871I;VX@;V8Z(&YE="YX=')I;2YC<FTN
    M9&EC=&EO;F%R>2YO8FIE8W0N3&%N9W5A9V5 ,60P-F0P,@T*,C P,BTQ,BTP
    M-2 Q,SHU-CHQ,2PV-C,@1$5"54<@6V-O;2YS;VQA<FUE=')I8RYK;V1O+E)U
    M;G1I;65=(&-O;2YS;VQA<FUE=')I8RYK;V1O+FEM<&PN:F1B8RYE92Y%15!E
    M<G-I<W1E;F-E36%N86=E<D9A8W1O<GE ,6%F-SAC93H@<F5G:7-T97)#;&%S
    M<SH@(&YE="YX=')I;2YC<FTN9&EC=&EO;F%R>2YO8FIE8W0N3&%N9W5A9V5
    M,60P-F0P,CT^9F%L<V4-"C(P,#(M,3(M,#4@,3,Z-38Z,3$L-C<S($1%0E5'
    M(%MC;VTN<V]L87)M971R:6,N:V]D;RY2=6YT:6UE72!C;VTN<V]L87)M971R
    M:6,N:V]D;RYI;7!L+FID8F,N964N145097)S:7-T96YC94UA;F%G97)&86-T
    M;W)Y0#%A9C<X8V4Z(')E9VES=&5R:6YG.B!D969E<G)I;F<@<F5G:7-T<F%T
    M:6]N(&]F.B!N970N>'1R:6TN8W)M+F-U<W1O;65R+F]B:F5C="Y.871U<F5
    M,6(V.34V9@T*,C P,BTQ,BTP-2 Q,SHU-CHQ,2PV-S,@1$5"54<@6V-O;2YS
    M;VQA<FUE=')I8RYK;V1O+E)U;G1I;65=(&-O;2YS;VQA<FUE=')I8RYK;V1O
    M+FEM<&PN:F1B8RYE92Y%15!E<G-I<W1E;F-E36%N86=E<D9A8W1O<GE ,6%F
    M-SAC93H@<F5G:7-T97)#;&%S<SH@(&YE="YX=')I;2YC<FTN8W5S=&]M97(N
    M;V)J96-T+DYA='5R94 Q8C8Y-39F/3YF86QS90T*,C P,BTQ,BTP-2 Q,SHU
    M-CHQ,2PV-S,@1$5"54<@6V-O;2YS;VQA<FUE=')I8RYK;V1O+E)U;G1I;65=
    M(&-O;2YS;VQA<FUE=')I8RYK;V1O+FEM<&PN:F1B8RYE92Y%15!E<G-I<W1E
    M;F-E36%N86=E<D9A8W1O<GE ,6%F-SAC93H@<F5G:7-T97)I;F<Z(&1E9F5R
    M<FEN9R!R96=I<W1R871I;VX@;V8Z(&YE="YX=')I;2YC<FTN8W5S=&]M97(N
    M;V)J96-T+D-O;G1A8W1);F9O0&-C,V4X#0HR,# R+3$R+3 U(#$S.C4V.C$Q
    M+#8W,R!$14)51R!;8V]M+G-O;&%R;65T<FEC+FMO9&\N4G5N=&EM95T@8V]M
    M+G-O;&%R;65T<FEC+FMO9&\N:6UP;"YJ9&)C+F5E+D5%4&5R<VES=&5N8V5-
    M86YA9V5R1F%C=&]R>4 Q868W.&-E.B!R96=I<W1E<D-L87-S.B @;F5T+GAT
    M<FEM+F-R;2YC=7-T;VUE<BYO8FIE8W0N0V]N=&%C=$EN9F] 8V,S93@]/F9A
    M;'-E#0HR,# R+3$R+3 U(#$S.C4V.C$Q+#8X,R!$14)51R!;8V]M+G-O;&%R
    M;65T<FEC+FMO9&\N4G5N=&EM95T@8V]M+G-O;&%R;65T<FEC+FMO9&\N:6UP
    M;"YJ9&)C+F5E+D5%4&5R<VES=&5N8V5-86YA9V5R1F%C=&]R>4 Q868W.&-E
    M.B!R96=I<W1E<FEN9SH@9&5F97)R:6YG(')E9VES=')A=&EO;B!O9CH@;F5T
    M+GAT<FEM+F-R;2YC=7-T;VUE<BYO8FIE8W0N0V]N=')A8W14>7!E0#$S9&,T
    M9#4-"C(P,#(M,3(M,#4@,3,Z-38Z,3$L-C@S($1%0E5'(%MC;VTN<V]L87)M
    M971R:6,N:V]D;RY2=6YT:6UE72!C;VTN<V]L87)M971R:6,N:V]D;RYI;7!L
    M+FID8F,N964N145097)S:7-T96YC94UA;F%G97)&86-T;W)Y0#%A9C<X8V4Z
    M(')E9VES=&5R0VQA<W,Z("!N970N>'1R:6TN8W)M+F-U<W1O;65R+F]B:F5C
    M="Y#;VYT<F%C=%1Y<&5 ,3-D8S1D-3T^9F%L<V4-"C(P,#(M,3(M,#4@,3,Z
    M-38Z,3$L-C@S($1%0E5'(%MC;VTN<V]L87)M971R:6,N:V]D;RY2=6YT:6UE
    M72!C;VTN<V]L87)M971R:6,N:V]D;RYI;7!L+FID8F,N964N145097)S:7-T
    M96YC94UA;F%G97)&86-T;W)Y0#%A9C<X8V4Z(')E9VES=&5R:6YG.B!D969E
    M<G)I;F<@<F5G:7-T<F%T:6]N(&]F.B!N970N>'1R:6TN8W)M+F-U<W1O;65R
    M+F]B:F5C="Y#;VYT<F%C=$ T-3@Y96(-"C(P,#(M,3(M,#4@,3,Z-38Z,3$L
    M-C@S($1%0E5'(%MC;VTN<V]L87)M971R:6,N:V]D;RY2=6YT:6UE72!C;VTN
    M<V]L87)M971R:6,N:V]D;RYI;7!L+FID8F,N964N145097)S:7-T96YC94UA
    M;F%G97)&86-T;W)Y0#%A9C<X8V4Z(')E9VES=&5R0VQA<W,Z("!N970N>'1R
    M:6TN8W)M+F-U<W1O;65R+F]B:F5C="Y#;VYT<F%C=$ T-3@Y96(]/F9A;'-E
    M#0HR,# R+3$R+3 U(#$S.C4V.C$Q+#8X,R!$14)51R!;8V]M+G-O;&%R;65T
    M<FEC+FMO9&\N4G5N=&EM95T@8V]M+G-O;&%R;65T<FEC+FMO9&\N:6UP;"YJ
    M9&)C+F5E+D5%4&5R<VES=&5N8V5-86YA9V5R1F%C=&]R>4 Q868W.&-E.B!R
    M96=I<W1E<FEN9SH@9&5F97)R:6YG(')E9VES=')A=&EO;B!O9CH@;F5T+GAT
    M<FEM+F-R;2YC=7-T;VUE<BYO8FIE8W0N0W5S=&]M97)0:&]N94 W,S5F-#4-
    M"C(P,#(M,3(M,#4@,3,Z-38Z,3$L-C@S($1%0E5'(%MC;VTN<V]L87)M971R
    M:6,N:V]D;RY2=6YT:6UE72!C;VTN<V]L87)M971R:6,N:V]D;RYI;7!L+FID
    M8F,N964N145097)S:7-T96YC94UA;F%G97)&86-T;W)Y0#%A9C<X8V4Z(')E
    M9VES=&5R0VQA<W,Z("!N970N>'1R:6TN8W)M+F-U<W1O;65R+F]B:F5C="Y#
    M=7-T;VUE<E!H;VYE0#<S-68T-3T^9F%L<V4-"C(P,#(M,3(M,#4@,3,Z-38Z
    M,3$L-C@S($1%0E5'(%MC;VTN<V]L87)M971R:6,N:V]D;RY-971A1&%T85T@
    M<&%R<V5D(&IA<CIF:6QE.B]$.B]J879A+VIB;W-S+3,N,"XT+W-E<G9E<B]S
    M=7!P;W)T8W)M+W1M<"]D97!L;WDO<V5R=F5R+W-U<'!O<G1C<FTO9&5P;&]Y
    M+U-U<'!O<G1#4DTN96%R+S8V+E-U<'!O<G1#4DTN96%R+6-O;G1E;G1S+V-R
    M;45*0G,N:F%R(2]N970O>'1R:6TO8W)M+V-U<W1O;65R+V]B:F5C="]#=7-T
    M;VUE<BYJ9&\Z(%MC;VTN<V]L87)M971R:6,N:V]D;RYM971A+D-L87-S365T
    M841A=&% -S-C8S$Q6SMT>7!E/6-L87-S(&YE="YX=')I;2YC<FTN8W5S=&]M
    M97(N;V)J96-T+D-U<W1O;65R.VQO861E<CUO<F<N:F)O<W,N;7@N;&]A9&EN
    M9RY5;FEF:65D0VQA<W-,;V%D97(S0&-A8C@U-'L@=7)L/69I;&4Z+T0Z+VIA
    M=F$O:F)O<W,M,RXP+C0O<V5R=F5R+W-U<'!O<G1C<FTO=&UP+V1E<&QO>2]S
    M97)V97(O<W5P<&]R=&-R;2]D97!L;WDO4W5P<&]R=$-232YE87(O-C8N4W5P
    M<&]R=$-232YE87(M8V]N=&5N=',O8W)M14I"<RYJ87(@?3MF:6YI<VAE9#UF
    M86QS93ME;FAA;F-E9#UT<G5E75T-"C(P,#(M,3(M,#4@,3,Z-38Z,3$L-C@S
    M($1%0E5'(%MC;VTN<V]L87)M971R:6,N:V]D;RY-971A1&%T85T@<&%R<V5D
    M(&UE=&%D871A.B!T>7!E/6-L87-S(&YE="YX=')I;2YC<FTN8W5S=&]M97(N
    M;V)J96-T+D-U<W1O;65R0#(W,V8T93MV86QI9&%T93UF86QS93H@6V-O;2YS
    M;VQA<FUE=')I8RYK;V1O+FUE=&$N0VQA<W--971A1&%T84 W,V-C,3%;.W1Y
    M<&4]8VQA<W,@;F5T+GAT<FEM+F-R;2YC=7-T;VUE<BYO8FIE8W0N0W5S=&]M
    M97([;&]A9&5R/6]R9RYJ8F]S<RYM>"YL;V%D:6YG+E5N:69I961#;&%S<TQO
    M861E<C- 8V%B.#4T>R!U<FP]9FEL93HO1#HO:F%V82]J8F]S<RTS+C N-"]S
    M97)V97(O<W5P<&]R=&-R;2]T;7 O9&5P;&]Y+W-E<G9E<B]S=7!P;W)T8W)M
    M+V1E<&QO>2]3=7!P;W)T0U)-F5A<B\V-BY3=7!P;W)T0U)-F5A<BUC;VYT
    M96YT<R]C<FU%2D)S+FIA<B!].V9I;FES:&5D/69A;'-E.V5N:&%N8V5D/71R
    M=65=70T*,C P,BTQ,BTP-2 Q,SHU-CHQ,2PV.#,@1$5"54<@6V-O;2YS;VQA
    M<FUE=')I8RYK;V1O+DUE=&%$871A72!C86-H960@;65T861A=&$Z('1Y<&4]
    M;F5T+GAT<FEM+F-R;2YC=7-T;VUE<BYO8FIE8W0N0W5S=&]M97) ,C<S9C1E
    M.VQO861E<CUC;VTN<V]L87)M971R:6,N:V]D;RYU=&EL+DUU;'1I3&]A9&5R
    M0VQA<W-297-O;'9E<D!C86(X-S,@;&]A9&5R<SH@6V]R9RYJ8F]S<RYM>"YL
    M;V%D:6YG+E5N:69I961#;&%S<TQO861E<C- 8V%B.#4T>R!U<FP]9FEL93HO
    M1#HO:F%V82]J8F]S<RTS+C N-"]S97)V97(O<W5P<&]R=&-R;2]T;7 O9&5P
    M;&]Y+W-E<G9E<B]S=7!P;W)T8W)M+V1E<&QO>2]3=7!P;W)T0U)-+F5A<B\V
    M-BY3=7!P;W)T0U)-+F5A<BUC;VYT96YT<R]C<FU%2D)S+FIA<B!]73L@=&AR
    M96%D)W,@8V]N=&5X="!C;&%S<R!L;V%D97(Z(&IA=F$N;F5T+E523$-L87-S
    M3&]A9&5R0#-C.3,Q-#MV86QI9&%T93UF86QS93H@8V]M+G-O;&%R;65T<FEC
    M+FMO9&\N;65T82Y#;&%S<TUE=&%$871A0#<S8V,Q,5L[='EP93UC;&%S<R!N
    M970N>'1R:6TN8W)M+F-U<W1O;65R+F]B:F5C="Y#=7-T;VUE<CML;V%D97(]
    M;W)G+FIB;W-S+FUX+FQO861I;F<N56YI9FEE9$-L87-S3&]A9&5R,T!C86(X
    M-31[('5R;#UF:6QE.B]$.B]J879A+VIB;W-S+3,N,"XT+W-E<G9E<B]S=7!P
    M;W)T8W)M+W1M<"]D97!L;WDO<V5R=F5R+W-U<'!O<G1C<FTO9&5P;&]Y+U-U
    M<'!O<G1#4DTN96%R+S8V+E-U<'!O<G1#4DTN96%R+6-O;G1E;G1S+V-R;45*
    M0G,N:F%R('T[9FEN:7-H960]9F%L<V4[96YH86YC960]=')U95T-"C(P,#(M
    M,3(M,#4@,3,Z-38Z,3$L-CDS($1%0E5'(%MC;VTN<V]L87)M971R:6,N:V]D
    M;RY-971A1&%T85T@9F]U;F0@2D1/(')E<V]U<F-E($-U<G)E;F-Y+FID;R!F
    M;W(@;F5T+GAT<FEM+F-R;2YD:6-T:6]N87)Y+F]B:F5C="Y#=7)R96YC>2!A
    M="!J87(Z9FEL93HO1#HO:F%V82]J8F]S<RTS+C N-"]S97)V97(O<W5P<&]R
    M=&-R;2]T;7 O9&5P;&]Y+W-E<G9E<B]S=7!P;W)T8W)M+V1E<&QO>2]3=7!P
    M;W)T0U)-+F5A<B\V-BY3=7!P;W)T0U)-+F5A<BUC;VYT96YT<R]C<FU%2D)S
    M+FIA<B$O;F5T+WAT<FEM+V-R;2]D:6-T:6]N87)Y+V]B:F5C="]#=7)R96YC
    M>2YJ9&\-"C(P,#(M,3(M,#4@,3,Z-38Z,3$L-CDS($E.1D\@(%MC;VTN<V]L
    M87)M971R:6,N:V]D;RY-971A1&%T85T@8V]M+G-O;&%R;65T<FEC+FMO9&\N
    M;65T82Y*1$]-971A1&%T85!A<G-E<D U83EC-F4Z('!A<G-I;F<@<V]U<F-E
    M.B!J87(Z9FEL93HO1#HO:F%V82]J8F]S<RTS+C N-"]S97)V97(O<W5P<&]R
    M=&-R;2]T;7 O9&5P;&]Y+W-E<G9E<B]S=7!P;W)T8W)M+V1E<&QO>2]3=7!P
    M;W)T0U)-F5A<B\V-BY3=7!P;W)T0U)-F5A<BUC;VYT96YT<R]C<FU%2D)S
    M+FIA<B$O;F5T+WAT<FEM+V-R;2]D:6-T:6]N87)Y+V]B:F5C="]#=7)R96YC
    M>2YJ9&\-"C(P,#(M,3(M,#4@,3,Z-38Z,3$L-S S($1%0E5'(%MC;VTN<V]L
    M87)M971R:6,N:V]D;RY-971A1&%T85T@<&%R<V5D(&IA<CIF:6QE.B]$.B]J
    M879A+VIB;W-S+3,N,"XT+W-E<G9E<B]S=7!P;W)T8W)M+W1M<"]D97!L;WDO
    M<V5R=F5R+W-U<'!O<G1C<FTO9&5P;&]Y+U-U<'!O<G1#4DTN96%R+S8V+E-U
    M<'!O<G1#4DTN96%R+6-O;G1E;G1S+V-R;45*0G,N:F%R(2]N970O>'1R:6TO
    M8W)M+V1I8W1I;VYA<GDO;V)J96-T+T-U<G)E;F-Y+FID;SH@6V-O;2YS;VQA
    M<FUE=')I8RYK;V1O+FUE=&$N0VQA<W--971A1&%T84!B9#1D8S);.W1Y<&4]
    M8VQA<W,@;F5T+GAT<FEM+F-R;2YD:6-T:6]N87)Y+F]B:F5C="Y#=7)R96YC
    M>3ML;V%D97(];W)G+FIB;W-S+FUX+FQO861I;F<N56YI9FEE9$-L87-S3&]A
    M9&5R,T!C86(X-31[('5R;#UF:6QE.B]$.B]J879A+VIB;W-S+3,N,"XT+W-E
    M<G9E<B]S=7!P;W)T8W)M+W1M<"]D97!L;WDO<V5R=F5R+W-U<'!O<G1C<FTO
    M9&5P;&]Y+U-U<'!O<G1#4DTN96%R+S8V+E-U<'!O<G1#4DTN96%R+6-O;G1E
    M;G1S+V-R;45*0G,N:F%R('T[9FEN:7-H960]9F%L<V4[96YH86YC960]=')U
    M95U=#0HR,# R+3$R+3 U(#$S.C4V.C$Q+#<P,R!$14)51R!;8V]M+G-O;&%R
    M;65T<FEC+FMO9&\N365T841A=&%=('!A<G-E9"!M971A9&%T83H@='EP93UC
    M;&%S<R!N970N>'1R:6TN8W)M+F1I8W1I;VYA<GDN;V)J96-T+D-U<G)E;F-Y
    M0#0S,34S8SMV86QI9&%T93UF86QS93H@6V-O;2YS;VQA<FUE=')I8RYK;V1O
    M+FUE=&$N0VQA<W--971A1&%T84!B9#1D8S);.W1Y<&4]8VQA<W,@;F5T+GAT
    M<FEM+F-R;2YD:6-T:6]N87)Y+F]B:F5C="Y#=7)R96YC>3ML;V%D97(];W)G
    M+FIB;W-S+FUX+FQO861I;F<N56YI9FEE9$-L87-S3&]A9&5R,T!C86(X-31[
    M('5R;#UF:6QE.B]$.B]J879A+VIB;W-S+3,N,"XT+W-E<G9E<B]S=7!P;W)T
    M8W)M+W1M<"]D97!L;WDO<V5R=F5R+W-U<'!O<G1C<FTO9&5P;&]Y+U-U<'!O
    M<G1#4DTN96%R+S8V+E-U<'!O<G1#4DTN96%R+6-O;G1E;G1S+V-R;45*0G,N
    M:F%R('T[9FEN:7-H960]9F%L<V4[96YH86YC960]=')U95U=#0HR,# R+3$R
    M+3 U(#$S.C4V.C$Q+#<P,R!$14)51R!;8V]M+G-O;&%R;65T<FEC+FMO9&\N
    M365T841A=&%=(&-A8VAE9"!M971A9&%T83H@='EP93UN970N>'1R:6TN8W)M
    M+F1I8W1I;VYA<GDN;V)J96-T+D-U<G)E;F-Y0#0S,34S8SML;V%D97(]8V]M
    M+G-O;&%R;65T<FEC+FMO9&\N=71I;"Y-=6QT:4QO861E<D-L87-S4F5S;VQV
    M97) 8V%B.#<S(&QO861E<G,Z(%MO<F<N:F)O<W,N;7@N;&]A9&EN9RY5;FEF
    M:65D0VQA<W-,;V%D97(S0&-A8C@U-'L@=7)L/69I;&4Z+T0Z+VIA=F$O:F)O
    M<W,M,RXP+C0O<V5R=F5R+W-U<'!O<G1C<FTO=&UP+V1E<&QO>2]S97)V97(O
    M<W5P<&]R=&-R;2]D97!L;WDO4W5P<&]R=$-232YE87(O-C8N4W5P<&]R=$-2
    M32YE87(M8V]N=&5N=',O8W)M14I"<RYJ87(@?5T[('1H<F5A9"=S(&-O;G1E
    M>'0@8VQA<W,@;&]A9&5R.B!J879A+FYE="Y54DQ#;&%S<TQO861E<D S8SDS
    M,30[=F%L:61A=&4]9F%L<V4Z(&-O;2YS;VQA<FUE=')I8RYK;V1O+FUE=&$N
    M0VQA<W--971A1&%T84!B9#1D8S);.W1Y<&4]8VQA<W,@;F5T+GAT<FEM+F-R
    M;2YD:6-T:6]N87)Y+F]B:F5C="Y#=7)R96YC>3ML;V%D97(];W)G+FIB;W-S
    M+FUX+FQO861I;F<N56YI9FEE9$-L87-S3&]A9&5R,T!C86(X-31[('5R;#UF
    M:6QE.B]$.B]J879A+VIB;W-S+3,N,"XT+W-E<G9E<B]S=7!P;W)T8W)M+W1M
    M<"]D97!L;WDO<V5R=F5R+W-U<'!O<G1C<FTO9&5P;&]Y+U-U<'!O<G1#4DTN
    M96%R+S8V+E-U<'!O<G1#4DTN96%R+6-O;G1E;G1S+V-R;45*0G,N:F%R('T[
    M9FEN:7-H960]9F%L<V4[96YH86YC960]=')U95T-"C(P,#(M,3(M,#4@,3,Z
    M-38Z,3$L-S$S($1%0E5'(%MC;VTN<V]L87)M971R:6,N:V]D;RY-971A1&%T
    M85T@8W)E871E9"!M971A9&%T83H@='EP93UN970N>'1R:6TN8W)M+F1I8W1I
    M;VYA<GDN;V)J96-T+D-U<G)E;F-Y0#0S,34S8SML;V%D97(]8V]M+G-O;&%R
    M;65T<FEC+FMO9&\N=71I;"Y-=6QT:4QO861E<D-L87-S4F5S;VQV97) 8V%B
    M.#<S(&QO861E<G,Z(%MO<F<N:F)O<W,N;7@N;&]A9&EN9RY5;FEF:65D0VQA
    M<W-,;V%D97(S0&-A8C@U-'L@=7)L/69I;&4Z+T0Z+VIA=F$O:F)O<W,M,RXP
    M+C0O<V5R=F5R+W-U<'!O<G1C<FTO=&UP+V1E<&QO>2]S97)V97(O<W5P<&]R
    M=&-R;2]D97!L;WDO4W5P<&]R=$-232YE87(O-C8N4W5P<&]R=$-232YE87(M
    M8V]N=&5N=',O8W)M14I"<RYJ87(@?5T[('1H<F5A9"=S(&-O;G1E>'0@8VQA
    M<W,@;&]A9&5R.B!J879A+FYE="Y54DQ#;&%S<TQO861E<D S8SDS,30[=F%L
    M:61A=&4]9F%L<V4Z(&-O;2YS;VQA<FUE=')I8RYK;V1O+FUE=&$N0VQA<W--
    M971A1&%T84!B9#1D8S);.W1Y<&4]8VQA<W,@;F5T+GAT<FEM+F-R;2YD:6-T
    M:6]N87)Y+F]B:F5C="Y#=7)R96YC>3ML;V%D97(];W)G+FIB;W-S+FUX+FQO
    M861I;F<N56YI9FEE9$-L87-S3&]A9&5R,T!C86(X-31[('5R;#UF:6QE.B]$
    M.B]J879A+VIB;W-S+3,N,"XT+W-E<G9E<B]S=7!P;W)T8W)M+W1M<"]D97!L
    M;WDO<V5R=F5R+W-U<'!O<G1C<FTO9&5P;&]Y+U-U<'!O<G1#4DTN96%R+S8V
    M+E-U<'!O<G1#4DTN96%R+6-O;G1E;G1S+V-R;45*0G,N:F%R('T[9FEN:7-H
    M960]=')U93ME;FAA;F-E9#UT<G5E70T*,C P,BTQ,BTP-2 Q,SHU-CHQ,2PW
    M,C,@1$5"54<@6V-O;2YS;VQA<FUE=')I8RYK;V1O+DUE=&%$871A72!F;W5N
    M9"!*1$\@<F5S;W5R8V4@0V]N=&%C=$EN9F\N:F1O(&9O<B!N970N>'1R:6TN
    M8W)M+F-U<W1O;65R+F]B:F5C="Y#;VYT86-T26YF;R!A="!J87(Z9FEL93HO
    M1#HO:F%V82]J8F]S<RTS+C N-"]S97)V97(O<W5P<&]R=&-R;2]T;7 O9&5P
    M;&]Y+W-E<G9E<B]S=7!P;W)T8W)M+V1E<&QO>2]3=7!P;W)T0U)-+F5A<B\V
    M-BY3=7!P;W)T0U)-+F5A<BUC;VYT96YT<R]C<FU%2D)S+FIA<B$O;F5T+WAT
    M<FEM+V-R;2]C=7-T;VUE<B]O8FIE8W0O0V]N=&%C=$EN9F\N:F1O#0HR,# R
    M+3$R+3 U(#$S.C4V.C$Q+#<R,R!)3D9/("!;8V]M+G-O;&%R;65T<FEC+FMO
    M9&\N365T841A=&%=(&-O;2YS;VQA<FUE=')I8RYK;V1O+FUE=&$N2D1/365T
    M841A=&%087)S97) ,3DQ9&0Q9#H@<&%R<VEN9R!S;W5R8V4Z(&IA<CIF:6QE
    M.B]$.B]J879A+VIB;W-S+3,N,"XT+W-E<G9E<B]S=7!P;W)T8W)M+W1M<"]D
    M97!L;WDO<V5R=F5R+W-U<'!O<G1C<FTO9&5P;&]Y+U-U<'!O<G1#4DTN96%R
    M+S8V+E-U<'!O<G1#4DTN96%R+6-O;G1E;G1S+V-R;45*0G,N:F%R(2]N970O
    M>'1R:6TO8W)M+V-U<W1O;65R+V]B:F5C="]#;VYT86-T26YF;RYJ9&\-"C(P
    M,#(M,3(M,#4@,3,Z-38Z,3$L-S,S($1%0E5'(%MC;VTN<V]L87)M971R:6,N
    M:V]D;RY-971A1&%T85T@<&%R<V5D(&IA<CIF:6QE.B]$.B]J879A+VIB;W-S
    M+3,N,"XT+W-E<G9E<B]S=7!P;W)T8W)M+W1M<"]D97!L;WDO<V5R=F5R+W-U
    M<'!O<G1C<FTO9&5P;&]Y+U-U<'!O<G1#4DTN96%R+S8V+E-U<'!O<G1#4DTN
    M96%R+6-O;G1E;G1S+V-R;45*0G,N:F%R(2]N970O>'1R:6TO8W)M+V-U<W1O
    M;65R+V]B:F5C="]#;VYT86-T26YF;RYJ9&\Z(%MC;VTN<V]L87)M971R:6,N
    M:V]D;RYM971A+D-L87-S365T841A=&% 9C8Y,&4T6SMT>7!E/6-L87-S(&YE
    M="YX=')I;2YC<FTN8W5S=&]M97(N;V)J96-T+D-O;G1A8W1);F9O.VQO861E
    M<CUO<F<N:F)O<W,N;7@N;&]A9&EN9RY5;FEF:65D0VQA<W-,;V%D97(S0&-A
    M8C@U-'L@=7)L/69I;&4Z+T0Z+VIA=F$O:F)O<W,M,RXP+C0O<V5R=F5R+W-U
    M<'!O<G1C<FTO=&UP+V1E<&QO>2]S97)V97(O<W5P<&]R=&-R;2]D97!L;WDO
    M4W5P<&]R=$-232YE87(O-C8N4W5P<&]R=$-232YE87(M8V]N=&5N=',O8W)M
    M14I"<RYJ87(@?3MF:6YI<VAE9#UF86QS93ME;FAA;F-E9#UT<G5E75T-"C(P
    M,#(M,3(M,#4@,3,Z-38Z,3$L-S,S($1%0E5'(%MC;VTN<V]L87)M971R:6,N
    M:V]D;RY-971A1&%T85T@<&%R<V5D(&UE=&%D871A.B!T>7!E/6-L87-S(&YE
    M="YX=')I;2YC<FTN8W5S=&]M97(N;V)J96-T+D-O;G1A8W1);F9O0&-C,V4X
    M.W9A;&ED871E/69A;'-E.B!;8V]M+G-O;&%R;65T<FEC+FMO9&\N;65T82Y#
    M;&%S<TUE=&%$871A0&8V.3!E-%L[='EP93UC;&%S<R!N970N>'1R:6TN8W)M
    M+F-U<W1O;65R+F]B:F5C="Y#;VYT86-T26YF;SML;V%D97(];W)G+FIB;W-S
    M+FUX+FQO861I;F<N56YI9FEE9$-L87-S3&]A9&5R,T!C86(X-31[('5R;#UF
    M:6QE.B]$.B]J879A+VIB;W-S+3,N,"XT+W-E<G9E<B]S=7!P;W)T8W)M+W1M
    M<"]D97!L;WDO<V5R=F5R+W-U<'!O<G1C<FTO9&5P;&]Y+U-U<'!O<G1#4DTN
    M96%R+S8V+E-U<'!O<G1#4DTN96%R+6-O;G1E;G1S+V-R;45*0G,N:F%R('T[
    M9FEN:7-H960]9F%L<V4[96YH86YC960]=')U95U=#0HR,# R+3$R+3 U(#$S
    M.C4V.C$Q+#<S,R!$14)51R!;8V]M+G-O;&%R;65T<FEC+FMO9&\N365T841A
    M=&%=(&-A8VAE9"!M971A9&%T83H@='EP93UN970N>'1R:6TN8W)M+F-U<W1O
    M;65R+F]B:F5C="Y#;VYT86-T26YF;T!C8S-E.#ML;V%D97(]8V]M+G-O;&%R
    M;65T<FEC+FMO9&\N=71I;"Y-=6QT:4QO861E<D-L87-S4F5S;VQV97) 8V%B
    M.#<S(&QO861E<G,Z(%MO<F<N:F)O<W,N;7@N;&]A9&EN9RY5;FEF:65D0VQA
    M<W-,;V%D97(S0&-A8C@U-'L@=7)L/69I;&4Z+T0Z+VIA=F$O:F)O<W,M,RXP
    M+C0O<V5R=F5R+W-U<'!O<G1C<FTO=&UP+V1E<&QO>2]S97)V97(O<W5P<&]R
    M=&-R;2]D97!L;WDO4W5P<&]R=$-232YE87(O-C8N4W5P<&]R=$-232YE87(M
    M8V]N=&5N=',O8W)M14I"<RYJ87(@?5T[('1H<F5A9"=S(&-O;G1E>'0@8VQA
    M<W,@;&]A9&5R.B!J879A+FYE="Y54DQ#;&%S<TQO861E<D S8SDS,30[=F%L
    M:61A=&4]9F%L<V4Z(&-O;2YS;VQA<FUE=')I8RYK;V1O+FUE=&$N0VQA<W--
    M971A1&%T84!F-CDP931;.W1Y<&4]8VQA<W,@;F5T+GAT<FEM+F-R;2YC=7-T
    M;VUE<BYO8FIE8W0N0V]N=&%C=$EN9F\[;&]A9&5R/6]R9RYJ8F]S<RYM>"YL
    M;V%D:6YG+E5N:69I961#;&%S<TQO861E<C- 8V%B.#4T>R!U<FP]9FEL93HO
    M1#HO:F%V82]J8F]S<RTS+C N-"]S97)V97(O<W5P<&]R=&-R;2]T;7 O9&5P
    M;&]Y+W-E<G9E<B]S=7!P;W)T8W)M+V1E<&QO>2]3=7!P;W)T0U)-+F5A<B\V
    M-BY3=7!P;W)T0U)-+F5A<BUC;VYT96YT<R]C<FU%2D)S+FIA<B!].V9I;FES
    M:&5D/69A;'-E.V5N:&%N8V5D/71R=65=#0HR,# R+3$R+3 U(#$S.C4V.C$Q
    M+#<S,R!$14)51R!;8V]M+G-O;&%R;65T<FEC+FMO9&\N365T841A=&%=(&9O
    M=6YD($I$3R!R97-O=7)C92!,86YG=6%G92YJ9&\@9F]R(&YE="YX=')I;2YC
    M<FTN9&EC=&EO;F%R>2YO8FIE8W0N3&%N9W5A9V4@870@:F%R.F9I;&4Z+T0Z
    M+VIA=F$O:F)O<W,M,RXP+C0O<V5R=F5R+W-U<'!O<G1C<FTO=&UP+V1E<&QO
    M>2]S97)V97(O<W5P<&]R=&-R;2]D97!L;WDO4W5P<&]R=$-232YE87(O-C8N
    M4W5P<&]R=$-232YE87(M8V]N=&5N=',O8W)M14I"<RYJ87(A+VYE="]X=')I
    M;2]C<FTO9&EC=&EO;F%R>2]O8FIE8W0O3&%N9W5A9V4N:F1O#0HR,# R+3$R
    M+3 U(#$S.C4V.C$Q+#<S,R!)3D9/("!;8V]M+G-O;&%R;65T<FEC+FMO9&\N
    M365T841A=&%=(&-O;2YS;VQA<FUE=')I8RYK;V1O+FUE=&$N2D1/365T841A
    M=&%087)S97) ,6$R.30U,#H@<&%R<VEN9R!S;W5R8V4Z(&IA<CIF:6QE.B]$
    M.B]J879A+VIB;W-S+3,N,"XT+W-E<G9E<B]S=7!P;W)T8W)M+W1M<"]D97!L
    M;WDO<V5R=F5R+W-U<'!O<G1C<FTO9&5P;&]Y+U-U<'!O<G1#4DTN96%R+S8V
    M+E-U<'!O<G1#4DTN96%R+6-O;G1E;G1S+V-R;45*0G,N:F%R(2]N970O>'1R
    M:6TO8W)M+V1I8W1I;VYA<GDO;V)J96-T+TQA;F=U86=E+FID;PT*,C P,BTQ
    M,BTP-2 Q,SHU-CHQ,2PW-#,@1$5"54<@6V-O;2YS;VQA<FUE=')I8RYK;V1O
    M+DUE=&%$871A72!P87)S960@:F%R.F9I;&4Z+T0Z+VIA=F$O:F)O<W,M,RXP
    M+C0O<V5R=F5R+W-U<'!O<G1C<FTO=&UP+V1E<&QO>2]S97)V97(O<W5P<&]R
    M=&-R;2]D97!L;WDO4W5P<&]R=$-232YE87(O-C8N4W5P<&]R=$-232YE87(M
    M8V]N=&5N=',O8W)M14I"<RYJ87(A+VYE="]X=')I;2]C<FTO9&EC=&EO;F%R
    M>2]O8FIE8W0O3&%N9W5A9V4N:F1O.B!;8V]M+G-O;&%R;65T<FEC+FMO9&\N
    M;65T82Y#;&%S<TUE=&%$871A0#$X.&0Y,F5;.W1Y<&4]8VQA<W,@;F5T+GAT
    M<FEM+F-R;2YD:6-T:6]N87)Y+F]B:F5C="Y,86YG=6%G93ML;V%D97(];W)G
    M+FIB;W-S+FUX+FQO861I;F<N56YI9FEE9$-L87-S3&]A9&5R,T!C86(X-31[
    M('5R;#UF:6QE.B]$.B]J879A+VIB;W-S+3,N,"XT+W-E<G9E<B]S=7!P;W)T
    M8W)M+W1M<"]D97!L;WDO<V5R=F5R+W-U<'!O<G1C<FTO9&5P;&]Y+U-U<'!O
    M<G1#4DTN96%R+S8V+E-U<'!O<G1#4DTN96%R+6-O;G1E;G1S+V-R;45*0G,N
    M:F%R('T[9FEN:7-H960]9F%L<V4[96YH86YC960]=')U95U=#0HR,# R+3$R
    M+3 U(#$S.C4V.C$Q+#<T,R!$14)51R!;8V]M+G-O;&%R;65T<FEC+FMO9&\N
    M365T841A=&%=('!A<G-E9"!M971A9&%T83H@='EP93UC;&%S<R!N970N>'1R
    M:6TN8W)M+F1I8W1I;VYA<GDN;V)J96-T+DQA;F=U86=E0#%D,#9D,#([=F%L
    M:61A=&4]9F%L<V4Z(%MC;VTN<V]L87)M971R:6,N:V]D;RYM971A+D-L87-S
    M365T841A=&% ,3@X9#DR95L[='EP93UC;&%S<R!N970N>'1R:6TN8W)M+F1I
    M8W1I;VYA<GDN;V)J96-T+DQA;F=U86=E.VQO861E<CUO<F<N:F)O<W,N;7@N
    M;&]A9&EN9RY5;FEF:65D0VQA<W-,;V%D97(S0&-A8C@U-'L@=7)L/69I;&4Z
    M+T0Z+VIA=F$O:F)O<W,M,RXP+C0O<V5R=F5R+W-U<'!O<G1C<FTO=&UP+V1E
    M<&QO>2]S97)V97(O<W5P<&]R=&-R;2]D97!L;WDO4W5P<&]R=$-232YE87(O
    M-C8N4W5P<&]R=$-232YE87(M8V]N=&5N=',O8W)M14I"<RYJ87(@?3MF:6YI
    M<VAE9#UF86QS93ME;FAA;F-E9#UT<G5E75T-"C(P,#(M,3(M,#4@,3,Z-38Z
    M,3$L-S0S($1%0E5'(%MC;VTN<V]L87)M971R:6,N:V]D;RY-971A1&%T85T@
    M8V%C:&5D(&UE=&%D871A.B!T>7!E/6YE="YX=')I;2YC<FTN9&EC=&EO;F%R
    M>2YO8FIE8W0N3&%N9W5A9V5 ,60P-F0P,CML;V%D97(]8V]M+G-O;&%R;65T
    M<FEC+FMO9&\N=71I;"Y-=6QT:4QO861E<D-L87-S4F5S;VQV97) 8V%B.#<S
    M(&QO861E<G,Z(%MO<F<N:F)O<W,N;7@N;&]A9&EN9RY5;FEF:65D0VQA<W-,
    M;V%D97(S0&-A8C@U-'L@=7)L/69I;&4Z+T0Z+VIA=F$O:F)O<W,M,RXP+C0O
    M<V5R=F5R+W-U<'!O<G1C<FTO=&UP+V1E<&QO>2]S97)V97(O<W5P<&]R=&-R
    M;2]D97!L;WDO4W5P<&]R=$-232YE87(O-C8N4W5P<&]R=$-232YE87(M8V]N
    M=&5N=',O8W)M14I"<RYJ87(@?5T[('1H<F5A9"=S(&-O;G1E>'0@8VQA<W,@
    M;&]A9&5R.B!J879A+FYE="Y54DQ#;&%S<TQO861E<D S8SDS,30[=F%L:61A
    M=&4]9F%L<V4Z(&-O;2YS;VQA<FUE=')I8RYK;V1O+FUE=&$N0VQA<W--971A
    M1&%T84 Q.#AD.3)E6SMT>7!E/6-L87-S(&YE="YX=')I;2YC<FTN9&EC=&EO
    M;F%R>2YO8FIE8W0N3&%N9W5A9V4[;&]A9&5R/6]R9RYJ8F]S<RYM>"YL;V%D
    M:6YG+E5N:69I961#;&%S<TQO861E<C- 8V%B.#4T>R!U<FP]9FEL93HO1#HO
    M:F%V82]J8F]S<RTS+C N-"]S97)V97(O<W5P<&]R=&-R;2]T;7 O9&5P;&]Y
    M+W-E<G9E<B]S=7!P;W)T8W)M+V1E<&QO>2]3=7!P;W)T0U)-+F5A<B\V-BY3
    M=7!P;W)T0U)-+F5A<BUC;VYT96YT<R]C<FU%2D)S+FIA<B!].V9I;FES:&5D
    M/69A;'-E.V5N:&%N8V5D/71R=65

    Can you check what metadata you can see?
    I gathered that you have an access to dWfStepName, and dID, but not to other metadata values - sounds like the values you can see are taken from workflow temporary files and if you want to have all the metadata of the item you will have to run a search query to get them. I would suggest to follow to other workflow screens (workflow_review_frames template), because there it is possible to see all metadata and you can get an idea what needs to be done.

  • Deadlock in PM?

    Hi,
    The following stack traces are the (shortened) result of a Linux thread dump
    during a program hang I encountered today. The main point of interest is
    that during this hang, there were two Kodo objects which appear to be stuck
    waiting on locks. These are the PersistenceManangerImpl ( line 552 ) and
    the StateManagerImpl ( line 323 ). The other threads you see from my
    application are all waiting for a lock on a single, static object, which
    happens to be a Map of Threads to running, transactional persistence
    managers. Those calls are just a step away from making other commit calls
    to Kodo. The lock they are waiting on is held by the first thread, which
    locks the map while updating the PMs with ids that have just been changed in
    a commit.
    I suspect the lock is caused by commits in two separate PersistenceManagers
    occurring at nearly the same time. The first thread commits successfully,
    and then attempts to update other persistenceManagers ( possibly including
    the pm involved in the second thread, the one that is in the middle of a
    commit ) by calling refreshAll.
    Hope this helps. Let me know if you need more information.
    -Eric Lindauer
    "[HCM] - Creating a new Pricing job" prio=1 tid=0x49192538 nid=0x7401
    waiting for monitor entry [0xbc5ff000..0xbc5ff8a4]
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(Pers
    istenceManagerImpl.java:552)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(Persistenc
    eManagerImpl.java:529)
    at
    com.solarmetric.kodo.impl.jdbc.ormapping.OneToOneMapping.load(OneToOneMappin
    g.java:121)
    at
    com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.load(JDBCStoreManage
    r.java:242)
    at
    com.solarmetric.kodo.runtime.StateManagerImpl.loadFields(StateManagerImpl.ja
    va:1160)
    at
    com.solarmetric.kodo.runtime.PCleanState.refresh(PCleanState.java:90)
    at
    com.solarmetric.kodo.runtime.StateManagerImpl.refresh(StateManagerImpl.java:
    443)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.refreshFilter(Persistenc
    eManagerImpl.java:911)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.refreshAll(PersistenceMa
    nagerImpl.java:869)
    at
    com.hcm.tools.jdo.HCMPersistenceManager.refreshAll(HCMPersistenceManager.jav
    a:258)
    at
    com.hcm.tools.jdo.JDOFactory.updateTransactionalPms(JDOFactory.java:466)
    <...>
    "[HCM] - Creating a new Pricing job" prio=1 tid=0x49184c38 nid=0x73fe
    waiting for monitor entry [0xbcbff000..0xbcbff8a4]
    at
    com.solarmetric.kodo.runtime.StateManagerImpl.preStore(StateManagerImpl.java
    :323)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.flush(PersistenceManager
    Impl.java:319)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.commit(PersistenceManage
    rImpl.java:245)
    <...>
    "[HCM] - Creating a new Pricing job" prio=1 tid=0x4890c5f0 nid=0x7400
    waiting for monitor entry [0xbc7ff000..0xbc7ff8a4]
    at
    com.hcm.tools.jdo.JDOFactory.getNewTransactionalPersistenceManager(JDOFactor
    y.java:318)
    <...>
    "[HCM] - Creating a new Pricing job" prio=1 tid=0x4890e738 nid=0x73ff
    waiting for monitor entry [0xbc9ff000..0xbc9ff8a4]
    at com.hcm.tools.jdo.JDOFactory.removeThread(JDOFactory.java:372)
    <...>
    "[HCM] - Creating a new Pricing job" prio=1 tid=0x491a1918 nid=0x73fd
    waiting for monitor entry [0xbcdff000..0xbcdff8a4]
    at com.hcm.tools.jdo.JDOFactory.removeThread(JDOFactory.java:372)
    <...>

    Hi,
    similar errors are in the wls 10.3.4 too (fpr Example MOS Note: WebLogic Server thread deadlocked at JMS utilization (waiting to acquire lock 'weblogic.jms.common.CDS@20a61785') (Doc ID 1382525.1).
    I would consider to upgrade to 10.3.6 or 12 (if possible)
    Borys

  • DataCaching Problem

    Hi --
    I just enabled caching in my single-JVM application. Now, when I delete
    an "photo", it gives me an exception. It appears like the object
    deletion code goes through to commit successfully, and then subsequent
    accesses to Kodo, give the exception. If I disable caching and do the
    exact same sequence, no error occurs.
    My code look like this:
    Photo photo = (Photo)pm.getObjectById(photoId, false);
    // first, delete any thumbnails...
    Extent extent = pm.getExtent(PhotoThumbnail.class, false);
    Query query = pm.newQuery(extent);
    query.setFilter("photo == aPhoto");
    query.declareParameters("Photo aPhoto");
    Collection photosToDelete = (Collection)query.execute(photo);
    pm.deletePersistentAll(photosToDelete);
    // second, delete the photo itself
    pm.deletePersistent(photo);
    And there's the exception and trace...
    500 Servlet Exception
    javax.jdo.JDODataStoreException: The instance
    "net.nearlythere.business.data.Photo-202"
    does not exist in the data store.
         at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(PersistenceManagerImpl.java:864)
         at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(PersistenceManagerImpl.java:785)
         at com.solarmetric.kodo.runtime.PCData.lookup(PCData.java:517)
         at com.solarmetric.kodo.runtime.PCData.getData(PCData.java:493)
         at com.solarmetric.kodo.runtime.PCData.load(PCData.java:210)
         at com.solarmetric.kodo.runtime.PCData.load(PCData.java:112)
         at
    com.solarmetric.kodo.runtime.datacache.DataCacheStoreManager.initialize(DataCacheStoreManager.java:221)
         at
    com.solarmetric.kodo.runtime.StateManagerImpl.loadInitialState(StateManagerImpl.java:112)
         at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(PersistenceManagerImpl.java:863)
         at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(PersistenceManagerImpl.java:785)
         at com.solarmetric.kodo.runtime.PCData.lookup(PCData.java:517)
         at com.solarmetric.kodo.runtime.PCData.getData(PCData.java:493)
         at com.solarmetric.kodo.runtime.PCData.load(PCData.java:210)
         at com.solarmetric.kodo.runtime.PCData.load(PCData.java:112)
         at
    com.solarmetric.kodo.runtime.datacache.DataCacheStoreManager.initialize(DataCacheStoreManager.java:221)
         at
    com.solarmetric.kodo.runtime.StateManagerImpl.loadInitialState(StateManagerImpl.java:112)
         at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(PersistenceManagerImpl.java:863)
         at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(PersistenceManagerImpl.java:768)
         at
    net.nearlythere.business.CoreSiteBuilder.getObjectById(CoreSiteBuilder.java:3450)
         at net.nearlythere.business.BaseBusiness.getSite(BaseBusiness.java:278)
         at net.nearlythere.business.BaseBusiness.<init>(BaseBusiness.java:138)
         at net.nearlythere.business.CoreSiteBuilder.<init>(CoreSiteBuilder.java:80)
         at
    net.nearlythere.business.FactoryBusiness.newCore(FactoryBusiness.java:38)
         at net.nearlythere.frontend.controllers.site.Home.preDisplay(Home.java:61)
         at
    net.nearlythere.frontend.controllers.ControllerDisplay.perform(ControllerDisplay.java:29)
         at net.nearlythere.frontend.controllers.Controller.go(Controller.java:1126)
         at org.infohazard.maverick.ctl.Throwaway2.go(Throwaway2.java:48)
         at
    org.infohazard.maverick.flow.ThrowawayControllerAdapter.go(ThrowawayControllerAdapter.java:58)
         at org.infohazard.maverick.flow.CommandBase.go(CommandBase.java:41)
         at org.infohazard.maverick.Dispatcher.service(Dispatcher.java:179)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:103)
         at
    com.caucho.server.http.FilterChainServlet.doFilter(FilterChainServlet.java:96)
         at com.caucho.server.http.Invocation.service(Invocation.java:311)
         at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:218)
         at
    com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:160)
         at com.caucho.server.TcpConnection.run(TcpConnection.java:137)
         at java.lang.Thread.run(Thread.java:536)
    Resin 2.1.1 (built Mon May 13 16:53:21 PDT 2002)

    That's exactly what I'm saying. Consider what's happening -- you are
    deleting a given object, but not deleting the reference to it from other
    objects. So, your object model is in an invalid state -- you have a
    reference in PhotoThumbnail to an object that does not exist.
    Because this is a relatively common behavior, we've written our one-one
    JDBC mapping code to allow for this type of data corruption -- if we
    load an object and can't find a related object, we silently set it to
    null, assuming that this happened because the related data was deleted.
    However, our data cache code did not do the corresponding check, which
    is why you were seeing problems when using the data cache only.
    (In a future release, this behavior will probably be customizable, so
    you can decide how strictly we check your object model integrity.)
    So, by maintaining your object model properly (ensuring that you don't
    leave references to deleted items lying around), you provide our data
    cache with enough information to properly clean things up.
    The best practice for using JDO is to keep your object model consistent.
    -Patrick
    Dan Finkelstein wrote:
    Wait... what do you mean by that? I'm basically calling Kodo to delete
    all PhotoThumbnail objects that match the criteria. Are you saying that
    prior to doing this, I should iterate through them and do a:
    photoThumbnail.setPhoto(null)
    on each object meeting the criteria?
    If this is what you're suggesting, this seems like a lot of work... Are
    you saying that my object model is corrupt? Please explain what you
    mean, perhaps by example, and what is "best practices" from a JDO
    perspective.
    Thanks,
    Dan
    Patrick Linskey wrote:
    Dan,
    Another better workaround would be to ensure that your object model is
    consistent. That is, set the relation from PhotoThumbnail to Photo to
    null. The reason that this bug is occuring is that we made the
    assumption that your object model would be consistent.
    That said, our cache will be patched shortly to be more forgiving
    about this assumption. The patch will initially be deployed to 2.4,
    and will then be back-ported to 2.3 at some point in the next weekor so.
    -Patrick
    Dan Finkelstein wrote:
    Hi --
    I just enabled caching in my single-JVM application. Now, when I
    delete
    an "photo", it gives me an exception. It appears like the object
    deletion code goes through to commit successfully, and then subsequent
    accesses to Kodo, give the exception. If I disable caching and do the
    exact same sequence, no error occurs.
    My code look like this:
    Photo photo = (Photo)pm.getObjectById(photoId, false);
    // first, delete any thumbnails...
    Extent extent = pm.getExtent(PhotoThumbnail.class, false);
    Query query = pm.newQuery(extent);
    query.setFilter("photo == aPhoto");
    query.declareParameters("Photo aPhoto");
    Collection photosToDelete = (Collection)query.execute(photo);
    pm.deletePersistentAll(photosToDelete);
    // second, delete the photo itself
    pm.deletePersistent(photo);
    And there's the exception and trace...
    500 Servlet Exception
    javax.jdo.JDODataStoreException: The instance
    "net.nearlythere.business.data.Photo-202"
    does not exist in the data store.
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(PersistenceManagerImpl.java:864)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(PersistenceManagerImpl.java:785)
    at com.solarmetric.kodo.runtime.PCData.lookup(PCData.java:517)
    at com.solarmetric.kodo.runtime.PCData.getData(PCData.java:493)
    at com.solarmetric.kodo.runtime.PCData.load(PCData.java:210)
    at com.solarmetric.kodo.runtime.PCData.load(PCData.java:112)
    at
    com.solarmetric.kodo.runtime.datacache.DataCacheStoreManager.initialize(DataCacheStoreManager.java:221)
    at
    com.solarmetric.kodo.runtime.StateManagerImpl.loadInitialState(StateManagerImpl.java:112)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(PersistenceManagerImpl.java:863)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(PersistenceManagerImpl.java:785)
    at com.solarmetric.kodo.runtime.PCData.lookup(PCData.java:517)
    at com.solarmetric.kodo.runtime.PCData.getData(PCData.java:493)
    at com.solarmetric.kodo.runtime.PCData.load(PCData.java:210)
    at com.solarmetric.kodo.runtime.PCData.load(PCData.java:112)
    at
    com.solarmetric.kodo.runtime.datacache.DataCacheStoreManager.initialize(DataCacheStoreManager.java:221)
    at
    com.solarmetric.kodo.runtime.StateManagerImpl.loadInitialState(StateManagerImpl.java:112)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectByIdFilter(PersistenceManagerImpl.java:863)
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.getObjectById(PersistenceManagerImpl.java:768)
    at
    net.nearlythere.business.CoreSiteBuilder.getObjectById(CoreSiteBuilder.java:3450)
    at
    net.nearlythere.business.BaseBusiness.getSite(BaseBusiness.java:278)
    at net.nearlythere.business.BaseBusiness.(BaseBusiness.java:138)
    at
    net.nearlythere.business.CoreSiteBuilder.(CoreSiteBuilder.java:80)
    at
    net.nearlythere.business.FactoryBusiness.newCore(FactoryBusiness.java:38)
    at
    net.nearlythere.frontend.controllers.site.Home.preDisplay(Home.java:61)
    at
    net.nearlythere.frontend.controllers.ControllerDisplay.perform(ControllerDisplay.java:29)
    at
    net.nearlythere.frontend.controllers.Controller.go(Controller.java:1126)
    at org.infohazard.maverick.ctl.Throwaway2.go(Throwaway2.java:48)
    at
    org.infohazard.maverick.flow.ThrowawayControllerAdapter.go(ThrowawayControllerAdapter.java:58)
    at org.infohazard.maverick.flow.CommandBase.go(CommandBase.java:41)
    at org.infohazard.maverick.Dispatcher.service(Dispatcher.java:179)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:103)
    at
    com.caucho.server.http.FilterChainServlet.doFilter(FilterChainServlet.java:96)
    at com.caucho.server.http.Invocation.service(Invocation.java:311)
    at
    com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:218)
    at
    com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:160)
    at com.caucho.server.TcpConnection.run(TcpConnection.java:137)
    at java.lang.Thread.run(Thread.java:536)
    Resin 2.1.1 (built Mon May 13 16:53:21 PDT 2002)
    Patrick Linskey [email protected]
    SolarMetric Inc. http://www.solarmetric.com

Maybe you are looking for