You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by Barnhill William <ba...@bah.com> on 2003/12/02 18:26:37 UTC
Re: [J2] Cornerstone stack overflow
ok, based on some behavior I was seeing in the debugger I think I've
tracked down the real culprit : PersistenceException.
I can reproduce the bug every time if I reduce the demoPersistence
program down to just the following:
package org.apache.cornerstone.framework.demo.main;
import java.util.List;
import org.apache.cornerstone.framework.api.factory.CreationException;
import org.apache.cornerstone.framework.api.factory.IFactory;
import
org.apache.cornerstone.framework.api.implementation.ImplementationException;
import org.apache.cornerstone.framework.bean.visitor.BeanPrinter;
import org.apache.cornerstone.framework.demo.bo.api.IGroup;
import org.apache.cornerstone.framework.demo.bo.api.IUser;
import org.apache.cornerstone.framework.init.Cornerstone;
import org.apache.cornerstone.framework.init.InitException;
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.Logger;
import
org.apache.cornerstone.framework.api.persistence.factory.PersistenceException;
public class DemoPersistence {
public static final String REVISION = "$Revision: 1.6 $";
public static void main(String[] args) throws InitException,
ImplementationException, CreationException {
// init log4j
String log4jConfigFilePath =
System.getProperty("log4j.configuration", "log4j.properties");
PropertyConfigurator.configure(log4jConfigFilePath);
Logger log = Logger.getLogger(DemoPersistence.class);
//try {
Cornerstone.init("../../runtime");
try {
try {
throw new PersistenceException("dummy");
}
catch (PersistenceException ex) {
log.error(ex);
ex.printStackTrace();
}
}
catch (Throwable th) {
java.io.StringWriter sw = new java.io.StringWriter();
java.io.PrintWriter pw = new java.io.PrintWriter(sw);
if (th.getCause() == null) {
pw.println("Cause is null");
}
else {
th.getCause().printStackTrace(pw);
}
th.printStackTrace(pw);
log.error("Error message is "+th.getMessage());
log.error("Stack trace from previous error was:
\n"+sw.getBuffer().toString());
}
}
}
The output I get is :
org.apache.cornerstone.framework.api.persistence.factory.PersistenceException:
dummy
at
org.apache.cornerstone.framework.demo.main.DemoPersistence.main(DemoPersistence.java:31)
Caused by:
org.apache.cornerstone.framework.api.persistence.factory.PersistenceException:
dummy
... 1 more
with
Caused by:
org.apache.cornerstone.framework.api.persistence.factory.PersistenceException:
dummy
... 1 more
repeated MANY more times.
Barnhill William wrote:
> The readme file in the cornerstone sample zip says that the
> StackOverflowError happens sometimes. For me it's happening everytime.
>
> After doing some hunting and fiddling with logging I think I've
> tracked it down to the following msg/location:
>
> 2003-12-02 12:01:25,702 671
> [main@(org.apache.cornerstone.framework.persistence.factory.BasePersistentObjectCollectionFactory.createCollection(BasePersistentObjectCollectionFactory.java:325))]
>
> ERROR
> org.apache.cornerstone.framework.persistence.factory.BasePersistentObjectCollectionFactory
> - collection type definition missing; use
> 'collection.instance.className' or 'collection.factory.className' or
> 'collection.parent.name'
>
> Has anyone fixed this already?
>
> Does anyone have an idea how to fix this?
>
> Also, will it make a difference right now if I use the version in CVS,
> or the one in the zip archive?
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
Re: [J2] Cornerstone stack overflow
Posted by Barnhill William <ba...@bah.com>.
Jun and all,
My sincere apologies, this came in as I was writing a response to the
earlier msg.
Bill
Jun Yang wrote:
> Hi Barnhill,
>
> I am very sorry for this glitch. I am sure it's a small thing. I
> just didn't have time to get around to it. Thanks for your excellent
> detective work. PersistenceException is where I guessed where the
> problem may be (actually it may turn out to be its super class
> BaseException). My guess is the getCause() method has infinite
> recursion on itself. So a condition should be added to detect if
> cause == this then we just return this or something like that. I will
> try to see if I have time to fix it today. Thanks again!
>
> Jun
>
> Barnhill William wrote:
>
>> ok, based on some behavior I was seeing in the debugger I think I've
>> tracked down the real culprit : PersistenceException.
>>
>> I can reproduce the bug every time if I reduce the demoPersistence
>> program down to just the following:
>>
>> package org.apache.cornerstone.framework.demo.main;
>>
>> import java.util.List;
>>
>> import org.apache.cornerstone.framework.api.factory.CreationException;
>> import org.apache.cornerstone.framework.api.factory.IFactory;
>> import
>> org.apache.cornerstone.framework.api.implementation.ImplementationException;
>>
>> import org.apache.cornerstone.framework.bean.visitor.BeanPrinter;
>> import org.apache.cornerstone.framework.demo.bo.api.IGroup;
>> import org.apache.cornerstone.framework.demo.bo.api.IUser;
>> import org.apache.cornerstone.framework.init.Cornerstone;
>> import org.apache.cornerstone.framework.init.InitException;
>> import org.apache.log4j.PropertyConfigurator;
>> import org.apache.log4j.Logger;
>> import
>> org.apache.cornerstone.framework.api.persistence.factory.PersistenceException;
>>
>>
>> public class DemoPersistence {
>> public static final String REVISION = "$Revision: 1.6 $";
>> public static void main(String[] args) throws InitException,
>> ImplementationException, CreationException {
>> // init log4j
>> String log4jConfigFilePath =
>> System.getProperty("log4j.configuration", "log4j.properties");
>> PropertyConfigurator.configure(log4jConfigFilePath);
>> Logger log = Logger.getLogger(DemoPersistence.class);
>> //try {
>> Cornerstone.init("../../runtime");
>> try {
>> try {
>> throw new PersistenceException("dummy");
>> }
>> catch (PersistenceException ex) {
>> log.error(ex);
>> ex.printStackTrace();
>> } }
>> catch (Throwable th) {
>> java.io.StringWriter sw = new java.io.StringWriter();
>> java.io.PrintWriter pw = new java.io.PrintWriter(sw);
>> if (th.getCause() == null) {
>> pw.println("Cause is null");
>> }
>> else {
>> th.getCause().printStackTrace(pw);
>> }
>> th.printStackTrace(pw);
>> log.error("Error message is "+th.getMessage());
>> log.error("Stack trace from previous error was:
>> \n"+sw.getBuffer().toString()); }
>> }
>> }
>>
>> The output I get is :
>> org.apache.cornerstone.framework.api.persistence.factory.PersistenceException:
>> dummy
>> at
>> org.apache.cornerstone.framework.demo.main.DemoPersistence.main(DemoPersistence.java:31)
>>
>> Caused by:
>> org.apache.cornerstone.framework.api.persistence.factory.PersistenceException:
>> dummy
>> ... 1 more
>>
>> with
>> Caused by:
>> org.apache.cornerstone.framework.api.persistence.factory.PersistenceException:
>> dummy
>> ... 1 more
>> repeated MANY more times.
>>
>>
>> Barnhill William wrote:
>>
>>> The readme file in the cornerstone sample zip says that the
>>> StackOverflowError happens sometimes. For me it's happening everytime.
>>>
>>> After doing some hunting and fiddling with logging I think I've
>>> tracked it down to the following msg/location:
>>>
>>> 2003-12-02 12:01:25,702 671
>>> [main@(org.apache.cornerstone.framework.persistence.factory.BasePersistentObjectCollectionFactory.createCollection(BasePersistentObjectCollectionFactory.java:325))]
>>>
>>> ERROR
>>> org.apache.cornerstone.framework.persistence.factory.BasePersistentObjectCollectionFactory
>>> - collection type definition missing; use
>>> 'collection.instance.className' or 'collection.factory.className' or
>>> 'collection.parent.name'
>>>
>>> Has anyone fixed this already?
>>>
>>> Does anyone have an idea how to fix this?
>>>
>>> Also, will it make a difference right now if I use the version in
>>> CVS, or the one in the zip archive?
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
Re: [J2] Cornerstone stack overflow
Posted by Jun Yang <ju...@cisco.com>.
Hi Barnhill,
I am very sorry for this glitch. I am sure it's a small thing. I just
didn't have time to get around to it. Thanks for your excellent
detective work. PersistenceException is where I guessed where the
problem may be (actually it may turn out to be its super class
BaseException). My guess is the getCause() method has infinite
recursion on itself. So a condition should be added to detect if cause
== this then we just return this or something like that. I will try to
see if I have time to fix it today. Thanks again!
Jun
Barnhill William wrote:
> ok, based on some behavior I was seeing in the debugger I think I've
> tracked down the real culprit : PersistenceException.
>
> I can reproduce the bug every time if I reduce the demoPersistence
> program down to just the following:
>
> package org.apache.cornerstone.framework.demo.main;
>
> import java.util.List;
>
> import org.apache.cornerstone.framework.api.factory.CreationException;
> import org.apache.cornerstone.framework.api.factory.IFactory;
> import
> org.apache.cornerstone.framework.api.implementation.ImplementationException;
>
> import org.apache.cornerstone.framework.bean.visitor.BeanPrinter;
> import org.apache.cornerstone.framework.demo.bo.api.IGroup;
> import org.apache.cornerstone.framework.demo.bo.api.IUser;
> import org.apache.cornerstone.framework.init.Cornerstone;
> import org.apache.cornerstone.framework.init.InitException;
> import org.apache.log4j.PropertyConfigurator;
> import org.apache.log4j.Logger;
> import
> org.apache.cornerstone.framework.api.persistence.factory.PersistenceException;
>
>
> public class DemoPersistence {
> public static final String REVISION = "$Revision: 1.6 $";
> public static void main(String[] args) throws InitException,
> ImplementationException, CreationException {
> // init log4j
> String log4jConfigFilePath =
> System.getProperty("log4j.configuration", "log4j.properties");
> PropertyConfigurator.configure(log4jConfigFilePath);
> Logger log = Logger.getLogger(DemoPersistence.class);
> //try {
> Cornerstone.init("../../runtime");
> try {
> try {
> throw new PersistenceException("dummy");
> }
> catch (PersistenceException ex) {
> log.error(ex);
> ex.printStackTrace();
> } }
> catch (Throwable th) {
> java.io.StringWriter sw = new java.io.StringWriter();
> java.io.PrintWriter pw = new java.io.PrintWriter(sw);
> if (th.getCause() == null) {
> pw.println("Cause is null");
> }
> else {
> th.getCause().printStackTrace(pw);
> }
> th.printStackTrace(pw);
> log.error("Error message is "+th.getMessage());
> log.error("Stack trace from previous error was:
> \n"+sw.getBuffer().toString()); }
> }
> }
>
> The output I get is :
> org.apache.cornerstone.framework.api.persistence.factory.PersistenceException:
> dummy
> at
> org.apache.cornerstone.framework.demo.main.DemoPersistence.main(DemoPersistence.java:31)
>
> Caused by:
> org.apache.cornerstone.framework.api.persistence.factory.PersistenceException:
> dummy
> ... 1 more
>
> with
> Caused by:
> org.apache.cornerstone.framework.api.persistence.factory.PersistenceException:
> dummy
> ... 1 more
> repeated MANY more times.
>
>
> Barnhill William wrote:
>
>> The readme file in the cornerstone sample zip says that the
>> StackOverflowError happens sometimes. For me it's happening everytime.
>>
>> After doing some hunting and fiddling with logging I think I've
>> tracked it down to the following msg/location:
>>
>> 2003-12-02 12:01:25,702 671
>> [main@(org.apache.cornerstone.framework.persistence.factory.BasePersistentObjectCollectionFactory.createCollection(BasePersistentObjectCollectionFactory.java:325))]
>>
>> ERROR
>> org.apache.cornerstone.framework.persistence.factory.BasePersistentObjectCollectionFactory
>> - collection type definition missing; use
>> 'collection.instance.className' or 'collection.factory.className' or
>> 'collection.parent.name'
>>
>> Has anyone fixed this already?
>>
>> Does anyone have an idea how to fix this?
>>
>> Also, will it make a difference right now if I use the version in
>> CVS, or the one in the zip archive?
>
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org