~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

I'm sorry, I'm still confused what isn't working? Did you follow the documentation on the API page and specify 'oob' as the redirect_uri? Is that not what you want??

Currently I'm able to get the "initial code" but not able to retireve the access token using the URL which I got from your OAuth Daniweb tutorial. I have posted the URL I'm using along with the POST data I'm sending.

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

Try setting the redirect_uri to simply 'oob' instead of the whole urn:blahblahblah.

Great, that worked though I think you should later refactor code to stick to the standards. :)

Anyways, moving on, I now get the error "There was an error fetching an access token" when I submit a POST request for the access token. Here is the code I'm using (it's Python but should be very easy to follow):

url2 = 'http://www.daniweb.com/api/access_token'
post_data = { 'code': 'my_code', 'client_id': '40', 'client_secret': 'my_secret', 'redirect_url': 'oob', 'grant_type': 'authorization_code' }
resp=requests.post(url2, data=post_data)

Would you be able to take a look at the request I sent across and find out what went wrong?

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

Are you not able to simply send an HTTP request and then capture the header information that is returned? The information that you need is tacked on as a query string parameter to the redirect_uri. You can simply throw out the redirect_uri and parse the parameters??

Problem is that this process is not automated and requires user intervention. For e.g. I can send an HTTP request but then I would be greeted by a page which asks the user for permission. Since I need user to click a button, I can't easily do it completely in code, I have to spawn a browser process. Once I spawn the process, the control is out of my hands and it really would be painful to get a handle to the new process and read the process specific data like title bar or headers.

Similarly, can you please confirm that desktop applications cannot parse the browser's URL but they can parse the browser's title bar?

I won't be parsing anything but would be relying on the user to enter the generated code. Like mentioned in previous post, I'm aiming for something like this screenshot.

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

Sure, I'll try testing it on my side. I'm assuming you have made some changes to how standlone apps deal with the Daniweb oauth infrastructure. I tried sending a request:

http://www.daniweb.com/api/oauth?response_type=code&client_id=40&redirect_uri=urn:ietf:wg:oauth:2.0:oob

which should ideally bring me to a page which asks for user permission. When approved, a new page should open up which has the code that the client can put in my app.

Right now, after using the above URL and allowing the app to access my data, I don't get redirected to a new page. You can click on the above link and see what I'm trying to say.

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

Is there a need to expand this to support the other method as well?

I would say "yes" otherwise it's pretty painful to spawn a local web server just to get the code and makes the entire task look daunting. Plus if you are hoping for an Android/Win/iOS port, adding this would ease the job of the guy writing it.

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

EDIT: Missed your latest post so the below is for #4 post in this thread.

The method outlined on that page would work with our existing serverside implementation.

No, there is a very important distinction which is why the "are you expecting desktop app writers to spawn a local web server" part in my original post.

In the standalone mode, the application just needs the capability of opening up a URL in the system-default browser which is pretty easy and painless. Once that URL is opened, the user can login to the oauth provider, accept the application terms and get back a token. This user can then input this code/token into your standalone app and we are golden.

In the serverside mode, the application needs to provide a redirect URL. Let's assume that I say http://localhost:8080 (since it's a local app). Now the problem is that the OAuth provider would try redirecting to this address which would fail. Why? Because there is nothing accepting connections on that host/port combination. To get around this, the standalone app writer has to spawn a web server (in-process or out-of-process) which would accept the redirect by the Oauth provider, capture the code and then start phase 2.

Hope that makes sense.

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

I'm personally not aware of what kind of code changes are to be required to the server to support OAuth 2.0 standalone apps. But, I can definitely point you to the document which outlines how clients should interact with providers who have desktop/standalone support.

Using OAuth 2.0 for Installed Applications

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

Hi Dani, AFAIK OAuth 2.0 supports 3 flavours: Server side apps, client side apps and installed apps. Does Daniweb Oauth allow OOB in the redirect_uri which is part of the support for installed/standalone apps? If no, are you expecting desktop app writers to spawn a local web server and use the serverside flow?

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

Two important points:

  1. What is the time interval between taking the jmap dump and closing the sockets? Your close calls don't immediately take effect since there is a certain teardown time
  2. Did you also monitor the log file? Were there any exceptions in the logs?
~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

AFAIK, not possible without code modifications. The simplest thing would be to just create a script (.bat or .sh file) and run the script everytime instead of typing out the entire command...

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

I have have found online says it is impossible to remove elements from an array without creating a new array, so any help would be much appreciated.

