Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

[00:46:16 EDT(-0400)] * EiNZTEiN (n=einztein@dsl-162.isunet.net) has joined ##uportal
[03:23:43 EDT(-0400)] * EiNZTEiN (n=einztein@dsl-162.isunet.net) has joined ##uportal
[08:21:37 EDT(-0400)] * dstn (n=dstn@unaffiliated/dstn) has joined ##uportal
[09:02:26 EDT(-0400)] * esm (n=esm@128.220.212.115) has joined ##uportal
[09:18:25 EDT(-0400)] * athena7 (n=athena7@c-24-2-189-230.hsd1.mn.comcast.net) has joined ##uportal
[09:27:30 EDT(-0400)] * EricDalquist (n=EricDalq@adsl-76-208-71-170.dsl.mdsnwi.sbcglobal.net) has joined ##uportal
[09:27:41 EDT(-0400)] * anastasiac (n=team@142.150.154.105) has joined ##uportal
[09:27:54 EDT(-0400)] <athena7> good morning
[09:28:02 EDT(-0400)] <EricDalquist> hello
[09:28:25 EDT(-0400)] <athena7> the east coast happens too early in the morning
[09:28:42 EDT(-0400)] <EricDalquist> lol
[09:38:27 EDT(-0400)] <dstn> morning!
[09:38:54 EDT(-0400)] <EricDalquist> almost done with a database backed stats recorder
[09:39:20 EDT(-0400)] <athena7> oh nice!!
[09:39:26 EDT(-0400)] <athena7> that sounds great
[09:39:29 EDT(-0400)] <dstn> sweetness
[09:39:44 EDT(-0400)] <EricDalquist> yeah, I still need to figure out how to have another hibernate context so it can go to its own database
[09:40:23 EDT(-0400)] <EricDalquist> as we learned running pretty much the same code here you end up with A LOT of data
[09:40:38 EDT(-0400)] <athena7> ah
[09:40:53 EDT(-0400)] <EricDalquist> unfortunatly we still don't have any reporting tools for the data ... hopefully someone else that wants DB based stats logging can work that out (smile)
[10:13:28 EDT(-0400)] <dstn> anyone know if its possible to save your open tabs explicitly when closing firefox ... sort of like when it crashes and you can restore the session?
[10:13:39 EDT(-0400)] <EricDalquist> no
[10:13:45 EDT(-0400)] <EricDalquist> I wish there was though
[10:13:48 EDT(-0400)] <dstn> likewise
[10:13:53 EDT(-0400)] <EricDalquist> what I've done if I really care is kill -9 it
[10:13:55 EDT(-0400)] <athena7> i think there's a tabs plugin that might do some session handling?
[10:14:04 EDT(-0400)] <athena7> someone was talking about it the other day
[10:15:02 EDT(-0400)] <athena7> ok it's built-in
[10:15:05 EDT(-0400)] <athena7> go to main preferences
[10:15:11 EDT(-0400)] <athena7> and look at "when firefox starts"
[10:15:23 EDT(-0400)] <athena7> there's an option to show windows and tabs from the last session
[10:15:28 EDT(-0400)] <EricDalquist> ah
[10:15:30 EDT(-0400)] <EricDalquist> neat
[10:15:30 EDT(-0400)] <esm> yep
[10:15:34 EDT(-0400)] <esm> pretty nice
[10:16:03 EDT(-0400)] <athena7> anyone ever test the guest preferenes patch?
[10:16:19 EDT(-0400)] <EricDalquist> going to today
[10:16:53 EDT(-0400)] <dstn> just changed it that preferences, works nicely
[10:17:00 EDT(-0400)] <dstn> me happy (smile)
[10:19:14 EDT(-0400)] <athena7> changed it that preferences?
[10:20:10 EDT(-0400)] <dstn> whoa, ya, just read that..too much coffee
[10:20:16 EDT(-0400)] <athena7> lol
[10:20:24 EDT(-0400)] <athena7> i thought maybe i'd had not enough
[10:20:30 EDT(-0400)] <athena7> coffee requires moving, though . . .
[10:20:46 EDT(-0400)] <dstn> I meant to say I just changed that in preferences and it works nicely
[10:21:01 EDT(-0400)] <dstn> the firefox preferences
[10:22:52 EDT(-0400)] <athena7> oh cool
[10:23:46 EDT(-0400)] <EricDalquist> hey esm
[10:23:49 EDT(-0400)] <EricDalquist> I'm looking @ https://issues.apache.org/jira/browse/PLUTO-487
[10:24:02 EDT(-0400)] <EricDalquist> I'm trying to figure out exactly why the preferences impl needs to call store every time it is created
[10:24:34 EDT(-0400)] <esm> I am not sure. I'm not very familiar with the preference code.
[10:24:38 EDT(-0400)] <esm> Does it really need to?
[10:24:59 EDT(-0400)] <EricDalquist> so PLT.14.1 says this in the last paragraph:
[10:25:00 EDT(-0400)] <EricDalquist> The PortletPreferences object must reflect the current values of the persistent store
[10:25:00 EDT(-0400)] <EricDalquist> when the portlet container invokes the processAction and render methods of the
[10:25:00 EDT(-0400)] <EricDalquist> portlet
[10:25:36 EDT(-0400)] <EricDalquist> but I read that more as 'the container must always ensure the 'newest' prefs are loaded'
[10:27:29 EDT(-0400)] * esm opens up the code
[10:28:26 EDT(-0400)] <esm> what's the disticition between "newest prefs loaded" versus "current values of the persistent store"
[10:28:54 EDT(-0400)] <EricDalquist> sorry, just my miswording
[10:29:56 EDT(-0400)] <EricDalquist> I'm only seeing wording that the container must ensure the preferences are not stale (newer prefs exist in the store)
[10:30:29 EDT(-0400)] <esm> ok yes I agree with that interpretation
[10:30:46 EDT(-0400)] <EricDalquist> and as far as I can tell the impl without the store there would do that
[10:31:14 EDT(-0400)] <EricDalquist> all the store in the constructor does is give the container a chance to persist the preferences from portlet.xml into its local store if it wants/needs to
[10:31:21 EDT(-0400)] * MarkRogers (n=MarkRoge@addhcp129.cc.umanitoba.ca) has joined ##uportal
[10:31:34 EDT(-0400)] <EricDalquist> but the container (or portal) could do this anyways since that information is available from the PortletDD
[10:31:50 EDT(-0400)] <EricDalquist> I'll write this all up in an email to pluto dev too ...
[10:33:58 EDT(-0400)] <esm> right the only thing I see is that if there is a default preference that is not in the persistent store, internalStore() would store it.
[10:34:14 EDT(-0400)] <EricDalquist> yup
[10:34:19 EDT(-0400)] <esm> I'm not sure where the defaultPreferences come from - they come from portlet.xml
[10:34:21 EDT(-0400)] <EricDalquist> but since the constructor loads the default prefs every time
[10:34:27 EDT(-0400)] <EricDalquist> yeah portlet.xml
[10:34:37 EDT(-0400)] <esm> (its been a while(smile)
[10:34:43 EDT(-0400)] <EricDalquist> yeah
[10:36:36 EDT(-0400)] <esm> yeah, i'm not sure why it needs to call internalStore()
[10:37:19 EDT(-0400)] <EricDalquist> you know I just realized I was wondering a while ago why uP3 seemed to be storing prefs a lot
[10:37:27 EDT(-0400)] <esm> internalStore() does validate.
[10:37:56 EDT(-0400)] <esm> which I understand all of this as we are interpreting 14.1 isn't required
[10:38:05 EDT(-0400)] <esm> i'm just going over in my mind what behaviors change
[10:38:26 EDT(-0400)] <EricDalquist> except if you look at the call in the constructor
[10:38:35 EDT(-0400)] <EricDalquist> the validation exception is just logged and ignored
[10:38:54 EDT(-0400)] <esm> oh of course good catch
[10:38:59 EDT(-0400)] <esm> so yah.
[10:39:07 EDT(-0400)] <esm> i can't see why it needs to be there.
[10:42:05 EDT(-0400)] <esm> the only thing I can think of is if default preferences are supplied from a different persistent store (it gets initted from the portlet entity) than the preferencesService stores them to
[10:42:24 EDT(-0400)] <EricDalquist> yeah
[10:42:38 EDT(-0400)] <EricDalquist> but the portal can still hook into that if it needs to
[10:42:45 EDT(-0400)] <esm> right, no i agree
[10:42:57 EDT(-0400)] <EricDalquist> it is unfortunate that it would be a behavior change
[10:43:02 EDT(-0400)] <esm> yes
[10:43:09 EDT(-0400)] * EiNZTEiN (n=einztein@66.80.140.4) has joined ##uportal
[10:43:10 EDT(-0400)] <EricDalquist> but I think the current behavior likely is very close to a noop
[10:43:20 EDT(-0400)] <esm> also agree
[10:43:34 EDT(-0400)] <esm> anyone who is relying on this behavior probably knows enough to fix it
[10:43:41 EDT(-0400)] <esm> or maybe not
[10:43:41 EDT(-0400)] <EricDalquist> an expensive noop at that
[10:43:46 EDT(-0400)] <esm> yes
[10:43:55 EDT(-0400)] <EricDalquist> or maybe not?
[10:44:37 EDT(-0400)] <esm> well i mean the person who relys on that behavior probably doesn't know that they are relying on an implementation detail.
[10:44:46 EDT(-0400)] <esm> but I don't think that should prevent us from taking it out
[10:44:53 EDT(-0400)] <esm> s/us/you/
[10:45:27 EDT(-0400)] <EricDalquist> yeah
[10:45:35 EDT(-0400)] <esm> if anyone complains on the list after 1.1.6 (or whatever is released next) about this behavior change... it can be dealt with then
[10:46:25 EDT(-0400)] <esm> and if the behavior change is noted in the jira issue or whatever i don't see it as a problem
[10:46:45 EDT(-0400)] <EricDalquist> cool
[10:47:00 EDT(-0400)] <EricDalquist> I'll have to see what the original reporter says
[10:47:24 EDT(-0400)] <esm> excellent yeah a few reports have come in recently
[10:47:27 EDT(-0400)] <esm> so that is good i guess
[10:47:36 EDT(-0400)] <esm> people are using teh software (smile)
[10:47:58 EDT(-0400)] <EricDalquist> always a good sign
[10:50:13 EDT(-0400)] <MarkRogers> what's a noop?
[10:50:54 EDT(-0400)] <EricDalquist> no operation
[10:51:04 EDT(-0400)] <MarkRogers> thanks
[10:51:18 EDT(-0400)] <EricDalquist> noop is generally an instruction in assembly operations
[10:51:26 EDT(-0400)] <EricDalquist> telling the CPU to just 'do nothing for a cycle'
[10:51:27 EDT(-0400)] * holdorph (n=holdorph@wsip-98-174-242-39.ph.ph.cox.net) has joined ##uportal
[10:51:43 EDT(-0400)] <EricDalquist> if I remember that class correctly (smile)
[10:52:06 EDT(-0400)] <EricDalquist> yay wikipedia: http://en.wikipedia.org/wiki/NOP
[10:53:18 EDT(-0400)] <esm> the noop slide is an older school hacking technique
[10:53:51 EDT(-0400)] <EricDalquist> sticking instructions in the code where noops were?
[10:55:45 EDT(-0400)] <esm> better than i can explain: http://www.phreedom.org/solar/honeynet/scan20/scan20.html
[10:56:02 EDT(-0400)] <MarkRogers> geez, it's harder to do nothing than I thought ... I need to show this to my wife right away!
[10:56:10 EDT(-0400)] <EricDalquist> lol
[10:56:15 EDT(-0400)] <esm> lol very funny
[10:56:15 EDT(-0400)] <dstn> its used a lot in exploit writing ... you nop slide to some exploit code
[10:56:37 EDT(-0400)] <esm> right
[10:56:53 EDT(-0400)] <EricDalquist> ah yeah, padd before the exploit code with noops
[10:56:58 EDT(-0400)] <esm> as long as the return point is somewhere in the nop slide
[10:57:04 EDT(-0400)] <dstn> yep yep
[10:57:06 EDT(-0400)] <esm> it "slides" to teh execution of the shell code
[10:57:29 EDT(-0400)] <dstn> ya since its hard to tell where it will jump too everytime
[10:57:33 EDT(-0400)] <esm> yup
[10:57:58 EDT(-0400)] <EricDalquist> yay buffer exploits
[10:58:22 EDT(-0400)] <EricDalquist> one of the many reasons I like type-safe vm based languages
[10:58:44 EDT(-0400)] <esm> if you ever want an ass-kicking in networking and intrusion detection, take the SANS IDS course - if they haven't watered it down.
[10:58:59 EDT(-0400)] <EricDalquist> heh, not really my forte
[10:59:09 EDT(-0400)] <esm> tcpdump is one of the most awesome programs around (smile)
[10:59:17 EDT(-0400)] <esm> right so that's why you go (smile)
[10:59:34 EDT(-0400)] <dstn> SANs is awesome
[10:59:57 EDT(-0400)] <dstn> unfortunately extremely $$ though
[11:00:12 EDT(-0400)] <esm> yup
[11:00:20 EDT(-0400)] <esm> i went in 02 and 03 IIRC
[11:00:29 EDT(-0400)] <esm> but those things get watered down when they get popular
[11:00:46 EDT(-0400)] <dstn> I hope I can go to some SANs training in my lifetime
[11:00:51 EDT(-0400)] <esm> people who have no clue take the courses to get certified, and when they pay big money and don't pass organizations get pissy
[11:01:00 EDT(-0400)] <dstn> lol I bet
[11:01:08 EDT(-0400)] <dstn> I want to get CISSP
[11:01:35 EDT(-0400)] <esm> to get certified you used to have to do exams plus a paper. The bar for the papers has been watered down.
[11:01:49 EDT(-0400)] <esm> yes if you can ever go, take the IDS track.
[11:02:26 EDT(-0400)] <esm> two days of TCP/IP ass-kicking then they start the course (smile)
[11:23:07 EDT(-0400)] <dstn> ...waits for poor fisheye
[11:23:17 EDT(-0400)] <EricDalquist> :/
[11:23:20 EDT(-0400)] <dstn> it seems worse than usual as of late
[11:23:32 EDT(-0400)] <athena7> one of these days i'm going to draw a caricature of fisheye
[11:24:02 EDT(-0400)] <dstn> haha, that'd be great
[11:26:40 EDT(-0400)] * michelled (n=team@142.150.154.197) has joined ##uportal
[11:32:50 EDT(-0400)] <EricDalquist> http://www.ja-sig.org/wiki/display/UPM30/03+Eclipse+Build+Environment
[11:33:04 EDT(-0400)] <EricDalquist> how does that look for a 'developing uportal from eclipse' page
[11:35:07 EDT(-0400)] <athena7> looks good to me
[11:35:36 EDT(-0400)] <esm> excellent
[11:41:56 EDT(-0400)] <dstn> subclipse may be useful to add to that mix
[11:42:24 EDT(-0400)] <EricDalquist> yes
[11:42:27 EDT(-0400)] <EricDalquist> feel free to add it (smile)
[11:43:43 EDT(-0400)] <dstn> k k
[12:00:55 EDT(-0400)] <MarkRogers> and what about maintaining the source from within Eclipse (using Subclipse)?
[12:01:16 EDT(-0400)] <MarkRogers> or would that not be something you would do from within Eclipse?
[12:01:30 EDT(-0400)] <EricDalquist> you can do that via eclipse/subclipse
[12:01:38 EDT(-0400)] <EricDalquist> it depends on how you got uPortal though
[12:01:55 EDT(-0400)] <EricDalquist> if you just download the source from the website or get the normal quickstart there is no SVN meta-data included
[12:02:05 EDT(-0400)] <EricDalquist> so you can't do anything against the repository
[12:02:27 EDT(-0400)] <EricDalquist> if you check out from SVN or get the developer quickstart you can do with it what you could with any other SVN project
[12:05:30 EDT(-0400)] <MarkRogers> excellent
[12:06:41 EDT(-0400)] <MarkRogers> so I think a section describing what you just said would be great, especially for people in the exploratory stage who need a kickstart
[12:14:23 EDT(-0400)] <MarkRogers> myEclipse is just Eclipse bundled with a bunch of plugins and commercially distributed, right?
[12:20:57 EDT(-0400)] <holdorph> some of the stuff you can't get yourself though
[12:21:04 EDT(-0400)] <holdorph> like the uml tools
[12:23:04 EDT(-0400)] <MarkRogers> if it already has everything in Eric's page http://www.ja-sig.org/wiki/display/UPM30/03+Eclipse+Build+Environment then we could mention that on the page
[12:26:35 EDT(-0400)] <holdorph> I've never used it, because it costs money and I'm too cheap to pay for it. so I don't know for certain what it has or doesn't
[12:27:00 EDT(-0400)] <EricDalquist> +1 from me for that
[12:27:12 EDT(-0400)] <EricDalquist> eclipse + 4 plugins is easy enough
[12:27:16 EDT(-0400)] <holdorph> EasyEclipse used to be good, but they never really got updated with last years Europa release. So, now i've just moved to use the JEE eclipse distribution.
[12:27:46 EDT(-0400)] <MarkRogers> I'll send you some mason jars (smile)
[12:27:54 EDT(-0400)] <holdorph> +couple plugins, of course. (Spring IDE and maven one)
[12:29:03 EDT(-0400)] <MarkRogers> maybe it was EasyEclipse that I was thinking of
[12:30:38 EDT(-0400)] <holdorph> EasyEclipse WAS really nice, not any more though.
[12:43:31 EDT(-0400)] <EricDalquist> hey athena7 did we ever figure out: http://www.ja-sig.org/issues/browse/UP-2019 ?
[12:43:52 EDT(-0400)] <athena7> no
[12:44:10 EDT(-0400)] <athena7> still a huge pita
[12:47:57 EDT(-0400)] <EricDalquist> (sad)
[13:01:41 EDT(-0400)] * colinclark (n=colin@142.150.154.101) has joined ##uportal
[13:34:24 EDT(-0400)] <esm> download IDEA (smile)
[13:49:43 EDT(-0400)] <EricDalquist> does anyone here think the .tar.bz2 packaging format is worth continuing with?
[13:50:39 EDT(-0400)] <esm> i was always confused why someone came up with another compression algorithim
[13:50:51 EDT(-0400)] <holdorph> been a while since I looked at what packages we have. what are our options
[13:50:57 EDT(-0400)] <esm> i suppose it may be .02% or whatever more effectictive
[13:51:00 EDT(-0400)] <esm> but why
[13:51:02 EDT(-0400)] <esm> really
[13:51:04 EDT(-0400)] <holdorph> it's more then that
[13:51:07 EDT(-0400)] <EricDalquist> well for 3.0 I did .zip .tar.gz and .tar.bz2
[13:51:15 EDT(-0400)] <EricDalquist> those are the easiest to do in ant
[13:51:25 EDT(-0400)] <EricDalquist> bz2 is about 80% of the size of gz
[13:51:32 EDT(-0400)] <esm> EricDalquist: can you make a .rar please (smile)
[13:51:33 EDT(-0400)] <EricDalquist> but fewer people know how to extract it
[13:51:44 EDT(-0400)] <EricDalquist> esm: I wish ... if only it was free
[13:51:52 EDT(-0400)] <EricDalquist> since thats like 50% of gz and actually fast
[13:51:57 EDT(-0400)] <EricDalquist> bz2 is horribly slow
[13:52:08 EDT(-0400)] <esm> and for the majority if users will cost them an extra 30 seconds downloading the gzip vs the tar
[13:52:20 EDT(-0400)] <EricDalquist> yeah
[13:52:24 EDT(-0400)] <esm> open solitare (smile)
[13:52:42 EDT(-0400)] <esm> i'd like a .pax too (smile)
[13:53:03 EDT(-0400)] <esm> question
[13:53:08 EDT(-0400)] <EricDalquist> (tongue)
[13:53:17 EDT(-0400)] * EricDalquist thinks esm is being punchy today (wink)
[13:53:30 EDT(-0400)] <esm> is it "bad" for something (a library) to create threadlocals and not remove them
[13:53:42 EDT(-0400)] <esm> i mean, my instinct says it is sloppy
[13:53:44 EDT(-0400)] <esm> but is it bad
[13:53:47 EDT(-0400)] <EricDalquist> well ... yeah it is sloppy
[13:53:52 EDT(-0400)] <EricDalquist> in theory it could be a memory leak
[13:54:09 EDT(-0400)] <esm> right, that is where i've come across it
[13:54:13 EDT(-0400)] <EricDalquist> ThreadLocal's generally should be singletons/static/or restricted in #s
[13:54:30 EDT(-0400)] <EricDalquist> especially since before 1.5 there was no way to clean them up
[13:54:50 EDT(-0400)] <esm> apparently CGLIB creates them and doesn't ever reomve them
[13:55:13 EDT(-0400)] <EricDalquist> does it create a lot of them?
[13:56:15 EDT(-0400)] <esm> I don't know (i'm debating Spring with someone, and they say "No" to Spring because it will require CGLIB, and CGLIB is BAD!)
[13:56:23 EDT(-0400)] <esm> the throw the baby out with the bathwater ...
[13:56:28 EDT(-0400)] <esm> i hate those ...
[13:56:53 EDT(-0400)] <esm> each instance of CGLib's AbstractClassGenerator creates a ThreadLocal reference
[13:57:16 EDT(-0400)] <EricDalquist> A new ThreadLocal instance? Or a reference to a shared one?
[13:57:41 EDT(-0400)] <esm> its shared (static)
[13:57:59 EDT(-0400)] <EricDalquist> thats not a leak then
[13:58:07 EDT(-0400)] <esm> no
[13:58:13 EDT(-0400)] <EricDalquist> it is only an issue for each time you call new ThreadLocal();
[13:58:16 EDT(-0400)] <esm> (i mean i agree)
[13:58:28 EDT(-0400)] <EricDalquist> and don't correspondingly call remove()
[13:58:47 EDT(-0400)] <EricDalquist> with the catch that there was no remove() in pre 1.5
[13:58:50 EDT(-0400)] <esm> right
[13:59:02 EDT(-0400)] <esm> so i'm looking at cglib trunk. maybe they don't allow 1.5 in it.
[13:59:06 EDT(-0400)] <esm> but they never call remove
[13:59:11 EDT(-0400)] <esm> maybe its delegated to the impl
[13:59:11 EDT(-0400)] <EricDalquist> I just looked at AbstractClassGenerator
[13:59:14 EDT(-0400)] <EricDalquist> looks good
[13:59:34 EDT(-0400)] <esm> right but it isn't ever rremoved
[13:59:37 EDT(-0400)] <EricDalquist> yeah
[13:59:40 EDT(-0400)] <EricDalquist> thats fine
[14:00:00 EDT(-0400)] <esm> this individual that i'm discussion with - his point is that the ACG is exposed across HTTP requests
[14:00:03 EDT(-0400)] <EricDalquist> I suppose it could leak each time the classloader that owns that static field is reloaded
[14:00:26 EDT(-0400)] <EricDalquist> but that could only be fixed with a finalizer
[14:00:38 EDT(-0400)] <holdorph> it's not like you're forced to use CGLIB just because you use spring
[14:00:46 EDT(-0400)] <EricDalquist> ACG?
[14:00:55 EDT(-0400)] <esm> abstract class generator
[14:00:57 EDT(-0400)] <holdorph> hell you can point blank make sure the cglib jar isn't even in your distribution
[14:01:06 EDT(-0400)] <EricDalquist> ah
[14:01:06 EDT(-0400)] <esm> i get tired of typing
[14:01:07 EDT(-0400)] <EricDalquist> yeah
[14:01:10 EDT(-0400)] <esm> but anyway
[14:01:27 EDT(-0400)] <EricDalquist> the only way that class could leak obects because of the ThreadLocal is the classloader getting tossed and reloaded
[14:01:29 EDT(-0400)] <EricDalquist> like a webapp reload
[14:01:36 EDT(-0400)] <EricDalquist> but we all know that leaks memory anyways
[14:01:42 EDT(-0400)] <esm> sure (smile)
[14:01:52 EDT(-0400)] <EricDalquist> and there isn;t a clean way not to there
[14:02:00 EDT(-0400)] <EricDalquist> I think you'd have to use a finalizer
[14:02:20 EDT(-0400)] <esm> ok
[14:02:23 EDT(-0400)] <EricDalquist> though thinking about it perhaps Java needs a RFI to include a finalizer in the ThreadLocal object
[14:02:25 EDT(-0400)] <holdorph> it's certainly possible to leak memory, especially permgen space, with bad use of cglib. so I wouldn't fault someone for feeling wary of cglib though
[14:02:47 EDT(-0400)] <EricDalquist> ahhhhhhhh
[14:02:50 EDT(-0400)] <EricDalquist> wait
[14:02:53 EDT(-0400)] <EricDalquist> hold the boat
[14:03:14 EDT(-0400)] <EricDalquist> having the JDK source is really handy
[14:03:30 EDT(-0400)] <EricDalquist> So each Java Thread has this field:
[14:03:31 EDT(-0400)] <EricDalquist> ThreadLocal.ThreadLocalMap threadLocals = null;
[14:03:51 EDT(-0400)] <EricDalquist> The Entry object for that map is declared:
[14:03:51 EDT(-0400)] <EricDalquist> private static class Entry extends WeakReference<ThreadLocal> {
[14:04:06 EDT(-0400)] <EricDalquist> meaning it can't leak
[14:04:15 EDT(-0400)] <EricDalquist> as soon as the ThreadLocal itself is derefd
[14:04:30 EDT(-0400)] * esm opens his jdk source
[14:04:32 EDT(-0400)] <EricDalquist> the corresponding entry in the Thread's Map is eligable for GC
[14:07:48 EDT(-0400)] <esm> ok so as soon as the ThreadLocal - in this case the static instance of AbstractClassGenerator is no longer referenced, it is eligible for GC.
[14:08:02 EDT(-0400)] <EricDalquist> yup
[14:08:04 EDT(-0400)] <esm> but it is a static instance.
[14:08:08 EDT(-0400)] <EricDalquist> yup
[14:08:11 EDT(-0400)] <esm> so when will it ever become derefed
[14:08:16 EDT(-0400)] <EricDalquist> webapp reload
[14:08:19 EDT(-0400)] <esm> ok
[14:08:31 EDT(-0400)] <EricDalquist> which is the only time a new one would get created too
[14:08:38 EDT(-0400)] <esm> yes.
[14:08:49 EDT(-0400)] <esm> i'm still thinking because ...
[14:09:02 EDT(-0400)] <EricDalquist> oh ... so about bz2/gz
[14:09:14 EDT(-0400)] <EricDalquist> I get the feeling of 'lets just do .tar.gz'
[14:09:19 EDT(-0400)] <esm> yes
[14:09:20 EDT(-0400)] <EricDalquist> which I'm happy with because its less work for me
[14:09:39 EDT(-0400)] <esm> for whatever my opinion counds for.
[14:10:23 EDT(-0400)] <esm> the ClassLoader instance for the webapp that has the Thread Local...
[14:12:14 EDT(-0400)] <esm> its my understanding that if you don't clean up certain objects, say JDBC Driver instances, on your webabb shutdown, that you can prevent the Classloader from being GC'ed
[14:12:41 EDT(-0400)] <EricDalquist> yeah, I think so
[14:13:06 EDT(-0400)] <EricDalquist> I think the danger is having a class in some exterior classloader referencing a class in your webapp
[14:13:19 EDT(-0400)] <esm> ok yes
[14:13:22 EDT(-0400)] <esm> that makes sense
[14:13:31 EDT(-0400)] <esm> which happens with JDBC
[14:13:37 EDT(-0400)] <EricDalquist> yeah, it can happen
[14:14:15 EDT(-0400)] <esm> right
[14:14:25 EDT(-0400)] <esm> not a foregone conclusion but dependant on setup
[14:37:57 EDT(-0400)] * colinclark (n=colin@142.150.154.101) has joined ##uportal
[14:53:26 EDT(-0400)] * EricDalquist (n=EricDalq@adsl-76-208-71-170.dsl.mdsnwi.sbcglobal.net) has joined ##uportal
[14:55:57 EDT(-0400)] <EricDalquist> join #crossover
[14:56:05 EDT(-0400)] <EricDalquist> oops
[14:56:33 EDT(-0400)] <MarkRogers> is trunk always the latest and greatest in our subversion repository?
[14:56:40 EDT(-0400)] <EricDalquist> yup
[15:08:05 EDT(-0400)] <dstn> Where is portal.log ususal reside? I can't seem to find it.
[15:08:13 EDT(-0400)] <dstn> where does*
[15:18:45 EDT(-0400)] <MarkRogers> I think mine just goes in the tomcat root
[15:23:00 EDT(-0400)] <dstn> never setup tomcat+uportal on windows and its proving challenging for me
[15:23:08 EDT(-0400)] <athena7> i just hardcode mine to go to a specific location
[15:23:19 EDT(-0400)] <athena7> it seems like it winds up places randomly, dunno
[15:23:22 EDT(-0400)] <athena7> windows!? ew!
[15:23:23 EDT(-0400)] <athena7> (smile)
[15:23:46 EDT(-0400)] <dstn> ya, I agree
[15:23:56 EDT(-0400)] <dstn> waiting for the new machine...
[15:24:06 EDT(-0400)] <athena7> what're you getting?
[15:24:43 EDT(-0400)] <dstn> a pretty nice desktop; then I can put Linux on it
[15:24:58 EDT(-0400)] <athena7> nice
[16:02:10 EDT(-0400)] <holdorph> btw, i'm 30 minutes late to this conversation, but.... the default in uportal 2.x (probably the same in 3.0) is for the log file to be simply set to file=portal.log this means
[16:02:27 EDT(-0400)] <holdorph> it will go to the 'current working directory' where you are at when you start tomcat
[16:02:57 EDT(-0400)] <holdorph> so you can either be very rigorous of where you are at when you start tomcat. Or you can change the value to be a fully qualified path+filename.
[16:03:26 EDT(-0400)] <holdorph> the reason it shows up in random places, is normally because you're in random places when you start tomcat.
[16:20:07 EDT(-0400)] <dstn> ok, thanks
[16:20:15 EDT(-0400)] <dstn> makes sense
[16:21:06 EDT(-0400)] <MarkRogers> and am I reading this correctly ... that you can configure that - http://www.ja-sig.org/wiki/display/UPM30/Logger.properties ?
[16:28:26 EDT(-0400)] <holdorph> right. it's the
[16:28:33 EDT(-0400)] <holdorph> log4j.appender.R.File=portal.log
[16:28:37 EDT(-0400)] <holdorph> line
[16:28:43 EDT(-0400)] <holdorph> just fully qualify that like
[16:28:55 EDT(-0400)] <holdorph> log4j.appender.R.File=/my/path/to/my/dir/portal.log
[16:31:50 EDT(-0400)] <MarkRogers> thanks, cris.
[17:39:22 EDT(-0400)] * dstn (n=dstn@unaffiliated/dstn) has left ##uportal
[18:02:26 EDT(-0400)] * holdorph (n=holdorph@12.164.139.7) has joined ##uportal
[18:12:23 EDT(-0400)] * holdorph (n=holdorph@12.164.139.7) has left ##uportal