Building Lucee to Fix Issue 120

238 views
Skip to first unread message

Jamie Jackson

unread,
Feb 26, 2015, 11:21:59 AM2/26/15
to lu...@googlegroups.com
Hi Folks,

I'm kinda desperate to get https://bitbucket.org/lucee/lucee/issue/120/npe-with-web-service-method fixed, so I'm looking into it myself. However, my Java Fu isn't what it once was (and it was never super great to begin with), so I've got issues, and I doubt I'll be able to fix my own ticket. I'm giving it a shot, though, so I have some questions:

Question 1: How do I get line numbers out of Lucee classes in stack traces?

at lucee.loader.servlet.CFMLServlet.service(Unknown Source)

I'm just hacking, but this is what I thought to change to get more useful information:

build-core.xml

    <javac srcdir="${srcLoader}" target="1.6" destdir="${temp}/loader" debug="true" ><!-- debuglevel="lines,vars,source" -->
      <classpath refid="classpath" />
    </javac>

My environment:

$ echo $JAVA_HOME
/cygdrive/c/Program Files/Java/jdk1.6.0_45

Then I built with "ant all", which yielded "BUILD SUCCESSFUL"

I then unzipped dist/bundles/lucee-4.5.1.007-jars.zip into /opt/railo/lib/ and restarted Lucee. However, I still have the "Unknown Source" issue in the stack traces, so I'm doing something wrong.

Question 2: Restarting Lucee is required, right? Also, is there a fancier way to develop Lucee? Some way that the changes go "live" to my server more automatically?

Thanks,
Jamie

P.S. I would not be offended if someone else tried to fix my ticket while I'm working on it, myself. ;-)




Igal @ Lucee.org

unread,
Feb 26, 2015, 12:00:54 PM2/26/15
to lu...@googlegroups.com
Jamie,

take the commented attribute <!-- debuglevel="lines,vars,source" --> and add it into the javac command.

see if that gives you the information you need.

not sure why it's commented in the first place, but we will fix that.

Igal Sapir
Lucee Core Developer
Lucee.org

--
You received this message because you are subscribed to the Google Groups "Lucee" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lucee+un...@googlegroups.com.
To post to this group, send email to lu...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/lucee/e79cbe3e-86aa-44a3-b21a-a35845ef9488%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Jamie Jackson

unread,
Feb 26, 2015, 12:00:55 PM2/26/15
to lu...@googlegroups.com
Okay, never mind about question #1; I neglected to see the other javac tasks in there, and I think this is the one that did it:

    <javac srcdir="${srcCore}" target="1.6" destdir="${temp}/core" debug="true">
      <classpath refid="classpath" />
    </javac>

I've got line numbers now :-D

By the way, this is one of the more confusing comments I've seen. ;-)

    <!-- copy all none java files to temp/core-->
    <copy todir="${temp}/core">
      <fileset dir="${srcCore}">
        <exclude name="**/*.java"/>
        <exclude name=".*"/>
      </fileset>
    </copy>

Question #2 still stands, BTW.

Igal @ Lucee.org

unread,
Feb 26, 2015, 12:14:38 PM2/26/15
to lu...@googlegroups.com
is there a fancier way to develop Lucee? Some way that the changes go "live" to my server more automatically?
there are many ways to automate tasks etc.  so your question is way too vague.  from the little I can understand from your question you should run the Lucee-Debug project in an IDE rather than build and deploy each change that you want to test.
issues like this are rather complicated and require understanding of the whole system rather than an isolated code snippet.  if you're desperate for a solution then consider asking Rasia for help.  they are the main code contributor to the project:
http://lucee.org/members/rasia.html


Igal Sapir
Lucee Core Developer
Lucee.org

--
You received this message because you are subscribed to the Google Groups "Lucee" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lucee+un...@googlegroups.com.
To post to this group, send email to lu...@googlegroups.com.

Jamie Jackson