It's possible if you are OK with the old allocated array sticking around. But this might be much more problematic than just creating a new one. The reason being, let's suppose you have an array of 10000 elements of which there are only 50 non-zero elements. If you throw away the old one and create a new array, you'll just be using an array of 50 elements; the old 10K array would be garbage collected. But, if you choose to not allocate a new array, you will now have a 10K size array live in heap with just 50 slots in use which is plain wasteful.

This might be a good idea if you want to forgo allocations but doing so withou a good reason doesn't make sense.

If this is homework, the solution should be a simple for loop over the array.

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

Happy B'Day Dani girl (hope I'm not too late to the party!).

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

why i can't change the thread title?

As already mentioned by Jim, you can only change/edit the thread title/contents within 30 mins of posting it. After that, it's a mod/admin only thing.

One thing to note here is that if you for some reason need the thread title to be changed or the content edited a bit (due to typos etc.), you can always "Flag bad post" the first post of that thread and request the moderator/admin to do it for you. This is assuming your request is is accordance with the rules.

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

A word of caution though, even though the System.exit method accepts the entire gamut of integer values, there are certain restrictions imposed by the host systems (operating systems) on what kind of status codes are acceptable.

Take a look here: http://en.wikipedia.org/wiki/Exit_status

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

The code would be thread safe if the dataSource.getConnection method is thread-safe. Since the DataSource is just an interface, you'll need to check the specific implementation of the data source you are using (just print out the name of the class) or read the documentation.

I'm assuming your datasource supports pooling otherwise multiple clients can possibly cause this piece of code to become a bottleneck.

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

Not sure I completely understand your question. Velocity is just a templating language which is concerned with rendering data based on your existing view/template. If you need HTML output, you'll have a create a template file which follow the HTML specification. Something like:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Cars!</title>
</head>
<body>
    #foreach( $car in $cars )
        <p>Car name: $car.name -- Car color: $car.color</p><br/>
    #end
</body>
</html>

And run it using:

public class VelocityTest {

    public static List<AutoMobile> getCars() {
        ArrayList<AutoMobile> cars = new ArrayList<>();
        cars.add(new AutoMobile("Skoda Octavia", "Red"));
        cars.add(new AutoMobile("Fiat Panda", "Blue"));
        return cars;
    }

    public static void main(String[] args) {
        VelocityEngine ve = new VelocityEngine();
        ve.init();
        Template t = ve.getTemplate("cars.vm");
        VelocityContext context = new VelocityContext();
        context.put("cars", getCars());
        StringWriter writer = new StringWriter();
        t.merge(context, writer);
        System.out.println(writer.toString());
    }

}

public class AutoMobile {
    private String name;
    public void setName(String name) {
        this.name = name;
    }
    public void setColor(String color) {
        this.color = color;
    }
    private String color;
    public AutoMobile(String name, String color) {
        this.name = name;
        this.color = color;
    }
    public String getName() {
        return name;
    }
    public String getColor() {
        return color;
    }
}

Just write the return value of writer.toString() to a file with HTML extension; opening up this file in the browser now should render the HTML view.

Also, this article might help you out with Velocity in general.

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

If you end up using sleep for inter-thread communication/co-ordination, you are doing it wrong. The entire point of wait/notify/notifyAll is to ensure that you coordinate activites based on some conditions and signal the threads accordingly. In your case it's pretty simple: wait till the shared resource (list in your case) has some data in it. This is done by checking the size of the list in a loop and wait till it's zero. This way you ensure that "consumer" doesn't run before the producer.

Take a look at this SO thread; you would basically need to take that short snippet and convert it to a code which uses an Object array instead of a linked list (manage the get and put indices etc.). The remaining logic remains the same.

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

I don't really use Netbeans but as mentioned in my previous post, you need to run the code in both client and embeddable mode with verbose class loading enabled so find out which drivers are getting used. If what you say is correct, then we should see the same JAR file getting loading in both the scenarios.

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

The error means that the version used to create the db file isn't the same as the derby JAR version you are using to access it. Take a look at this thread and see if updating the JAR file helps. Also, this topic in the Netbeans forum if the previous one doesn't work for you.

To check if you are using the same JAR files in both the modes, dump the class files loaded by the JVM when running the client/embedded code. In both cases, you should see the JAR location from which the Derby class files are getting loaded. Given the error, they should point to different locations. Pass the -verbose:class switch to the JVM before starting it.

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

Diabolik Lovers

This one was insta-drop for me, not just my type of anime I guess.

Unless we get really lucky there don't seem to be any heavy hitters this season among the new stuff. That said, I doubt it'll be a total bomb given some promising second seasons and reboots.

