Sorry, I am not an Eclipse user but I know that there are several out there
that are using Eclipse to debug OFbiz: is any of you experiencing the same
issue?
Thanks,
Jacopo
On Apr 1, 2012, at 7:06 PM, Francis ANDRE wrote:
> 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"<[email protected]>
>>>> 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"<[email protected]>
>>>>>> maybe I don't understand but why should we want this?
>>>>>>
>>>>>> Jacopo
>>>>>>
>>>>>> On Apr 1, 2012, at 1:27 PM, [email protected] 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;
>>>>>>>
>>>>>>>
>>