greptilian logo

IRC log for #javaee, 2013-11-15

Please see http://irclog.greptilian.com/javaee for which days have been logged.

| Channels | #javaee index | Today | | Search | Google Search | Plain-Text | plain, newest first | summary

All times shown according to UTC.

Time S Nick Message
00:18 Quest now edit 3
00:34 cleva joined ##javaee
00:56 pdurbin this is a great listen, posted about a month ago. even has a full transcript: JSFCentral: JSFCentral Episode 31: Ed Burns, JSF Spec Lead, discusses JSF 2.2 and Java EE 7 - http://content.jsfcentral.com/c/journal/view_article_content?cmd=view&groupId=35702&articleId=97595&version=1.9#.UoVxJcMYycM
00:58 pdurbin it was interesting that this feature came from another proposal: The Java EE 7 Tutorial:Resource Library Contracts | Java EE Documentation - http://docs.oracle.com/javaee/7/tutorial/doc/jsf-facelets008.htm
00:58 pdurbin "But that other name was multi-templating.  We took a subset of that idea and called it Resource Library Contracts because we didn't want to take that name if we were only going to do a subset of the full idea."
01:00 pdurbin I guess this was the original idea: [#JAVASERVERFACES_SPEC_PUBLIC-971] Multi-templating System - Java.net JIRA - https://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-971
01:00 sfisque nifty
01:00 sfisque finally adding "skinning" into the API
01:00 mexitech joined ##javaee
01:05 pdurbin "EL 3.0 was really exciting, bringing a lot of the power of lambda expressions to Java EE 7 before it even made it into SE 8.0, so that's really exciting."
01:06 sfisque how would lambdas work in EL?
01:07 sfisque i'm guessing it's in EE7 because closures were originally slated for SE7
01:07 pdurbin "Lambda expression (section 1.20 of EL 3.0 spec)" -- https://weblogs.java.net/blog/swchan2/archive/2013/07/01/standard-deviation-illustration-expression-language-30-servlet-environment
01:08 sfisque OH, i was thinking EL in the context of a facelet,  they're talking EL evaluated directly in java code.   bleh
01:09 sfisque there went type safety out the window
01:45 kobain joined ##javaee
02:11 tommmied joined ##javaee
03:25 sfisque joined ##javaee
03:25 sfisque1 joined ##javaee
03:52 nb-ben_h joined ##javaee
03:54 balo joined ##javaee
05:33 dangertools joined ##javaee
05:33 dangertools joined ##javaee
07:10 tommmied joined ##javaee
08:03 weyer joined ##javaee
09:56 neuro_sys joined ##javaee
10:26 sajjadg joined ##javaee
11:40 SoniEx2 joined ##javaee
11:40 SoniEx2 joined ##javaee
11:56 MegaMatt joined ##javaee
12:17 sajjadg joined ##javaee
14:08 sess jsf really screws me up at points
14:09 sess now it renders the wrong data after an ajax post
14:09 sess makes NO sense at all
14:14 SoniEx2 ok I give up someone help me: https://github.com/SoniEx2/TheModernClassicGame/tree/master/src/com/github/soniex2/tmcg/ym2612
14:29 Naros joined ##javaee
14:30 Fubar^ SoniEx2: What do you need help with?
14:30 SoniEx2 everything D:
14:40 Naros joined ##javaee
14:46 Quest joined ##javaee
14:51 weyer joined ##javaee
14:56 SoniEx2 is this good code: https://github.com/SoniEx2/TheModernClassicGame/blob/master/src/com/github/soniex2/tmcg/ym2612/YM2612.java
14:56 SoniEx2 well
14:56 SoniEx2 it's more like pseudocode or something...
14:56 SoniEx2 but still
14:57 SoniEx2 (I'm trying to avoid boilerplate code btw)
14:58 semiosis SoniEx2: i use project lombok to avoid writing common boilerplate code
14:58 semiosis javaeebot: lucky project lombok
14:58 javaeebot semiosis: http://projectlombok.org/
15:01 SoniEx2 well I'm just trying to avoid repeating the same code 6 times and also trying to reuse objects
15:03 gt_ joined ##javaee
15:09 sess ok I got some weird shit here:
15:09 sess #{s.name}<h:inputText value="#{s.name}"/>
15:09 sess after a post, these displays different values
15:09 sess how is this possible
15:33 SoniEx2 semiosis: can lombok do "int filtering"? (aka "i &= (1 << bits) - 1")
15:34 semiosis doubt it but feel free to read the docs
15:34 semiosis they're pretty easy to read
15:34 SoniEx2 yeah then it's not gonna help much...
15:34 semiosis heh, well that's hardly "boilerplate" code
15:35 semiosis usually when people say boilerplate they mean getters & setters etc
15:35 SoniEx2 it is when you're writing a YM2612 emulator
15:35 semiosis yeah ok sure make up your own defintiions :)
15:35 semiosis http://en.wikipedia.org/wiki/Boilerplate_code
15:36 semiosis want to use that term for something else, fine, but no one will know what you're talking about
15:36 SoniEx2 boilerplate code is code that's repeated a lot with no modification
15:36 semiosis yes but not all code that is repeated a lot with no modification is boilerplate code
15:37 semiosis in any case, you probably want a function, right?
15:39 semiosis maybe a for loop & a function
15:40 kobain joined ##javaee
15:40 weyer joined ##javaee
15:57 weyer joined ##javaee
16:16 weyer joined ##javaee
17:14 weyer joined ##javaee
17:30 Naros So I'm trying to refactor a bit of code but I'm a bit stumped on a good approach, perhaps you guys can help.
17:30 Naros We have this class called AbstractAttachment that we use to extend various document-specific attachment entity classes.
17:31 Naros The subclass basically just holds a reference to the parent document that owns the attachment.
17:31 Naros Since the parent entity's PK varies, some are single PK references and others are a composite PK, we can't store these things in a common entity class.
17:32 whartung so it's an AbstractAttachment<Type> kind of class?
17:33 Naros WorkOrderAttachment extends AbstractAttachment
17:33 Naros abstract AbstractAttachment implements Serializable
17:33 Naros all WorkOrderAttachment has is a property called WorkOrder with it's mapping to the parent WorkOrder entity
17:34 whartung if you did AbstractAttachment<T> you could have public abstract T getKey()
17:34 whartung or somethin glike that
17:35 Naros Hm
17:36 Naros this is where I think using the DAO pattern is kinda making a mess of this
17:40 jieryn joined ##javaee
17:40 jieryn joined ##javaee
17:51 sfisque why would getKey return this.getClass(), wouldnt it depend on the type of PK, not the enclosing type?
17:52 Quest does any one have chrome here?
17:52 whartung on my truck, there's some shiny bits
17:53 Quest got a pretty unusual problem. works in firefox though. not in chrome. http://stackoverflow.com/questions/20004009/using-www-subdomain-causes-404-error
17:55 Naros I'm just trying to avoid having so much code bloat with these classes
17:55 Naros cause it leads to bloat at the DAO and Service tiers.
17:55 Naros when the only difference here is the owner key
17:56 Naros findActiveByOwnerKey(Type ownerKey), findDisabled(), findById(Long id) are the only exposed APIs
17:56 sfisque entities are not bloat.  keep them simple and plain.  the less "magic" your entities perform, the happier you will be.
17:56 whartung You can store the key as an object in the abstract class, and then implement the T getKey() and setKey(T key) methods in the conccrete ones
17:57 Naros whartung: aye
17:57 whartung but I agree with sfisque
17:57 whartung keep them stupid
17:57 whartung hidden stuff is lost
17:58 Naros yah i just dislike someone going, we want all attachments to have this and I have 20 different modules to change
17:58 sfisque if you remove all the annotations, an entity should be a brute force simple pojo
17:58 Naros where each module has the views to change, the actions to change, the services to change, and the DAOs :/
17:58 sfisque you can always build a proxy or factory to make the attachments "magical"
17:59 sfisque or a decorator pattern
18:00 Quest whats better List myList = new ArrayList()            or             List<SomeObject> mylist = new ArrayList<SomeObject>()          or not using List at all and just using ArrayLIst ... mylist = new ArrayLIst()  ?
18:00 Naros Aye, but I'm not sure any of those would reduce the repeated code bloat I'd see at the various tiers honestly.
18:00 whartung the second is better Quest
18:00 Naros ^
18:00 jieryn List<SomeObject> myList = new ArrayList<>();
18:00 Quest hm
18:01 whartung is that 7 or 8 jieryn ?
18:01 jieryn 7
18:01 Quest using <generic>  with Interface LIst.. why?
18:01 whartung sweet
18:01 sfisque Quest, add an initial size if u expect it to get big, otherwise you're going to garbage collect that collection many times
18:01 whartung Use the highest level of abstraction as you can
18:01 Quest sfisque,  hm
18:02 sfisque unless you have no clue on size range, you should always prime the collection with a "sane size"
18:02 Quest whartung,  why use abrstraction? so that it can be molded in future?
18:02 sfisque swap implementations
18:02 Quest hm.
18:02 jieryn priming it with a sane size, i think someone once warned us about Premature Optimization
18:02 Quest see
18:02 whartung Because computer programming is ALL ABOUT abstraction. That's ALL WE DO.
18:02 jieryn smells exactly like that
18:02 Quest got it. and   List gives us more methods that ArrayList gives
18:02 jieryn unless you know there will only ever be one element, ...
18:02 sfisque one day you use ArrayList, day two, you use LinkedHashSet
18:03 sfisque of course it does Q, it's an impl
18:03 whartung the lower the abstraction, the higher the coupleing
18:03 jieryn then just use   List<SomeObject> myList = Collections.singletonList(mySomeObject);
18:03 sfisque sometimes you need to buy the farm (reference the concrete class), sometimes you can rent (use the interface)
18:03 Quest whartung,  sfisque  ok.  now why use <generics>, thats not abstraction if I explicitly tell it that tis a <String> list .  I  cant change it in future.
18:04 jieryn troll
18:04 sfisque compiler syntax sugar to aid in writing better type safe code
18:04 Quest sfisque,  me?
18:04 whartung because writing code like this suck: for (String s : (List<String>)yourStringList) { … }
18:05 whartung String s = (String)yourStringList.get(0);
18:05 whartung more suck
18:05 sfisque if you compile two objects, one with and one without the (yes Q) <Type> stuff, they are bytewise identical.  they do not produce any bytecode.  it's purely to write better type safe code
18:05 zoot compile time errors <3
18:05 whartung we'e had java 5 for almost 10 years
18:06 whartung about time to pick it up, methinks
18:06 zoot you are 10 years
18:06 zoot :P
18:06 whartung I wish
18:07 pdurbin stupid tomcat logging
18:10 Quest if <> is not mentioned. it will be more abstract. right whartung ?
18:10 acuzio nope
18:11 Quest why use<> .  why not just  List mylist = new ArrayList
18:11 acuzio Quest: sfisque explained it well enough above
18:11 whartung The same reason we don't just use Object everywhere.
18:12 Quest acuzio,  whartung  did. with the subject of  "sucky code"
18:12 Quest whartung,  casting problem?
18:12 acuzio No sfisque also did
18:12 whartung do what you want, you will anyway.
18:12 * Quest scrolls up
18:13 Quest acuzio,  he explained why use interfaces. not for why use <>s
18:14 sess Quest:  you use generics for 1. not having to cast every time you want to use the objects, and 2. it specifies intent much clearer and forces you to not mix classes in the same list
18:14 acuzio Quest: i think you are missing the larger point - did you understand what you need to do and why ?
18:14 sess simply put, it allows you to make better code with basicly no cost
18:16 sajjadg joined ##javaee
18:16 Quest sess,  hm
18:16 sess Quest: imagine having to use only Objects when coding
18:16 sess Object o = "some string"
18:16 sfisque javascript!!!!
18:17 sess thats what untyped lists feels like to me
18:17 Quest so at this point we should not be abstract. this will result in 1. casting the list item every time. and 2. will not show clear intents of coder
18:17 sess sfisque:  the horror
18:17 sess Quest:  generics is not about abstraction
18:17 sess it's about good restrictions
18:17 Quest hm
18:18 Quest why impose restrictions?
18:18 sess you achieve abstraction by using "higher" classes, i.e List instead of ArrayList
18:18 sess because restrictions reduces risk of bugs
18:18 Quest so the argument supplier might not just give some thing that might not be expected?
18:18 sess and makes your intent clearer
18:18 Quest hm
18:18 Quest got it
18:18 sess take a method signature: Object doStuff(Object o)
18:18 sess very unrestricted
18:18 sess but you have no clue what it does
18:19 sess restricting the parameter to String for example, helps usage by introducing restrictions
18:19 sess and reducing the potential functionality with a proper name
18:19 sess same concept
18:19 sess god that was a horrible example :/
18:20 whartung this really isn't the forum for a discussion about formal type systems
18:20 pdurbin whartung: why not? ;)
18:20 Quest so List list = ....      should NEVER be used?   rather List<someOjbj> list = ..
18:20 Quest hm
18:20 sfisque hold on.   Quest ask the question but pose it from the standpoint of attributes of a SFSB :P
18:20 * Quest wonders if sess  had a javascript background too
18:20 Quest so List list = ....      should NEVER be used?   rather List<someOjbj> list = ..
18:21 Quest sfisque,  whartung  semiosis  my confustion is now cleared up. thanks
18:21 Quest despite i sometimes get confused on very basic stuf
18:21 semiosis \o/
18:21 sfisque not Never Q, judiciously.  sometimes you don't care.  most times y ou do
18:21 sfisque sometimes i want to hold an aggregate in a List, most times, i want that list to be uniform
18:21 whartung …where it immediately left the rails, jumped the track and plunged in to the ravine to burn a fiery death
18:21 Quest sfisque, k
18:21 sess Quest:  i hate javascript :v
18:21 * sfisque nods at sess
18:21 sfisque javascript makes the baby java cry
18:22 sess my college has a book "javascript - the good parts". It's very thin, like 100 pages
18:22 sess i snicker every time i see it
18:22 sess and wonder where part 2 is
18:22 sfisque that many pages?
18:22 sfisque javascript - the good parts, by sfisque …. 3 pages
18:23 sfisque 2 blank pages, with a title page
18:23 sfisque :P
18:23 sess dont forget the page that says THE END
18:23 sfisque ROFL
18:23 Quest ok. offtopic:  programmers of cobol and fortron are rare but very hugely paid  if one is found to a needing company (fewer needing companies though). My question is that are there any such languages that are not soo old like fortron and cobol , (modern languages)  but of which , coders are less in market and there is a fine demand too? and the coders are paid high too?
18:24 whartung whartungs books of Java Debugging, Page 1 "It's a CLASSPATH problem" Page 2: Advanced Topic: See Page 1"
18:24 sfisque ROFL
18:24 whartung FortrAn
18:24 sfisque ADA
18:25 sfisque C
18:25 sfisque intel hires tons of C devs for device drivers
18:25 sess Quest:  the market is self regulating, boring and/or hard languages will pay more since less people want anything to do with them
18:25 whartung Fortran 2003 is younger than Java
18:25 sess picking one due to higher pay since like a shortcut to an awful life
18:26 whartung so is Fortran 95
18:26 sess sounds*
18:26 Quest sfisque,  ROFL ?
18:26 whartung if you want the monies, go to wall street and get in to the financial sector.
18:26 Quest whartung,  sfisque  fortran and ada are ancient and hard to debug
18:26 whartung you've tried it?
18:27 Quest sfisque,  there are alot of guys who are expert in C in market
18:27 whartung How much Ada have you written?
18:27 sfisque aye but both languages have strong niches.  ada = DOD, fortran = aerospace
18:27 whartung Ada is amazing, just too formal for me
18:27 sess work in an oil platform
18:27 Quest whartung,  oh ok. fortran 2003
18:27 sess make millions
18:27 sfisque ada codes like it's target audience, rigid and militaristic :P
18:28 whartung COBOL 2002
18:28 sfisque java8,  not even born yet
18:28 whartung Ada 95
18:28 Quest what was the first language known
18:28 whartung Gaelic
18:29 Quest ADA or assembla
18:29 whartung The oldest language in any reasonably common use today is Lisp
18:29 Quest sess,  oil platform ? what kind of work?
18:30 Quest whartung,  hm
18:30 sfisque java10, only a glimmer in some PMs eye
18:30 sfisque java17, no code, just talk into the microphone and it builds what you want
18:30 sfisque java18, looks alot like java1.0, runs on broken computers left over from the machine revolution fueled by java17
18:31 whartung actually, it might be fortran
18:31 whartung Fortran is 57, Lisp is 58
18:31 sess Quest: they probably need coders aswell
18:32 whartung Better to be an EMT - lots of down time, and then bouts of anxiety
18:32 Quest hm
18:38 sfisque i would say either fortran or C
18:38 sfisque C dates to the late 60's
18:38 sfisque 1957, fortran
18:40 Quest what was the first language made
18:41 sfisque machine code, punch cards containing holes that mapped to hex codes
18:41 sfisque or switches in a panel
18:41 whartung no, punch cards for looms in the 1800's
18:41 sfisque depending on the "input device"
18:41 whartung and Charles Babbage
18:41 sfisque ah, there ye go
18:42 sfisque i hadnt concidered the babbage machine
18:42 sess i bet someone invented a programming language in the 1500s or so
18:42 sess but it had nothing to run on
18:42 sess :D
18:42 whartung those wacky monks
18:42 whartung bored bored bored bored lol
18:42 Quest hm
18:43 whartung the googles knows all
18:43 whartung http://en.wikipedia.org/wiki/History_of_programming_languages
18:44 sess what would even define a "programming language"
18:44 whartung a programmer!
18:44 sess no :(
18:44 whartung why not? who else would know?
18:44 sess i said "what", not "who"
18:44 whartung a programmer is a "what" :)
18:45 whartung "They speak english in What?"
18:45 sfisque no, a programmer is a force of nature, beyond mere pronouns
18:45 sess if you say what one more damn time
18:45 sfisque what what what what what what what what what what what ?
18:46 whartung *BLAM* *BLAM* *BLAM* *BLAM* *BLAM* *BLAM* *BLAM*
18:47 sfisque for( int i = 0; i < Integer.MAX_VALUE; i ++ ) { System.out.print( "what " ); }
18:47 whartung pkill sfisque
18:47 sfisque System.out.println( "what!" );
18:47 sess for( int i = 0; i < Integer.MAX_VALUE; i ++ ) { System.out.print( "*BLAM* " ); }
18:48 whartung lol
18:48 sess whartung: i frown upon your ineffective repetition
18:48 whartung what?
18:48 * sfisque feverishly starts to refactor using BigDecimal
18:48 sess [19:47] <    whartung>| *BLAM* *BLAM* *BLAM* *BLAM* *BLAM* *BLAM* *BLAM*
18:48 whartung it was a prototype
18:49 sess .// TODO: fix
18:49 whartung public abstract class KaBoom { public void shoot(); }
18:51 sfisque you going to use a factory or build a proxy?
18:51 whartung I was going to look it yup via JNDI, being as this is the JEE channel
18:52 zoot package java.lang; public class Object { public Object() { System.exit(1); } }
18:53 sfisque just inject it
18:57 pdurbin let's say I want tomcat 6 to print out all the log.debug lines in this file. should be easy to configure, right? http://svn.shibboleth.net/view/java-xmltooling/tags/1.3.2/src/main/java/org/opensaml/xml/signature/SignatureValidator.java?view=markup
18:58 sess should be yes
18:59 pdurbin I've tried many variations on conf/logging.properties
19:01 sess how about setting logger org.opensaml.xml.signature to DEBUG
19:01 whartung save that shib probably doesn't use JUL
19:01 whartung no, in JUL its FINE and FINEST
19:03 pdurbin I added this to the bottom. no love: org.opensaml.xml.signature = FINEST
19:03 sess the finest of loggers
19:03 sess a real work of art
19:04 sess are you sure FINEST is a valid log level?
19:05 whartung pretty sure its FINEST
19:06 whartung but, again, if shib DOES NOT USE JUL, then you can change it all you want…and not get anywhere
19:07 pdurbin whartung: that opensaml file has "import org.slf4j.Logger"
19:07 whartung then you need to get that configured. You can route slf4j to JUL, and then go from there
19:08 sess i thought tomcat used log4j
19:09 whartung no
19:09 whartung not 6+
19:13 pdurbin I'm looking at http://stackoverflow.com/questions/9543952/sl4jf-in-tomcat-not-showing-up-in-log-files but I'm still confused
19:15 pdurbin sess: so it's not easy ;)
19:22 pdurbin in WEB-INF/lib I see org.slf4j-slf4j-api.jar and org.slf4j-slf4j-log4j12.jar
19:24 whartung remove the log4j jar and replace it with the slf JUL jar
19:27 pdurbin whartung: remove org.slf4j-slf4j-log4j12.jar ?
19:28 whartung yes
19:28 pdurbin whartung: and replace it with which?
19:28 whartung slf4j has a JUL adapter
19:28 sess JUL one
19:29 pdurbin I'm looking
19:36 nb-ben_h joined ##javaee
19:41 bitwize joined ##javaee
19:42 pdurbin I don't know Solr talks about using SLF4J at http://wiki.apache.org/solr/SolrLogging but I don't know how to get those debug.log messages to print. I tried copying slf4j-jdk14-1.6.6.jar and log4j-over-slf4j-1.6.6.jar into lib. I don't get it.
19:47 whartung get rid of log4j
19:51 Naros So if you fetch an entity into the PC with say Version=8 and during the transaction you set the version to 7 and save it, it won't throw an OptimisticLockException?
19:52 Naros It seems entity has to be detached for the exception to be detected
19:52 sess dunno
19:52 sess why would you even do that
19:53 Naros UserA opens record in session1 while UserB opens the same record in session2.
19:53 Naros One of them updates the record before the other, naturally the second should cause a collision
19:54 sess youre not supposed to set the version manually
19:54 sess normally it should throw an exception yes
19:54 Naros The version is in the form post :P
19:54 sess if you expose the version to the user, it compromises the whole locking system
19:54 Naros meaning when the view was rendered, it was version 7.  But someone else has since modified the record so when the user posts the data back to the server, it gets sent version 7 to cause the collsion to happen.
19:55 Naros Then how are you suppose to prevent two users in a web application from stepping on each other and overwriting the other's changes?
19:55 sess by not exposing the verison number to them
19:55 sess it works out of the box by itseldf
19:56 Naros I disagree with you.
19:56 sess the is no chance of overwriting data when implementing optimisting locking correctly
19:57 Naros So one user opens a record and walks away from his PC.  in the meantime another user modifies the same record.
19:57 Naros When the guy returns, he makes his changes and submits.
19:57 sess and gets an exception
19:57 Naros The server side is going to requery the record from the DB which has the NEW version #
19:57 Naros It will NEVER throw an exception in this case.
19:57 Naros Unless the submission includes the old version number to cause it to fail at commit
19:58 sess client A retrieves version 1 of an entity, client B retrieves version 1 of an entity
19:58 sess client B saves it, increasing version to 2
19:58 sess client A saves it, recieves optimistic locking exception
19:58 sess is this not your scenario?
19:58 Naros Yes, but are you assuming taht client A stores that entity in the session?
19:58 sess no
19:59 Naros So how during a http post does client A get that entity?
19:59 Naros He requires the DB :P
19:59 sess well this assumes client A doesn
19:59 sess t throw away the entity
19:59 sess you need to keep the version number
19:59 Naros Only way to do that would be to store the entity in the HttpSession then which to me feels bad.
20:00 sess depends on what frameworks you use
20:00 sess you can always put the version in a hidden input i guess
20:00 Naros Right
20:00 Naros Which is what all the old code had been doing
20:00 sess ive only used @Version with ViewScope
20:01 sess eliminating the issue
20:01 Naros The difference tho is that API got the entity, it was detached from the session, then modified it, then sent it back to the PC to be merged.
20:01 sess API?
20:01 Naros The old API I have.
20:01 Naros The new API passes in all the parameters from the form, queries the object, sets the values, then merges.
20:01 Naros The entity is never detached in the new API code
20:02 sess session open in view?
20:02 Naros Nope, we don't use that
20:02 Naros Session happens at service method invocation.
20:03 Naros struts2 action -> service -> dao -> entitymanager
20:03 sess i dont see how a framework switch would cause no detachment to happen
20:03 sess if we're talking web
20:03 Naros Entity e = service.getEntity(entityId);
20:03 Naros e.setValues(...0;
20:03 sess aaanyhow, if the entity is not detached and not discarded, the version info should still be there?
20:03 Naros service.saveEntitty(e);
20:03 sess and throw optimistic locking exception
20:04 Naros in those 3 lines, the entity becomes detached when the getEntity() returns since the session gets closed
20:04 sess yeah
20:04 Naros so during saveEntity() the entity optimistic-lock-exception gets throw since the merge is taking a detached entity and placing it back into the session.
20:05 Naros but instead
20:05 Naros service.saveEntity(entityId, fieldA, fieldB, ...) is beng used
20:05 sess fieldVersion needs to be included then
20:05 Naros aye, and I'm doing just that.
20:05 Naros But seems JPA doesn't care
20:06 Naros if I evict the entity from the session after I query it, set the values, then merge it throws the exception
20:06 sess there is literary no difference from your earlier scenario
20:06 sess in both cases you have unattached data
20:06 sess that gets attached, and merged
20:06 Naros How so?  I dont have 2 EM sessions in the second scenario, its just 1 where the entity is never detached :P
20:07 Naros the get & save are combined into 1 method
20:07 sess the number of sessions isn't interesting
20:07 sess in both cases you have detached data
20:08 sess the difference is  just that the data is not combined in an object in your second scenario
20:08 sess as long as you set the ID and the version correctly, and the version is lower than in the DB, an exception should be thrown
20:08 Naros @Transactional(readOnly = false, propagation = Propagation.REQUIRED)
20:08 Naros public saveEntity(Long entityId, Long version, other stuffs) {
20:08 Naros Entity e = em.find(entityId);
20:08 Naros e.setVersion(versoin);
20:08 Naros e.setOtherStuffs();
20:08 Naros em.merge(e);
20:08 Naros }
20:09 Naros In that, the entity is never detached from the EM
20:09 Naros if it is, I'd like to understand how
20:09 sess why do you find the entity?
20:10 sess lacking some fields?
20:10 sess not sure if it can affect the version functionality, hmm
20:10 Naros The form doesn't give me ALL the data durnig edits, only pertinent data
20:10 Naros So the only option is to get the object from the DB, change the appropriate business function values and merge it back
20:11 sess my bad, this should be the correct action
20:11 semiosis joined ##javaee
20:11 sess anyways the optimistic locking should work still, unless it's implemented by an idiot
20:11 Naros maybe it shold have read updateEntity() :P
20:12 sess you are 100% sure the version you set is lower than the one in the db?
20:12 Naros Yep
20:13 sess id try it out myself, but i only have a decent setup at work
20:13 Naros decent setup?
20:13 sess never tried your exact scenario, but it should be a common one
20:13 sess IDE , projects etc
20:15 Naros Yah only way to get hibernate to throw the stale object exception is to detach it :/
20:16 sess i guess its not a big price to pay
20:16 sess 1 line of code
20:16 sess perhaps jpa is stupid enough to update the version in the database from your object when it is attached
20:17 Naros thats what i am thinking it is doing
20:18 Naros what are the technical differences between getReference() vs find()  ?
20:18 sess try entity.setVersion followed by em.flush followed by em.find again
20:18 sess and see if the version is saved
20:18 sess getReference only gets the ID i think?
20:18 sess or something
20:19 sess no
20:19 sess Naros: getReference gets you a proxy
20:20 sess http://stackoverflow.com/questions/1607532/when-to-use-entitymanager-find-vs-entitymanager-getreference
20:37 * pdurbin asks the OIOSAML guys: How can I tell Tomcat to print OpenSAML log.debug messages to catalina.out? http://digitaliser.dk/forum/2542391
20:39 pdurbin I was able to get [DEBUG] org.apache.xml messages printing in catalina.out at least. by changing "log4j.logger.org=warn, CONSOLE" from warn to debug in webapp/WEB-INF/classes/log4j.properties
20:39 pdurbin oh and https://wiki.shibboleth.net/confluence/display/OpenSAML/OSTwoUsrManJavaBB says "In order enable logging you must either download one of the bindings that bridge SLF4J with another logging system (e.g. Log4J, java.util.logging) or provide a logging system that natively implements the SLF4J interfaces (e.g. logback). The developers of OpenSAML use the logback logging framework..."
20:41 semiosis pdurbin: how familiar are you with log4j?
20:41 pdurbin I've heard of it
20:41 semiosis ha
20:42 semiosis pdurbin: easy way would be to set your log4j.rootLogger to debug
20:43 semiosis pdurbin: more complicated way would be to keep rootLogger at info or warn or whatever it is & change level for opensaml the way you did for log4j.logger.org
20:43 semiosis what you did there was to set the log level for all classes in all packages under org.* to debug
20:44 semiosis idk what the package name is for opensaml
20:49 pdurbin semiosis: I tried adding "log4j.rootLogger=debug, CONSOLE" to https://github.com/pdurbin/oiosaml.java-demo-8501-debug/blob/master/src/webapp/WEB-INF/classes/log4j.properties but no go
20:50 semiosis do you have an appender called CONSOLE?
20:50 SoniEx2 joined ##javaee
20:50 pdurbin well, I saw a different when I changed "log4j.logger.org=warn, CONSOLE" from warn to debug
20:50 pdurbin difference*
20:51 semiosis looking at the file now
20:51 sfisque joined ##javaee
20:52 pdurbin but that difference ([DEBUG] in catalina.out now) was for org.apache.xml which I assume doesn't use slf4j
20:52 semiosis pdurbin: try replacing the rootCategory line (1) with that rootLogger line you just said was a no go
20:52 semiosis rootCateogry is deprecated in favor of rootLogger
20:53 semiosis pdurbin: ah right, well you could also try adding the slf4j-log4j connector to your pom
20:53 pdurbin semiosis: they use ivy and gant
20:54 semiosis http://search.maven.org/#artifactdetails%7Corg.slf4j%7Cslf4j-log4j12%7C1.7.5%7Cjar
20:54 semiosis well add the jar to your build, however you do it
20:55 pdurbin semiosis: it's already there: webapps/oiosaml.java-demo-8501-debug/W​EB-INF/lib/org.slf4j-slf4j-log4j12.jar
20:55 semiosis what version of log4j are you using anyway?
20:55 semiosis ok then
20:55 semiosis hmm
20:56 semiosis well idk
20:56 pdurbin it's tricky. the OIOSAML guys use Tomcat so maybe they'll have some ideas
20:56 semiosis try replacing "log4j.rootCategory=info, CONSOLE" with "log4j.rootLogger=debug, CONSOLE"
20:57 pdurbin semiosis: right. yes, I did try that. didn't work but thanks
20:58 semiosis oh hm, wait a sec, you want this in your catalina.out file?
20:58 pdurbin semiosis: anywhere really, I don't care where
20:58 pdurbin I just know to look in catalina.out
20:59 semiosis try adding a new appender in your log4j.properties file, writing the logs you want to see out to your own log file
20:59 semiosis catalina.out is produced somewhere else, maybe easier to just leave it out of the picture
20:59 semiosis idk, guessing here,  /me gbtw
20:59 pdurbin :)
21:22 Naros sess: wonder if I stick this crap in the session how much overall memory that can consume with idiots opening multiple tabs, etc.
21:23 Naros could cause memory management to be come unwiedly.
21:31 Naros sess: does appear that struts2 has a conversation plugin that mimics @ViewedScoped and @SessionScoped functionality.
21:35 sess Naros: id worry more about application maintenance than memory. Memory is very cheap
21:36 sess mantaining a complex session is not
21:36 Naros Agreed.  https://code.google.com/p/struts2-conversation/
21:36 sess viewscope solutions has worked decently for me though
21:36 Naros i think that link might be similar to viewscope.
21:37 sess probably, unless it's like spring webflow which is just awful
21:37 Naros it serializes the fields in my action between requests basically.
21:37 Naros all based on some conversation id
21:37 Naros which gets sent in each request
21:37 Naros or set at the start of a workflow
21:37 milojaden joined ##javaee
21:38 Naros not sure how that translates to viewscope or sping webflow.
21:38 Naros *spring
21:38 sess same as spring webflow, question is how it is realized
21:38 sess jsd viewscope is basicly a session that gets deleted when you request a different view
21:38 sess jsf*
21:38 Naros this seems simliar, except it gets deleted based on a timeout.
21:39 Naros or invalidation of the session
21:39 sess spring webflow invalidates when conversation is completed, timeout seems risky
21:39 Naros https://code.google.com/p/struts2-conversation/wiki/UsageGuide#Memory_Management
21:40 Naros Yes, you have Begin and End annotations that can trigger marking a conversation as stale.
21:45 weichsel_2k joined ##javaee
21:45 weichsel_2k hi all, I need some help with udp datagrams, Im using it on a servlet, but when i use the socket.receive(receivePacket) I get java.net.SocketTimeoutException: Receive timed out. Any idea for solve it?
21:46 whartung I'd head over to #java, this is just a generic java question -- doesn't' really have anything to do with EE
21:46 weichsel_2k left ##javaee
22:13 sajjadg joined ##javaee
22:15 pdurbin_m joined ##javaee
22:15 pdurbin_m whartung: https://github.com/pdurbin/oiosaml.java-demo-8501-debug/blob/master/sig/adfs/catalina.out
22:15 whartung you got JUL working?
22:17 sfisque cross post because #netbeans seems quiescent
22:17 sfisque netbeans enviro question.  i have a few projects open and i had some stub files that i removed once i got the remote dependency defined in maven.  i'm seeing warnings and "red" markers for some of the references, which tells me that netbeans is confused.  how do i clear whatever cache nb uses for its project syntax checking?
22:17 sfisque 2:07 PM
22:17 sfisque the project compiles fine, so i know the code is sane, but NB is flagging stuff erroneously
22:17 whartung 1) have you tried restarting NB
22:18 sfisque several times
22:18 whartung you running a mac or something telse?
22:18 * sfisque gives whartung a view askanse
22:18 pdurbin_m whartung: nope but other debug stuff in there
22:18 sfisque winblowz
22:18 whartung ok
22:19 whartung anyway, "somewhere", "near" netbeans, there's a /var/cache directory that can be obiiterated
22:19 sfisque i've been surfing dirs to see where nb caches it's "compilation artifacts" for syntax checking
22:19 whartung I suggest searching for it, but, after catching my breath from laughter, I remember you're on windows.
22:19 sfisque i see  it, thx
22:20 whartung shut down NB, zap that, and start it iagain
22:21 sfisque bleh, still gives me incorrect highlighting.    /sigh.  (and yes, shutdown, cleared var/cache, restarted)
22:21 sfisque time to google
22:21 whartung close the project and reload it?
22:21 whartung I know, NB get stupid sometimes.
22:21 whartung and maybe the pom is sick in NBs eyes as well
22:22 sfisque trying that.  thx
22:40 sfisque no good.   but NB is reindexing the local maven repo, hopefully that will fix it.   /waits patiently
22:40 whartung yea, <3 the reindexing
22:41 * whartung wishes NB would keep indexes of closed projects so it didn't have to always have all the projects open to find stuff
22:49 cem_ joined ##javaee
22:49 cem_ hi
22:49 sfisque bah still not finding the public methods in the super/super class.   i think it might be a bug.  basically B extends A (in same maven dep) and C extends B (in a different maven dep).   my class instantiates C and cannot find the public methods exposed in A.  :-/
22:49 * sfisque waves to cem_
22:50 whartung wb cem_
22:50 cem_ :)
22:50 sfisque but it compiles fine.  F U NB
22:50 sfisque and i don't mean fun
22:51 whartung what rev of NB?
22:51 sfisque nightly from a few months ago.  i guess i can upgrade and see if it goes away
22:51 whartung I have intermittent results with Maven and NB. Mostly it works, somethings, it's just idiotic.
22:51 cem__ well i didnt learn rmi,sockets and much more :/
22:52 whartung then I starting swearing and thinking nasty Emacs thoughts…but then, it's nasty emacs thoughts.
22:52 sfisque that's quite a handful.  rmi alone involves a little "voodoo"
22:52 sfisque ROFL whartung
22:52 whartung I would skip RMI.
22:52 sfisque i never got on board with emacs.  went from vi -> bbedit -> jedit -> idea -> forge -> netbeans
22:53 whartung if you want to do RMI, do JMX remoting. It's the same thing, and a LOT easier.
22:53 sfisque well, i would at least "learn" how to do RMI, and then accept that most frameworks hide it well enough
22:53 whartung I wouldn't :)
22:53 whartung it's so rare in the wild
22:53 whartung and it's so fiddly
22:53 whartung JMX is usable RMI
22:53 cem__ i'll learn like quest san :P
22:54 sfisque true, BUT it is under the hood on a lot of stuff, (JMX, remoteEJB, etc.) and knowing its' failure points helps trouble shooting those other techs
22:54 whartung perhaps, but I know I've never needed to really
22:54 whartung fight such errors
22:54 whartung it's mostly reliable
22:54 cem__ sfisque: san  is right , how about sockets ?
22:55 whartung sockets are worth learning, thank God you're learning them in Java.
22:55 sfisque lol yeah ^^^^ sockets in C are "unfriendly"
22:55 whartung yea
22:55 whartung I had to port a simple Apache mod that was effectively a poor mans HTTP proxy from C to Java.
22:55 sfisque same with threading.   pthreads is such a voodoo art imo
22:56 whartung I'm copying the code over from C and it's like "don't need that, or that, or that , or .. or.. or…and..what, that's it? I'm done?"
22:56 sfisque java threads are so E-Z-mode it's rediculous
22:56 whartung yea
22:56 whartung and yet we continue to fail at them so hard :)
22:57 sfisque aye but we fail on the details rather than just failing ot bootstrap properly
22:57 sfisque i'll take that anyday
22:57 whartung If you want to learn sockets, go implement a simple SMTP server. It's a simple, yet challenging little protocol
22:57 whartung yea, truth
22:57 whartung fork(2) ftw!
22:58 sfisque even easier.   build a dumb http server.  stateless and dumb simple.   get request, deliver payload, done
22:58 whartung yea, too simple, that's why I suggest SMTP
22:58 sfisque that would be "day 2 tutorial" :P
22:59 whartung Write the simplest command, point your mail client at it, tell it to Send, and see what command it wants to send next, then implement taht
22:59 sfisque day 3, "implement a fully operational corba container"  :P
22:59 whartung rinse and repeat
22:59 whartung eh, cobra is easy at the socket level :)
22:59 whartung SMTP is challenging as it's a stageful protocol
22:59 whartung stateful
22:59 sfisque true
22:59 sfisque or a telnet server
23:00 sfisque i did that back when macos had no remote terminal services and i needed to admin some boxes remotely
23:00 whartung heh
23:00 whartung so funny
23:00 whartung I remember back int eh day
23:00 whartung My mom wanted a computer
23:00 sfisque which was a tuesday
23:00 whartung at least Tuesday
23:01 whartung and I was seriously considering giving her my NeXTStation
23:01 sfisque or 23804203948203482 years in internet time
23:01 sfisque OH MAN
23:01 whartung mostly because I knew I could remotely log in to it.
23:01 whartung :)
23:01 sfisque i'd kill for a next cube
23:01 whartung It has a good enough word processor, and a solid laser printer.
23:02 cem__ "If you want to learn sockets, go implement a simple SMTP server. It's a simple, yet challenging little protocol " I'll try to do this mmm :) and rmi some time :P
23:02 sfisque they had one here at the local "geek" shop.  was "not for sale" , then i came in one day and it was gone.  dude said, yeah, we sold it on ebay.  i was like WTF, i'd have bought it several years ago
23:02 whartung should of asked to be put on the waiting list :)
23:02 whartung my Slab is in my garage attic now
23:02 whartung part of my eclectic computing history
23:02 sfisque it had a sign saying not for sale.  i assumed it was never leaving.  my chagrin
23:03 sfisque i had to turf a sparc20 that i had tricked out with 4 procs.  was a sad day
23:03 whartung KIM-1 -> Atari 800 -> Mac 128K -> Motorcycle -> NeXTStation -> PB520 -> 3 Random POS PC's -> Mac Pro (with a Sun Ultra 10 mixed in there as well)
23:04 sfisque the 530 was a good machine.  i had a 1400.  THAT was a workhorse
23:04 whartung yea
23:04 whartung the 520C had as much connectivity as the Slab did :)
23:05 sfisque ***520
23:05 sfisque i bet
23:05 whartung I dropped $3K on the Slab. that was Cheap /cough at the time
23:05 sfisque oh yeah
23:06 whartung the amount of money I've dumped on computer gear…embarrassing. I hate spending money on computer gear :)
23:06 sfisque my parents dropped over 1k on an apple IIe when i was a kid.  hilarious that we walk around with super computers in our pockets now for a couple hundred $
23:07 whartung as I say, if I spent that money on shop tools, I'd a) still have them, b) they'd still work and be useful, c) I'd have a larger shop than Norm Abrahm
23:07 sfisque ROFL
23:07 sfisque yeah, pretty much
23:07 * whartung recalls dancing giddy when he bought his first 1GB SCSI drive for just under $1 per MB
23:09 whartung Oh, I still have the motorcycle :) lol
23:09 whartung used the money from the Mac as a down payment :)
23:10 * cem__ love this channel
23:10 sfisque i still lament the failure of scsi drives to scale properly.  i liked scsi, but they eventually petered out around 200gb
23:10 sfisque nice
23:10 sfisque :-D
23:11 whartung raise your hand if you supported 150 users on a 33MHz '030, in BASIC?
23:11 * sfisque raises
23:12 * whartung notes that we're updating our keys to BigDecimal, audit table PK has gone to -2B….
23:12 whartung what was the application? what machine?
23:13 sfisque i was manager of operation repairs for computer services at rutgers.  we maintained 7 computer labs and all we had was a MacSE30.  at the time i had a Quadra700 at home.  it was painful doing "paperwork"
23:13 whartung you had 150 users on the Mac SE? (I so wanted one of those…what a cool little machine)
23:15 sfisque no, we managed the data on 100's of machines on the se30.  what machines needed repair, which ones needed upgrades, parts oders, etc.
23:15 sfisque mixed network  Xterms, PCs, macs, sparcstations
23:15 whartung ah
23:16 sfisque 2 altime favorite repairs.   temporary repair of a laser printer with a rubberband.  the lab tech was astonished.  anther, one of the techs broke the fiberoptic cable in a laser printer he was replacing the fuser assembly in.  he conjectured "hey, it's a crystal lattice, we should be able to get a cleave and just throw away the short broken end.  i said, shit, lets do it.  two tries and the printer was printing out fine
23:16 whartung heh
23:17 sfisque 50$ cable, repaired with a pair of pliers and a file
23:17 whartung "Watch it there, you're spilling photons -- oh shit, the token from the token ring fell on the floor, see if you can find it!"
23:17 sfisque UGH.  you said the forbidden words
23:18 sfisque rutgers had a lab that was all token ring.  let's just say, nothing, after that statement.
23:18 * sfisque quietly tries to forget
23:18 whartung "I think it rolled under the server cabinet" lol
23:19 whartung the good old days of measuring tap points for 10Base2
23:20 sfisque lolz
23:25 sfisque upgrading NB fixed it.  i guess it was a bug in that nightly release i had
23:26 whartung ah great
23:26 sfisque thx.  i sometimes forget that i run "questionable" versions of NB :P
23:29 sfisque as a "pro tip", (reminded since i had to port over my netbeans.conf mods to the new install).   if you find NB stalls a bit on you, change the -J-Xss2m to -JXss2536k.   the extra half meg per thread really helps the background tasks not stall so much
23:29 whartung interesting
23:30 SoniEx2 fuck bit manipulation :/
23:30 sfisque depends on "who's" bits it is
23:31 SoniEx2 fuck numbers I mean
23:31 SoniEx2 I can't get this shit to work properly: https://github.com/SoniEx2/TheModernClassicGame/blob/master/src/com/github/soniex2/tmcg/ym2612/number/YmFixedPoint.java
23:32 SoniEx2 oh wait...
23:33 pdurbin whartung: I didn't realize you were a netbeans guy
23:33 whartung ja
23:36 pdurbin I've been in Eclipse a fair amount this week for OIOSAML and Netbeans seems much better
23:40 sfisque you mean i dont have to call the betty ford clinic?   phew
23:43 sajjadg joined ##javaee
23:43 sajjadg_ joined ##javaee
23:50 pdurbin oh good, Naros isn't here: http://irclog.greptilian.com/javaee/2013-11-08#i_40152 :) #eclipsehaters
23:51 pdurbin maybe adding plugins will make eclipse awesome
23:53 pdurbin jeez, you guys were chatty today
23:59 pdurbin "Just look at all the pain that's been induced by the fact that people still insist on not using Java Util logging, and they have their very good reasons for doing so.  But it's certainly, at least, arguable that everyone could just give it up and use Java Util logging and make everyone's life a little bit simpler.  But it's one of those issues that people get very passionate about, and everyone has good
23:59 pdurbin reasons for doing so." -- Ed Burns at http://content.jsfcentral.com/c/journal/view_article_content?cmd=view&groupId=35702&articleId=97595&version=1.9#.Uoa1QI3lWxI

| Channels | #javaee index | Today | | Search | Google Search | Plain-Text | plain, newest first | summary

Please see http://irclog.greptilian.com/javaee for which days have been logged.