For me, most of the heavy hitters this season are the sequels. Since I don't see any of them in your must-watch list, this season definitely won't sweep you off your feet. For me at least, this season is much better than the last one.

the surprisingly excellent Servant x Service,

This was one surprising indeed. When I looked at the anime synopsis, it seemed like a boring slice of life anime. But a couple of episodes in and I was completely hooked. Comedy done right I would say. Definitely would recommend it to a slice of life and comedy fan.

I'll keep this thread updated as I keep watching stuff, should be fun to measure up the actual viewing experience against expectations. :)

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

I have given up with setting visualvm.IT just failed to read and communicate with my remote application.

It doesn't happen automagically. You need to configure the server JVM or the target application such that it can accept incoming VisualVM JMX requests. Take a look at this thread .

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

Howdy folks,

Apologies for missing out on the previous season (Summer 2013). Summer wasn't really good enough so it completely slipped through the cracks. But now that Fall 2013 is here and the line-up seems to be pretty awesome (I would say one of the best so far, at least for me), I thought I would post my thoughts.

To start off, the Fall 2013 chart can be found at Neragate. For those who are into ticking/live charts, I have stumbled upon a cool site; here is the link for 2013 fall season. Everything I see on the chart sounds pretty cool so I would definitely be giving all of them a try. But the things which are my "must watch" list are as follows:

  1. Kuroko no Basket 2 (the 2nd season of one of my rated 10 anime)
  2. Magi: The Labyrinth of Magic 2 (2nd season of Magi; an action/fantasy anime. Recommended if you are into fantasy or super-power stuff)
  3. Freezing Vibration (recommended if you like High School DXD, To Love Ru etc.)
  4. IS: Infinite Stratos 2 (the 2nd season of IS; harem/comedy theme)
  5. Strike the Blood (ecchi/action/school/fantasy? What more do I need? :))
  6. Golden Time (Comedy and Romance. I'm in)

Other things which I'll keep my eye on:

  1. Phi Brain: Kami no Puzzle 3rd Season (3rd season; will watch because I have seen the first 2)
  2. Yozakura …
~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

Can any one please let me know why Data loss happing while reading big files?

Because your readLine call actually reads in a line and increments the file pointer. In your current code, you are basically discarding every other line. You need to assign the result of readLine to a variable (as shown above) and print it out for getting expected behaviour.

JeffGrigg commented: Excellent focused and correct answer. +6
~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

Look into a library called JAXB. It basically eases the task of XML <-> Java objects conversion. The steps would look something like this:

  1. Analyze the XML file format and create a XSD out of it (this is the difficult part)
  2. Autogenerate classes from XSD using xjc
  3. Load XML file and create objects of out it using the JAXB API
  4. Use JDBC to insert those objects in the database

One tutorial which highlights the steps above is this. Once you have the objects, inserting them into the DB shouldn't be that difficult.

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

You might want to look at NanoHTTPD. Single file web server which supports static serving as per the home page.

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

Minor comments:

head = 0;
tail = head + (size - 1);

head is unnecessary in the second statement.

throw new java.lang.IllegalArgumentException

java.lang is always imported; remove the full qualification.

    if (size == 0)
        throw new java.lang.NullPointerException("size = 0");

NPE is not the correct exception to throw here; maybe NoSuchElementException?

Your sample method is missing a check wherein head+offset can go beyond tail.

More importantly, why are you calling it circular if the capacity is pretty much unbounded + I don't see any sort of wrapping going on here.

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

The server is in C and it uses INADDR_ANY as local address which i always thought was 127.0.0.1 right?

I don't do C but after reading a bit, it seem that INADDR_ANY binds to all available interfaces on the host which should ideally make the server available to any machines on the network. If you are sure that all the servers are "started" in the same way and all the configurations are same, I see no reason why the some hosts should work while other don't. Really strange...

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

The 0.0.0.0 is indeed problematic since it means that the server is not connected to the network. Are you sure you are not using the loopback adapter (localhost or 127.0.0.1) when starting the server? Are all the servers spawned in the same manner?

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

Minor comments aside:

i get a lot of timeout exceptions (in alive pcs) even though my timeout limit is set to 10 seconds.

You mean you get a TimeOutException before 10 secs on some live PCs?

If i force the list to contain a single working pc, i have no problem.

What happens if the list contains one non-working PC?

I also faced a complete freeze on the future.get(); line a couple of times.

Shouldn't be happening unless the client or the server don't coordinate properly and end up waiting infinitely for some data packet to arrive.

Are these servers again written by you? Do all the machines run the same server software? Also, I believe your code needs a bit more logging. Log something when the connection is successful, log the raw response from the server etc. That way you know exactly where the code failed.

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

.my tomcat server has around 128MB runtime memory

Is that 128 MiB just for permagen space or total JVM memory? Unless you explicitly specify permagen size, a small number like I guess 64 MiB is picked up (depending on your exact JDK version, OS version/flavour etc.) which is certainly not enough for "enterprise" Java. So to be clear, permagen memory settings are different from the normal Java heap settings.

For Java versions < JDK 7, the permagen space contains the loaded classes, string pools and other metadata. When you start up a web container, it not only loads the JDK classes but also classes from the Tomcat JAR files which is by no means a small number.

Check the command line in Tomcat you are using to spawn/start the server and search around (using Google) ways to configure permagen for Tomcat.

EDIT: Maybe this link

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

That error means that your XML file doesn't conform to the XML schema specified for that particular file. So basically it's trying to say that http:basicAuthSupplier is not a valid child for the element http:conduit. I haven't worked on CXF but you should have a look at this CXF wiki page or look at the XSD schema to check the valid combination.

peter_budo commented: Well done :) +15
~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

