Hi Jacopo and Jacques
Here the point:
When running under Eclipse with the standard run launcher or the debug launcher,
the ofbiz JVM exits as per the code in Start.java on any Error or
StartupException since returning false from startStartLoaders() exits with a 99
code:
public void start() {
if (!startStartLoaders()) {
System.exit(99);
}
if (config.shutdownAfterLoad) {
stopServer();
}
}
this does not help when debugging the ofbiz code. Thus, returning true from
startStartLoaders() in any case will let the JVM alive and will make the
développement and debugging as any standard java application.
Here the log when running the Start code and returning false on the
NoClassDefFoundError: org/eclipse/core/runtime/CoreException:
2012-04-01 18:55:21,843 (main) [ CatalinaContainer.java:255:INFO ] Started
Apache Tomcat/7.0.26
2012-04-01 18:55:21,843 (main) [ BirtContainer.java:50 :INFO ] Start BIRT
container
2012-04-01 18:55:21,937 (main) [ BirtContainer.java:70 :INFO ] Startup BIRT
platform
java.lang.NoClassDefFoundError: org/eclipse/core/runtime/CoreException
at
org.eclipse.birt.core.framework.Platform.createPlatformLauncher(Platform.java:115)
at org.eclipse.birt.core.framework.Platform.startup(Platform.java:74)
at org.ofbiz.birt.container.BirtContainer.start(BirtContainer.java:71)
at org.ofbiz.base.container.ContainerLoader.start(ContainerLoader.java:230)
at org.ofbiz.base.start.Start.startStartLoaders(Start.java:310)
at org.ofbiz.base.start.Start.start(Start.java:289)
at org.ofbiz.base.start.Start.main(Start.java:119)
Caused by: java.lang.ClassNotFoundException: org.eclipse.core.runtime.CoreException
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 7 more
Le 01/04/2012 16:01, Jacopo Cappellato a écrit :
> Well,
>
> I would like to understand well what we commit; what is the problem we are trying to
fix? I don't understand what is the meaning of being thrown out... shouldn't the debug mode
work as the standard mode when an exception is thrown?
>
> Jacopo
>
> On Apr 1, 2012, at 2:09 PM, Jacques Le Roux wrote:
>
>> I guess the idea is to not being thrown out when debugging in Eclipse and be able
to troubleshoot from there. Maybe Francis can explain better?
>>
>> As it's only in DEBUG mode (explicitly passed to the JVM) I can't see any issues
with this. Do you fear something or foresee some issues?
>>
>> Jacques
>>
>> From: "Jacopo Cappellato"<jacopo.cappellato@hotwaxmedia.com>
>>> It doesn't explain why we should not exit on error.
>>>
>>> Jacopo
>>>
>>> On Apr 1, 2012, at 1:45 PM, Jacques Le Roux wrote:
>>>
>>>> Francis explained it here https://cwiki.apache.org/confluence/display/OFBIZ/Running+and+Debugging+OFBiz+in+Eclipse#RunningandDebuggingOFBizinEclipse-Debugging(orrunning)OFBizinEclipsewithhotreplacementofclasses
>>>> But he should update now because I have just added the converters in /ofbiz/framework/entity/src/META-INF/services/org.ofbiz.base.conversion.ConverterLoader
at http://svn.apache.org/viewvc?rev=1308085&view=rev
>>>>
>>>> Jacques
>>>>
>>>> From: "Jacopo Cappellato"<jacopo.cappellato@hotwaxmedia.com>
>>>>> maybe I don't understand but why should we want this?
>>>>>
>>>>> Jacopo
>>>>>
>>>>> On Apr 1, 2012, at 1:27 PM, jleroux@apache.org wrote:
>>>>>
>>>>>> Author: jleroux
>>>>>> Date: Sun Apr 1 11:27:45 2012
>>>>>> New Revision: 1308078
>>>>>>
>>>>>> URL: http://svn.apache.org/viewvc?rev=1308078&view=rev
>>>>>> Log:
>>>>>> A patch from Francis ANDRE "Avoid exiting ofbiz when running in debug
mode,i.e with -DDEBUG=true set on theJVM arguments" https://issues.apache.org/jira/browse/OFBIZ-3790
>>>>>>
>>>>>> This is a patch for allowing to run OFBiz in debug mode,i.e with
-DDEBUG=true on the JVM arguments, and avoid to exit from the process when a Error or a StartupException
occurs.
>>>>>>
>>>>>> jleroux: replaced tabs by 4 spaces
>>>>>>
>>>>>> Modified:
>>>>>> ofbiz/trunk/framework/start/src/org/ofbiz/base/start/Start.java
>>>>>>
>>>>>> Modified: ofbiz/trunk/framework/start/src/org/ofbiz/base/start/Start.java
>>>>>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/start/src/org/ofbiz/base/start/Start.java?rev=1308078&r1=1308077&r2=1308078&view=diff
>>>>>> ==============================================================================
>>>>>> --- ofbiz/trunk/framework/start/src/org/ofbiz/base/start/Start.java
(original)
>>>>>> +++ ofbiz/trunk/framework/start/src/org/ofbiz/base/start/Start.java
Sun Apr 1 11:27:45 2012
>>>>>> @@ -37,7 +37,7 @@ import java.util.List;
>>>>>> *
>>>>>> */
>>>>>> public class Start {
>>>>>> -
>>>>>> + private static final String DEBUG = System.getProperty("DEBUG");
>>>>>> private static final String SHUTDOWN_COMMAND = "SHUTDOWN";
>>>>>> private static final String STATUS_COMMAND = "STATUS";
>>>>>>
>>>>>> @@ -206,7 +206,7 @@ public class Start {
>>>>>> System.setProperty("java.class.path", classPath.toString());
>>>>>> ClassLoader classloader = classPath.getClassLoader();
>>>>>> Thread.currentThread().setContextClassLoader(classloader);
>>>>>> - if (System.getProperty("DEBUG") != null) {
>>>>>> + if (DEBUG != null) {
>>>>>> System.out.println("Startup Classloader: " + classloader.toString());
>>>>>> System.out.println("Startup Classpath: " + classPath.toString());
>>>>>> }
>>>>>> @@ -310,7 +310,12 @@ public class Start {
>>>>>> loader.start();
>>>>>> } catch (StartupException e) {
>>>>>> e.printStackTrace();
>>>>>> - return false;
>>>>>> + if (DEBUG == null)
>>>>>> + return false;
>>>>>> + } catch(Error e) {
>>>>>> + e.printStackTrace();
>>>>>> + if (DEBUG == null)
>>>>>> + return false;
>>>>>> }
>>>>>> }
>>>>>> serverStarted = true;
>>>>>>
>>>>>>
>
|