unread,
Feb 26, 2015, 5:36:46 PM2/26/15
to lu...@googlegroups.com
I'll consider using a consultant, but it's hard to deal with the red tape that it involves (on my company's end). That will be my backup plan.

In the meantime, I started watching Mark's "Debugging Railo" video, and that basically answered my question about how to do "live" hacking of Lucee.  (Thanks a million, Mark!) BTW, is that information in writing somewhere?

I was able to do a little step debugging on my use case before I got called off in another direction. I'll resume tomorrow.

Thanks,
Jamie

Jamie Jackson

unread,
Feb 27, 2015, 1:45:18 PM2/27/15
to lu...@googlegroups.com
This is a bit OT, but I'm looking for a way (quick and dirty is fine) to see a debug level of DEBUG logged in Axis.

I tried setting a VM argument in the Debug Configuration of RunAsJavaApplication:
-Dlog4j.logger.org.apache.axis=DEBUG

If that did anything at all, it didn't affect the output in the Eclipse console.

Thanks,
Jamie

Jamie Jackson

unread,
Feb 28, 2015, 12:51:52 PM2/28/15
to lu...@googlegroups.com
Some progress: I at least figured out how to get more verbose logging out of Axis.

I added some my notes as to how to do that, as well as a tiny bit of output analysis, to my ticket: https://bitbucket.org/lucee/lucee/issue/120/npe-with-web-service-method

Chip Pinkston

unread,
Mar 1, 2015, 12:14:26 AM3/1/15
to lu...@googlegroups.com
Thanks for the update Jamie. I'm also interested in seeing this bug resolved.

Jared Rypka-Hauer

unread,
Mar 2, 2015, 11:16:18 AM3/2/15
to lu...@googlegroups.com
Igal,

I'm kind of disappointed in your response here... perhaps more on principle than anything, but I still feel I need to say something.

People complain constantly that nobody steps up to help with FOSS projects, yet here you have a perfect opportunity and you just blow the guy off.

I get that it's complicated stuff, but we are computer programmers... complicated systems is what we do. You basically said "It's beyond you, give up and pay someone else to do it." that someone being an outfit that Lucee has a relationship with.

Uncool.

If you want people to step up and pitch in, creating barriers to entry is not going to get you there. Helping, explaining, discussing... these things are why we are here in the first place. Even if it's hard. Even if it's long, involved and complicated. There are people with knowledge, there are books, Udemy courses, blog posts and dozens of other resources... sometimes all we need is a point or a nudge in the right direction, or a the name of a contact who can walk us thru some things. Or the suggestion to take it off the list and engage 1:1. It seems to me that someone who volunteered to tackle a big, complicated task is probably worth investing in.

In any case, I think the last thing we need is people in the community saying "I asked in the forums, but Igal blew me off and told me to pay their consulting partners because it was beyond my skills."

Just my $.02USD. ;)

Jared

Begin forwarded message:

Igal @ Lucee.org

unread,
Mar 2, 2015, 1:10:15 PM3/2/15
to lu...@googlegroups.com
Jared,

let me start with an apology of not being clearer in my previous email.  many times we don't have much time available, so the options are to (1) write an email quickly at the risk of not being 100% clear, or (2) not write the email at all.  when a user's tone, or text, expresses a sense of urgency -- I try to opt for the 1st option.

I did not suggest in any way that this (or any) issue is beyond anyone.  anything I can do -- someone else can do.  I have no super powers (though I've been bit by spiders many times) nor secret knowledge of the Lucee code (it's open source, right?).

the SOAP implementation in Lucee/Railo is very old, and uses the Axis1 project which was abandoned many years ago.  over the years SOAP has become obsolete, and has been mostly replaced by REST.  it therefore affects few users who have legacy code, but usually does not affect new projects, thus making it a low priority on the Lucee issues list.  if you were to start a new project today that requires web services, would you use SOAP or REST?

but when Jamie marked issue 120 as "blocker", and wrote in the post that he is "desperate to get [it] fixed" I decided to take a look.

I've been working on the Railo/Lucee core for years now, but there are a few aspects of the project that I generally never dug deep into.  SOAP is one of those, for the reasons mentioned above.  so I asked Micha for his opinion, and he told me that it can take him easily a full day of work just to figure out what's going wrong there.  then of course additional time needs to be spent on fixing it.

there's a very good chance that if something takes Micha m hours to fix in Lucee, it would take me (m + i) hours.  to someone unfamiliar with the Lucee core it could take (m + i + x) hours, and if that person is not proficient in Java, IDE setup, debugging, etc. then it would take even more time.