You don't need to call any special function, this sort of functionality is taken care by the JDBC standard. The idea is to specify a special flag called Statement.RETURN_GENERATED_KEYS when creating statements. Look at this answer for more details.

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

URL encoding/decoding rules are different from the HTML ones hence URL decoder should only be used for decoding URLs. HTML encoding uses ampersand encoding (&) whereas URL encoding uses % encoding.

For HTML decoding, the StringEscapeUtils class from Apache commons should be used.

somjit{} commented: good info +0
~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

i don't know how to unescape that sequence into java string..could anyone please help me with this??

That's not how a normal HTML response looks like. If that service is in your control, the first action should be to investigate why you are getting hex encoded HTML entities as opposed to a normal string.

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

umm , im not sure what that meant , the class files were inside the bin , and the bin had itself vanished.

I mean when you realized that you didn't have a bin folder, instead of searching for that folder, you need to search for the .class files. Assuming your Eclipse preference is to build automatically, the class files have to be generated somewhere. If not in bin then in some other folder. Unless of course Eclipse starts acting weird and refuses to generate the class files.

regarding github practices , iv seen some people post onlythe source files , is that good ?

That's the norm; almost always, source control is for source code, config files and scripts. Except in some cases like game development in which assets are checked in too as a backup.

so far , i work alone , and i use eclipse when things get complicated , so i thought of uploading the entire project

Nothing bad about that as long as you know how an ideal project should look like. Just make sure that whenever you are uploading an Eclipse specific project, you:

  • Upload the .project file
  • Upload the .settings folder
  • Skip bin and target folder
  • check if the .classpath file contains absolute paths. If it does, no point in uploading it. Otherwise if it refers relative projects, you can upload it as long as the person checking out that project also checks out the dependent projects.
  • …
somjit{} commented: good ans , me wants to give reputaion , hence forced to make a crappy comment :P +0
~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

On a related note, this is one of the reasons why you build an Ant or a Maven project since that way you don't end up uploading IDE specific stuff. Since you are already on Github, search around for other Java projects and look at how they manage project dependencies + structure using something like Maven or Gradle. The Eclips Maven plugin m2e makes it simple to create a Maven project.

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

You almost never push autogenerated class-files to your repository unless it's in the form of a JAR. Even JARs can be avoided by providing relevant ant files or maven files for that particular project in which case the user can just build the entire thing on his own.

For your particular problem, not much can be said without looking at the actual repository but if your "pushed" project to github had some absolute paths somewhere in the config, there can be issues. There are also Eclipse project configurations available which put your generated class files in a different folder as opposed to the default 'bin' folder. That might be one of the reasons. Instead of searching for 'bin' folder, you should have searched for the .class files.

somjit{} commented: valuable info +3
~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

As such, I believe DW needs to keep it "in check" so to speak :)

I have been there a couple of times now and the dicussion was pretty much in check. Do you have any specific instances where you think the discussion might have moved away from the expected norm? If possible, feel free to PM me or happygeek if you remember any particular instances.

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

Problem is that too many folks jump directly to patterns without understanding how the code looks without them or facing the problems first hand. The line of thinking goes something like this:

"I'm now creating a class which might get used from a lot of other classes, flexibility is a must. Let me use abstract factory to abstract out the creation. Oh and strategy just in case I need to change the behaviour based on composition. But what about default behaviour? Let me just create a singleton for that."

And this is all without writing a single line of code. Now you can see where this is heading to.

