Hi folks, I know it's a big patch, but it would be really great if someone can take a look at [1]? Specifically, I have added the logic for "continue-on-failure" plus adding old paramters for --load-data that might not be necessary anymore? I even documented them in README.md. This includes flags like: create-constraints, drop-constraints, create-pks, drop-pks and so on. I would like to remove them, but kept them because I'm not sure if people are using them still?
[1] https://issues.apache.org/jira/browse/OFBIZ-9441 On Tue, Jul 11, 2017 at 1:10 PM, Jacques Le Roux <jacques.le.r...@les7arts.com> wrote: > Yes, that's why it's a long task. I have to consider all cases carefully. > > That's also why I added this last comment (quoted below) in OFBIZ-8341 > > "I'll sometimes create subtasks or new Jira issues to differentiate cases > that need to be discussed. > It would be good for instance for a type of exception and a type of file > (service, event, helper/handler/test/etc.) to use and adopt a same type of > exception handling." > > Having patterns would help everybody, when creating, reviewing, refactoring, > etc. > > Jacques > > > > Le 11/07/2017 à 09:47, Taher Alkhateeb a écrit : >> >> This thread is a good example of refactoring. So mass fixing of >> swallowed exceptions is not ideal IMHO because sometimes we want to >> log things, sometimes we want to re-throw, sometimes we want a >> different path. Hence each item should be refactored slowly and in >> isolation because if you just throw a log in there then people would >> think this code is probably okay and doesn't need review. >> >> Anyway, again I appreciate all the help in your reviews, the feature >> is more or less implemented in OFBIZ-9441. >> >> On Tue, Jul 11, 2017 at 12:35 AM, Jacques Le Roux >> <jacques.le.r...@les7arts.com> wrote: >>> >>> I'll refrain to speak about swallowed exceptions ;) >>> >>> I still want to continue on OFBIZ-8341 but accepted to get sidetracked in >>> multi ways :) >>> >>> Jacques >>> >>> >>> >>> Le 10/07/2017 à 21:36, Taher Alkhateeb a écrit : >>>> >>>> Fixed it in the JIRA, the EntitySaxReader (should be the next class to >>>> refactor) is logging an error but suppressing an exception. The logic >>>> for "continue-on-error" had to go 3 classes deep to work correctly. I >>>> always underestimate how much spaghetti code we have :) >>>> >>>> On Mon, Jul 10, 2017 at 8:14 PM, Taher Alkhateeb >>>> <slidingfilame...@gmail.com> wrote: >>>>> >>>>> Quick update, to my surprise an exception is swallowed >>>>> deeeeeeeeeeeeeeeeeeeeeeeeeeeep in the call stack. So getting this >>>>> feature might require some intrusive changes. I'm still working on it >>>>> and will keep you posted, but as of right now, no exception is >>>>> bubbling up to be caught with "continue-on-failure" >>>>> >>>>> On Mon, Jul 10, 2017 at 2:14 PM, Taher Alkhateeb >>>>> <slidingfilame...@gmail.com> wrote: >>>>>> >>>>>> Thank you everyone for your feedback, I will let this discussion >>>>>> continue for a few days before committing anything (testing is going >>>>>> to take some time anyway). >>>>>> >>>>>> Now, I need help, I have a big patch in [1] that does what we >>>>>> discussed in this thread and a whole lot more. If you have the time, I >>>>>> really need your help! Most useful help is testing, there are so many >>>>>> properties and combinations to use, so this requires thorough testing. >>>>>> Also for those familiar with the core framework API, a second look at >>>>>> the code would help. >>>>>> >>>>>> [1] https://issues.apache.org/jira/browse/OFBIZ-9441 >>>>>> >>>>>> On Mon, Jul 10, 2017 at 1:45 PM, Devanshu Vyas >>>>>> <vyas.devansh...@gmail.com> wrote: >>>>>>> >>>>>>> I agree with option #3 and the 'continue-on-failure' flag with >>>>>>> default >>>>>>> value=false. :) >>>>>>> >>>>>>> Thanks & Regards, >>>>>>> Devanshu Vyas. >>>>>>> >>>>>>> On Mon, Jul 10, 2017 at 3:07 PM, Taher Alkhateeb >>>>>>> <slidingfilame...@gmail.com >>>>>>>> >>>>>>>> wrote: >>>>>>>> Hi Rishi, >>>>>>>> >>>>>>>> So my suggestion is that if anything does not load, then immediately >>>>>>>> fail. >>>>>>>> >>>>>>>> Why am I suggesting this? >>>>>>>> - You have to intentionally ignore data failure after being aware of >>>>>>>> it (it does not slip between the cracks) >>>>>>>> - The data will automatically get cleaned by committers because no >>>>>>>> failing data will be committed to the code base. >>>>>>>> >>>>>>>> I suspect we will actually catch some data loading failures that >>>>>>>> exist >>>>>>>> in the code base and we are maybe unaware of. >>>>>>>> >>>>>>>> On Mon, Jul 10, 2017 at 12:04 PM, Rishi Solanki >>>>>>>> <rishisolan...@gmail.com> >>>>>>>> wrote: >>>>>>>>> >>>>>>>>> I'm good to go with option #3 and continue-on-failure. >>>>>>>>> >>>>>>>>> Just wanted to mention one thing here; for which type of data we >>>>>>>>> will >>>>>>>>> be >>>>>>>>> failing build. That means, we have several options seed, ext, demo. >>>>>>>>> Do we >>>>>>>>> need to discuss these points or we are fine for all type of data. >>>>>>>>> Like >>>>>>>> >>>>>>>> demo >>>>>>>>> >>>>>>>>> data fails only affect a process for that data set only, and for >>>>>>>>> that >>>>>>>>> failing build is okay or not (as on data load we get logs if any >>>>>>>>> file >>>>>>>>> didn't load). >>>>>>>>> >>>>>>>>> >>>>>>>>> Btw, I'm good with the proposal, just sharing a thought in case we >>>>>>>>> should >>>>>>>>> discuss or may be we can simply ignore if we are good with that. >>>>>>>>> >>>>>>>>> Thaks! >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> Rishi Solanki >>>>>>>>> Sr Manager, Enterprise Software Development >>>>>>>>> HotWax Systems Pvt. Ltd. >>>>>>>>> Direct: +91-9893287847 >>>>>>>>> http://www.hotwaxsystems.com >>>>>>>>> >>>>>>>>> On Mon, Jul 10, 2017 at 2:15 PM, Deepak Dixit < >>>>>>>>> deepak.di...@hotwaxsystems.com> wrote: >>>>>>>>> >>>>>>>>>>> Historically the data loader boolean props are false if ommitted >>>>>>>>>>> and >>>>>>>> >>>>>>>> the >>>>>>>>>>> >>>>>>>>>>> code expects that, but you have a point about the double >>>>>>>>>>> negative. >>>>>>>>>>> We >>>>>>>> >>>>>>>> can >>>>>>>>>>> >>>>>>>>>>> instead call it "continue-on-failure" for example. >>>>>>>>>>> >>>>>>>>>> +1 continue-on-failure with default value false >>>>>>>>>> >>>>>>>>>> Thanks & Regards >>>>>>>>>> -- >>>>>>>>>> Deepak Dixit >>>>>>>>>> www.hotwaxsystems.com >>>>>>>>>> www.hotwax.co >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> On Jul 10, 2017 3:48 AM, "Paul Foxworthy" <p...@cohsoft.com.au> >>>>>>>> >>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>> Hi all, >>>>>>>>>>> >>>>>>>>>>> I agree with option 3. I recall in my own work I once needed to >>>>>>>>>>> add >>>>>>>>>>> a >>>>>>>>>> >>>>>>>>>> throw >>>>>>>>>>> >>>>>>>>>>> where there was none to track down a problem. >>>>>>>>>>> >>>>>>>>>>> However ignore-failure leads to a double negative. How about >>>>>>>>>>> "stop-on-failure", default value true? >>>>>>>>>>> >>>>>>>>>>> Cheers >>>>>>>>>>> >>>>>>>>>>> Paul Foxworthy >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On 10 July 2017 at 05:27, Taher Alkhateeb >>>>>>>>>>> <slidingfilame...@gmail.com >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>>> Correction: on item (2) in my post: fail immediately, not after >>>>>>>>>>>> loading all files, otherwise there's no point. >>>>>>>>>>>> >>>>>>>>>>>> On Sun, Jul 9, 2017 at 10:18 PM, Taher Alkhateeb >>>>>>>>>>>> <slidingfilame...@gmail.com> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>> Hello Everyone, >>>>>>>>>>>>> >>>>>>>>>>>>> For a long time I was annoyed by something in OFBiz: the build >>>>>>>> >>>>>>>> system >>>>>>>>>>>>> >>>>>>>>>>>>> does not fail if data loading fails for some files. I spend >>>>>>>>>>>>> hours >>>>>>>>>>>>> hunting bugs only to discover that the data simply did not >>>>>>>>>>>>> load. >>>>>>>>>>>>> >>>>>>>>>>>>> Given that I'm working on refactoring the data loading >>>>>>>>>>>>> container, >>>>>>>> >>>>>>>> I >>>>>>>>>>>>> >>>>>>>>>>>>> believe this issue should resolved. However, I'm not sure if >>>>>>>>>>>>> the >>>>>>>>>>>>> community is interested in making such a change. >>>>>>>>>>>>> >>>>>>>>>>>>> So I list below 3 options to select from: >>>>>>>>>>>>> >>>>>>>>>>>>> 1- Leave it as is, do not fail the build if some files do not >>>>>>>>>>>>> load >>>>>>>>>>>>> 2- Continue loading until all files are done and then fail the >>>>>>>> >>>>>>>> build >>>>>>>>>>>>> >>>>>>>>>>>>> 3- Provide a flag e.g. ignore-failure that tells the system >>>>>>>> >>>>>>>> whether >>>>>>>>>> >>>>>>>>>> to >>>>>>>>>>>>> >>>>>>>>>>>>> fail or not with a default value of "false". >>>>>>>>>>>>> >>>>>>>>>>>>> My personal preference is for (3) >>>>>>>>>>>>> >>>>>>>>>>>>> WDYT? >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> Coherent Software Australia Pty Ltd >>>>>>>>>>> PO Box 2773 >>>>>>>>>>> Cheltenham Vic 3192 >>>>>>>>>>> Australia >>>>>>>>>>> >>>>>>>>>>> Phone: +61 3 9585 6788 >>>>>>>>>>> Web: http://www.coherentsoftware.com.au/ >>>>>>>>>>> Email: i...@coherentsoftware.com.au >>>>>>>>>>> >