nevertheless, I did not say that the issue is beyond the OP to resolve on his own.  my statement "issues like this are rather complicated and require understanding of the whole system rather than an isolated code snippet" was pointing at myself (and possibly Micha), saying that I can not fix this issue by simply looking at the isolated snippet that Jamie posted, and requiring a deeper understanding of his system.

now, to say that I "blew him off" -- that's just wrong, man -- the only reason we're having this conversation is that I didn't want to ignore his request for help, and I offered the best help that I could given my time constraints etc. 

if he has the time to figure it out and patch it, I strongly encourage that (that's how I started with the project) -- I pointed him in the direction of debugging the project in an IDE.  but if this issue is a "blocker" for him, and he is "desperate" for a solution, then pointing him to Rasia is also part of my help.  if someone has a problem and I refer them to an expert who can help, then in my book that is help.

sincerely,


Igal Sapir
Lucee Core Developer
Lucee.org

--
You received this message because you are subscribed to the Google Groups "Lucee" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lucee+un...@googlegroups.com.
To post to this group, send email to lu...@googlegroups.com.

Nando Breiter

unread,
Mar 2, 2015, 1:31:11 PM3/2/15
to lu...@googlegroups.com
Igal's response seems perfectly appropriate to me. If the OP knew what he was doing, the response did not dissuade him from contributing a patch. Igal gave him some guidance on how he might better do that by running the Lucee-Debug project in an IDE. And if that wasn't helpful enough and it remained urgent, he suggested contacting Rasia, as they know the codebase best. 

There is nothing at all uncool in contacting Gert/Rasia and asking for help. Maybe Gert would have a simple solution and propose something for free. Or maybe he wouldn't and he'd propose a solution that the OP would be happy to pay for. Don't put pressure on these guys that everything they offer should be free. That's completely unrealistic, and one of the reasons I'm a corporate supporter of the Lucee project. I find it amazing that this small team of Gert, Micha, Igal (who am I missing?) has been able to financially pull this off so far. We should be grateful for that, period. It might be free for us, but it has not been free to develop Railo/Lucee to this point. 

To me, suggesting that Igal missed an opportunity to mentor someone without taking it up yourself is "uncool", especially under the banner of Ideal FOSS. I also think it is really uncool to be suggesting that this small team should carry the entire financial burden of developing and maintaining Lucee. 

So, taking Jared's post as an inspiration, if you've been thinking of offering financial support to Lucee but haven't done so yet, I can wholeheartedly recommend it. It's good karma: http://lucee.org/supporters.html






Aria Media Sagl
Via Rompada 40
6987 Caslano
Switzerland

+41 (0)91 600 9601
+41 (0)76 303 4477 cell
skype: ariamedia

--
You received this message because you are subscribed to the Google Groups "Lucee" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lucee+un...@googlegroups.com.
To post to this group, send email to lu...@googlegroups.com.

Jared Rypka-Hauer

unread,
Mar 2, 2015, 1:41:37 PM3/2/15
to lu...@googlegroups.com
Igal,

Thanks for the response. I appreciate your explanation. Perception being what it is and text communication and culture/language and blah blah blah... I perhaps mistook your note for something other than what it was.

I know that there are many things to do in a day... your email just seemed dismissive. I understand where you were coming from now. :)

This is why I was disappointed and a bit puzzled. You're normally not that way... which is a Very Good Thing. :)

On Mon, Mar 2, 2015 at 11:09 AM, Igal @ Lucee.org <ig...@lucee.org> wrote:

Jared,

let me start with an apology of not being clearer in my previous email.  many times we don't have much time available, so the options are to (1) write an email quickly at the risk of not being 100% clear, or (2) not write the email at all.  when a user's tone, or text, expresses a sense of urgency -- I try to opt for the 1st option.
...

Sean Corfield

unread,
Mar 2, 2015, 1:45:12 PM3/2/15
to lu...@googlegroups.com
I think this is one of those unfortunate situations where email doesn’t convey tone. I must admit that my first reading of Igal’s response — colored by some of my past interactions with him (sorry) — was very much the same as Jared’s reading. Igal’s follow-up makes it clear that wasn’t intended and I’m happy to accept he didn’t mean to sound dismissive or abrupt. I think we all fall foul of that in email at times.