Design patters are not bad per se but "if all I have is a hammer, everything looks like a nail" and "flexibility of my classes is of prime importance" leads to nightmares as already mentioned above. This is the reason I strictly ask junior programmers to not put in a patter unless they can show me the problems that the current code is causing and put a solid case of listing down the benefits our project can get by using a particular pattern. Works well in most of the cases...

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

Welcome Jorge! Oh and don't believe deceptikun; he likes to scare the new mods away. ;)

JorgeM commented: no worries, I'm not scared easily +0
~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

Definitely a fresh feel as others have mentioned, good job. Few comments from my side:

  1. The starting post of the thread or the OP's post should stand out a bit more. The first time I opened up a new thread, I was searching for the question since the original question looks like some sort of a text ad. Maybe add borders or highlight it somehow?
  2. The page numbers at the bottom of the thread should be placed just after the last post and not after the reply box. This is a big one because if you are not scrolled to the bottom, you might think that this particular thread just has one page whereas it actually might have a lot.
  3. As others have already mentioned, the front forum page is a bit busy and hard to follow with all the tags and icons. There should be at least an easy visual way to identify new and old (read v/s unread) threads. Also, on the main forum listing page (e.g. Java front page), there is a lot of free space in the middle. Maybe you can make good use of that instead of crowding up the left part of the page?
~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

I get the feeling that these small irreproducible things are what are causing problem to the majority of the folks out there. I wish there was a simple flag to flip and bring back the old vBulletin board so that we could be sure that the new design is or isn't the cause for the drastic drop in post/view count...

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

incredibly usefull to have a language that was both dynamic AND statically typed

Such languages are called optionally typed languages.

I'm not a big fan of such languages since it seems like a half assed attempt though I'm sure many swear by it. The advantages being:

  • Writing dynamic code when you don't care about the types
  • Start type annotating your code when you feel you need them

But the thing is, modern languages are immensely powerful and include a lot of features which cut down on the boilerplate code and make your life easier. That too to an extent that it makes them look like dynamic languages (since you can omit types due to type inference). As an example, consider the following snippet in Scala:

val names = List("sanjay", "vikas", "nick", "david", "alan")

// shortNames: List(nick, alan)
val shortNames = names filter (_.length <= 4)

// lengths: List((sanjay,6), (vikas,5), (nick,4), (david,5), (alan,4))
val lengths = names map (x => (x, x.length))

In the above snippet, the compiler knows that names represents a list of Strings even when you don't specify string anywhere. Similarly, map and filter operations know they are operating on list of strings. I would say that's pretty damn close to a code written in a dynamic language with all the benefits of a type system.

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

Should've used a Dudette.

Agreed.

@pritaeas, why not both a dude and dudette?

That would drive away the dudes looking for a dudette... ;)

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

Strange indeed; have you tried deleting the Netbeans cache directory at $userdir\.netbeans\[version]\var\cache\ or something along those lines?

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

r is an instance of ResizingArrayQueue whereas the display method is part of ResizingCircularArray?

stultuske commented: guess I missed the obvious there :) +14
somjit{} commented: *facepalm* to me. +3
~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

+1; you are correct indeed. I assumed it was a method call. I'll edit my original post to mention that.

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

EDIT: The below explanation assumes someboundmethod is actually called instead of just storing the method reference in d. If d stores the method reference instead of the result of the method call, foo instance will surely hang around as long as d is reachable.

If there's a class called foo and you do d = foo().someboundmethod, will the instance of foo stil be there?

Still around? Maybe.

It is possible that the someboundmethod might add the foo instance to a global collection in which case it might stick around. Something like:

OBJS = []

class Foo(object):

  def somemethod(self):
    OBJS.append(self)

If not the above case, it might still be around but not reachable. Do note that this depends a lot on the Python implementation in consideration so it's safe to assume that as long as an object is referred by some "live" object, it will stick around. If not, it it bound to get garbage collected sooner or later.

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

I would personally start with this for a very high level view or maybe this if you are into whitepaper and stuff.

A more detailed tutorial of JAX-WS
A more detailed tutorial of JAX-RS

In short:

JAX-WS*: Enterprisy web service. Request and responses are in terms of XML payloads/envelopes. Not bound to HTTP; for e.g. you can use JAX-WS with JMS.

JAX-RS: Lightweight alternative to creating web services. HTTP only. Much simpler and recommended if you don't need the fancy stuff or catering to non-HTTP clients.

~s.o.s~ 2,560 Failure as a human Team Colleague Featured Poster

This might be just how bonecp manages the pool i.e. create connections eagerly though that still doesn't explain in the increase from 11 -> 13 given that it already had 11 connections to spare. I suggest you hit the bonecp forums since I'm not aware of how bonecp works to comment on this behaviour.