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
-
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.ClassCastExceptionI 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) -
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?
ThanksTypo. 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 ShepardPlease 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,
PaulHey,
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
FAILEDMarc,
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 1Sorry "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. -
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,
MennoCan 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=65Can 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. -
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 -
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
-
FDM - Integration IMPORT script failed
Hi, We are on 11.1.2.1. I am trying to create a import integration script which i took from the FDM admin guide...and i am trying to pull data from Oracle table... But i am getting error as "Data access error" and its in the below line when i try to
-
SRM 7 - Rejected on purchase order
Hi Gurus, Our functional specialist have implemented the SRM 7.1 now they expect to be prompted / reminded to complete a rejection reason prior to approval. Currently no rejection reason is prompted when purchase order is being rejected.They are able
-
When I try to send a message to more than one person it tries to go out and comes up in the blue box but is not delivered. I phone 4s?
-
OBI SE 1 Administration Tool as a client tool to another OBI SE1 instance
Our client has installed the OBI SE 1 on a "server" machine with no hassles. They then installed OBI SE 1 again on a different "client machine", in order to use, only the Administration Tool as a client tool to the other OBI SE 1 Server instance. The
-
Error Window in Release Version of Adobe AIR
Is there a way to turn on the error window in the release version of Adobe AIR? When running my AIR application from in Flex Builder I get a window with error details when an error occures. Is there some way to to get this window and error details wh