Certainly there are parts of Lucee’s source code — as with any large FOSS project — that are hella complex and I’ve seen patches that look trivial on the surface cause all sorts of weird bugs to crop up in a number of FOSS projects I’m involved with so I certainly understand Igal’s cautionary tone there.

Having the full test suite be easy to run really helps here, along with ensuring that if you plan to work on any bug or feature, you start out by writing one or more new tests to highlight the particular issue you are trying to address.

As Igal notes, there are a lot of inherent barriers already for any CFML dev intending to contribute to the source code — but it’s also a great learning opportunity and one of the reasons why FOSS projects are a good thing to get involved with!

Sean

Jared Rypka-Hauer

unread,
Mar 2, 2015, 1:58:04 PM3/2/15
to lu...@googlegroups.com
Nando,

Thanks for chiming in. I'm glad you didn't get the same sense... but I am still glad I said something as well.

My whole point was that here we had someone willing to step up and tackle something so monumental that it would take Micha days just to diagnose, and getting what looked like the brush-off. The team should NOT bear the entire burden of maintaining the codebase... but taking a few minutes to even an hour to mentor someone into being able to work on the platform is just a solid investment into the future. That was my whole point.

Anyway, Sean, glad to know I wasn't the only one, and I'm glad the whole situation worked out for the best. I've been intending to grab the codebase and compile it for myself as well, so maybe I'll have a chance to work on some Lucee bugs in the future. :)

On Mon, Mar 2, 2015 at 11:45 AM, Sean Corfield <se...@corfield.org> wrote:
I think this is one of those unfortunate situations where email doesn’t convey tone. I must admit that my first reading of Igal’s response — colored by some of my past interactions with him (sorry) — was very much the same as Jared’s reading. Igal’s follow-up makes it clear that wasn’t intended and I’m happy to accept he didn’t mean to sound dismissive or abrupt. I think we all fall foul of that in email at times.
...

Alex Skinner

unread,
Mar 2, 2015, 2:25:24 PM3/2/15
to lu...@googlegroups.com

Hi,

I think Igal explained it very well but I think the element of the original posting email that made it appropriate to recommend a commercial partner to solve the problem is this 

If there is a commercial imperative to solve the problem quickly and someone is "Desperate" this is outside the best endeavours basis that the community is working to.

Given the support model has now changed between Railo and Lucee it is likely more members will chime in and suggest that for urgent issues commercially they can help out.

I think we need to make sure this doesn't of course become the default position but try to be tolerant too that we all benefit in a way.

As Igal says the axis 1 stuff Is a complete minefield we took a look at cfjarsoap which is Denny's project but in the end settled on running up a small instance of openbd on another port to act as a proxy as this also uses axis 2 we call that from lucee, job done.

So clearly this is an unusual solution and I wouldn't be recommending openbd on a general basis but as a light weight service to solve the issue it's relatively low risk and nicer than sticking with ACF.

Cheers

Alex

--
You received this message because you are subscribed to the Google Groups "Lucee" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lucee+un...@googlegroups.com.
To post to this group, send email to lu...@googlegroups.com.

Kai Koenig

unread,
Mar 2, 2015, 2:29:56 PM3/2/15
to lu...@googlegroups.com

As Igal says the axis 1 stuff Is a complete minefield we took a look at cfjarsoap which is Denny's project but in the end settled on running up a small instance of openbd on another port to act as a proxy as this also uses axis 2 we call that from lucee, job done.

So clearly this is an unusual solution and I wouldn't be recommending openbd on a general basis but as a light weight service to solve the issue it's relatively low risk and nicer than sticking with ACF.


You don’t even have to use another full-blown app server engine to do that. In the past I’ve used a small standalone Java proxy app wrapping Axis 2 and certain extension libraries for WS specifications for that.

Cheers
Kai

Adam Cameron

unread,
Mar 2, 2015, 4:09:30 PM3/2/15
to lu...@googlegroups.com


On Tuesday, 3 March 2015 05:16:18 UTC+13, Jared Rypka-Hauer wrote:
Igal,

I'm kind of disappointed in your response here... perhaps more on principle than anything, but I still feel I need to say something.


Personally: Igal's tone and wording is fine, and no-one's got anything to answer for here.

The only thing I wonder about... Igal, you work for Raisa don't you? If you, I think you possibly should have mentioned that when you recommended them as a paid-for solution.

-- 
Adam

Igal @ Lucee.org

unread,
Mar 2, 2015, 5:44:30 PM3/2/15
to lu...@googlegroups.com
I do not.
--
You received this message because you are subscribed to the Google Groups "Lucee" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lucee+un...@googlegroups.com.
To post to this group, send email to lu...@googlegroups.com.

Jamie Jackson

unread,
Mar 3, 2015, 10:06:38 AM3/3/15
to lu...@googlegroups.com
I'm glad this conversation was started (thanks Jared), and where it went.

For what it's worth, I wasn't offended by Igal's response, and also figured that it was quickly written. (Even a terse response from a FOSS project contributor is appreciated.) I also read it and thought, "okay, challenge accepted, Mr. 'It's too Complicated-Pants.'" ;-)

However, two nuggets would have been helpful to know (in the response, or better yet, in the ticket):
  • That Marks video exists (Igal mentioning "Lucee-Debug" led me to find the video.), which shows how to run a "live" copy of the Lucee source. (I'm still curious to know if that info lives in print somewhere, as that would remove a big barrier to contribution for new users.) I haven't watched the video all the way to the end yet (I got what I needed out of the first half), but if the procedure of writing and running unit tests (as part of resolving a ticket) isn't documented anywhere, then publishing that information would also be a good thing.
  • That Micha already triaged the ticket and found that it would take him a day to untangle the SOAP nonsense. (That would have been a perfectly acceptable ticket comment. It basically tells me "give up hope of having a regular Lucee contributor fixing this ticket," which gives me a some closure.)
Thanks,
Jamie

--
You received this message because you are subscribed to the Google Groups "Lucee" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lucee+un...@googlegroups.com.
To post to this group, send email to lu...@googlegroups.com.

Michael Offner

unread,
Mar 3, 2015, 10:39:31 AM3/3/15
to lu...@googlegroups.com
Hi Jamie

If you got the debug project running for you, you would be the perfect candidate to make a entry about this in the wiki ;-)

The testcases are regular testbox testcases, but you can also find the documentation to execute them directly with the source here:
Also here any entry in the wiki is welcome ...

A day of course is a very vague estimate then it is not based on the actual issue, it is more based on past experience, fixes in orm,soap/wsdl or bytecode are never easy. So the reason that I did not give that number is because it is to vague, of course I could say "he this fix will not be easy, best give up", but would that be more helpful?

Micha



Igal @ Lucee.org

unread,
Mar 3, 2015, 11:06:29 AM3/3/15
to lu...@googlegroups.com
I also read it and thought, "okay, challenge accepted, Mr. 'It's too Complicated-Pants.'" ;-)
LOL!  I really wasn't trying to challenge you, but given the fact that my statement was misunderstood anyway -- I'm glad that you took it with that attitude...  that's the spirit!


Igal Sapir
Lucee Core Developer
Lucee.org

Jamie Jackson

unread,
Mar 3, 2015, 12:53:06 PM3/3/15
to lu...@googlegroups.com
On Tue, Mar 3, 2015 at 10:39 AM, Michael Offner <mic...@lucee.org> wrote:
Hi Jamie

If you got the debug project running for you, you would be the perfect candidate to make a entry about this in the wiki ;-)

Yup, that's one of the reasons I asked. I'll write it up once I figure out a workaround for my issue.
 
The testcases are regular testbox testcases, but you can also find the documentation to execute them directly with the source here:

Great, thanks.
 
Also here any entry in the wiki is welcome ... 

Understood.
 
A day of course is a very vague estimate then it is not based on the actual issue, it is more based on past experience, fixes in orm,soap/wsdl or bytecode are never easy. So the reason that I did not give that number is because it is to vague

Vague isn't necessarily bad--it can help to set rough expectations.
 
of course I could say "he this fix will not be easy, best give up", but would that be more helpful?

Of course not. :-P However, mentioning how much of a PITA it will probably be helps the reader come to the same conclusion. (I've just about reached that conclusion, myself.)
 
Reply all
Reply to author
Forward
0 new messages