Matt RaibleMatt Raible is a writer with a passion for software. Connect with him on LinkedIn.

The Angular Mini-Book The Angular Mini-Book is a guide to getting started with Angular. You'll learn how to develop a bare-bones application, test it, and deploy it. Then you'll move on to adding Bootstrap, Angular Material, continuous integration, and authentication.

Spring Boot is a popular framework for building REST APIs. You'll learn how to integrate Angular with Spring Boot and use security best practices like HTTPS and a content security policy.

For book updates, follow @angular_book on Twitter.

The JHipster Mini-Book The JHipster Mini-Book is a guide to getting started with hip technologies today: Angular, Bootstrap, and Spring Boot. All of these frameworks are wrapped up in an easy-to-use project called JHipster.

This book shows you how to build an app with JHipster, and guides you through the plethora of tools, techniques and options you can use. Furthermore, it explains the UI and API building blocks so you understand the underpinnings of your great application.

For book updates, follow @jhipster-book on Twitter.

10+ YEARS


Over 10 years ago, I wrote my first blog post. Since then, I've authored books, had kids, traveled the world, found Trish and blogged about it all.
You searched this site for "jdk". 97 entries found.

You can also try this same search on Google.

IDEA seems dumb

I'm going to rant about my issues with IDEA here because it always gets to so much praise in blogs. I like the fact that it opens quickly on OS X. However, every other time I open it, after it spends 10-20 seconds "loading project files," then synchronized local VCS and then the dialog hangs and I can't get rid of "storing local CVS." Closing IDEA fixes the problem usually. Secondly - and this is a new one - I just created/opened a new project (Canoo's WebTest) and it can't find import java.util.Map; What the? You can't find "java" files even though I told you my JDK was in "/usr" (which it should've detected anyway). It's highly likely that I'm the dumb one, but at this very moment it seems that IDEA gets to wear the dunce cap.

Posted in Java at Oct 08 2003, 09:27:54 AM MDT 9 Comments

RE: IDEA vs Eclipse

I love Eclipse and always have. However, it kinda sucks on OS X. It is slow like Marcus says. Actually, it's a LOT snappier on my new PowerBook, but it's still much slower than it is on Windows. On Windows, it runs lickedy split and is by far my favorite IDE - because it *looks* like Windows more than anything. Inspired by Marcus's post, I'm willing to give IDEA another try on my OS X - I probably won't get enough time in the 30 day trial to appreciate it (or switch to it), but I'll make an attempt. BTW, I've actually heard that many of the "IDEA Rules" advocates actually got it for free - at least some OS projects' committers got a free copy. I'm sure if there was a 6 month trial version, and folks actually got addicted to it (like I am with Eclipse), they'd sell more copies. I'd pay for Eclipse right now if it weren't free.

Later: I already have one pet peeve - why can't I install IDEA in an "idea" folder rather than in "IntelliJ-IDEA-3.0.5". I install all my "tools" in /opt/dev/tools (i.e. /opt/dev/tools/eclipse) and this makes it very easy to tar xzf any new versions over old ones - and it just looks better. I hate when installers make you install their apps to a particular directory.

Posted in Java at Sep 25 2003, 07:25:52 AM MDT 20 Comments

Compression Filter Issues - EOFException

I'm having some issues with implementing a Compression Filter in my day-time project. It works fine via the browser (and in AppFuse/Roller), but not in one of my Webtests. I think this is because my response doesn't have anything in it, but who knows. From my log file:

CompressionFilter.doFilter(87) | Unzipped size: 0
CompressionFilter.doFilter(106) | Zipped size: 20

And then the lovely error message from my testcase:

[canoo] java.io.EOFException
[canoo]     at java.util.zip.GZIPInputStream.readUByte(GZIPInputStream.java:200)
[canoo]     at java.util.zip.GZIPInputStream.readUShort(GZIPInputStream.java:190)
[canoo]     at java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:130)
[canoo]     at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:58)
[canoo]     at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:68)
[canoo]     at com.meterware.httpunit.WebResponse.defineRawInputStream(WebResponse.java:617)

I'm thinking I need to close a stream or something, but since it works fine via the browser - I'm stumped! Any ideas are appreciated. I can post the testcase if necessary.

Update: Richard Hill on the Webtest mailing list hooked me up with the solution. It turned out to be a bug in the JDK, which causes issues in HttpUnit. Here's the solution I used to workaround it.

Posted in Java at Jul 10 2003, 04:59:51 PM MDT 2 Comments

RE: J2SE 1.4.2 Released!

Thanks to Karl for tipping me off that JDK 1.4.2 has been released. [Download, Release Notes] Of course, I never would've known, except java.blogs told me. I downloaded, installed and changed my $JAVA_HOME to point to this sucker, then ran all my unit tests (flawlessly). It looks pretty damn good to me - just like an upgrade should be. Now where's J2EE 1.4?!

It doesn't look like Apple pulled off the simultaneous release it was hoping to. BTW, I've been doing a fair amount of development on my Mac lately with Eclipse 3.0 M1 - it's getting much, much better. Steve - if you release a 2 GHz PowerBook - I'll work overtime to buy that sucker.

Posted in Java at Jun 27 2003, 10:00:20 AM MDT 1 Comment

[OS X] Java 1.4.1 Update DP102

While looking for a webcast for Apple's Worldwide Developers Conference, I found that a new version of JDK 1.4 was released yesterday. I doubt I'll install it - especially since I'll have to reinstall OS X to cleanly remove the build. Also, the part about "don't install this on a system with critical data" is a little discouraging - especially when I haven't experienced any bugs in the current JDK 1.4 build I'm running.

Summary: This seed consolidates a number of recent bug fixes to Java 1.4.1 and includes the changes to Java 1.3.1 from the recent Java Oracle bug fix release. The purpose of this seed is to expose the Java 1.4.1 changes to a broad sample of real-world code. While DP101 has undergone only limited testing, it is based on Apple's latest internal builds of Java, which are tested continously.

Warnings: This build has received limited testing and comes with no support. Do not install this on a system with critical data. This build installs over both Java 1.3.1 and Java 1.4.1; you will need to reinstall Mac OS X to cleanly remove this build and revert to an earlier versions of Java. This build is for evaluation purposes only, to determine if critical bugs have been addressed. You cannot distribute this build in any way.

Posted in Java at Jun 22 2003, 09:32:22 PM MDT Add a Comment

How do you iterate your lists?

This seems to be a matter of personal preference, but I'm interested in hearing how other programmers do their loops. Here's how I do it most often:

List users = dao.getUsers();
for (int i=0; i < users.size(); i++) {
    User user = (User) users.get(i);
    // do something with user
}

I've seen others do it with an Iterator, and I've done it this way myself, but for some reason I prefer the for loop:

List users = dao.getUsers();
Iterator userIter = users.iterator();
while (userIter.hasNext()) {
    User user = (User) userIter.next();
    // do something with user
}

I usually add a null check as part of the loop as well. They both seem pretty much the same to me - is one more performant than the other? John Watkinson points out that in JDK 1.5, the for loop will be even easier:

List users = dao.getUsers();
for (User user : list) {
    // do something with user

At least that's how I interpreted it - please correct me if I'm wrong. Also, enlighten me if I should be using an Iterator - or at least let me know what advantages it has over a for loop.

Posted in General at May 12 2003, 04:11:37 PM MDT 6 Comments

Server move should be completed

If you're seeing this post, then chances are that www.raibledesigns.com is resolving correctly for you. It's still not working for me from work, but that could be a proxy server / local DNS server issue. I've moved from the server that crashed all the time to a new one that is hopefully more stable. Thanks Keith!

Also, thanks to the folks that have e-mailed me offering their hosting services - it's greatly appreciated. Hopefully, things will run smoothly on this server and I won't have to move anywhere else. I installed JRockit at work today on both Windows and Linux, and it works so well (not to mention awesome monitoring tools), that I'm going to try to use it on this site. It's a 40MB download (same as Sun's JDK ??), but installs in under a minute.

The only error messages polluting my log file these days is the following. It seems harmless, but that means that we should probably not even be logging it. Anyone know of a solution?

2003-05-07 16:00:10,244 SimpleLog4JLogSystem.logVelocityMessage(181) | 
    VelocimacroProxy.render() : exception VM = #refererDisplayUrl() : 
    ClientAbortException:  java.net.SocketException: Broken pipe

Posted in Roller at May 07 2003, 05:14:03 PM MDT 4 Comments

This site's performance

This site crashes more than a 16-year old trying to pick up the ladies. You can check out all the errors in my catalina.out (3+ MB) file (snapshot from last night). Mostly OutOfMemory errors causing the issues. I'm going to try and configure jikes to run as my JSP compiler, we'll see if that helps. I'd like to try it locally first (on my Win2K machine), but it looks like I have to compile it with the -encoding option to make it work. Ughhh. Why don't they have an encoding-enabled download!?

Posted in Java at Apr 23 2003, 04:36:28 PM MDT 6 Comments

Bug in Ant 1.5.2?

I found out the hard way that there might be a bug in Ant 1.5.2. I'm running the following task as part of appfuse - and it generates a appfuse.zip file, and it's the correct size, but there's nothing in it. I reverted back to Ant 1.5.1 and everything worked fine.

<zip zipfile="${archive.target}.zip">
    <zipfileset prefix="${webapp.name}" dir="${basedir}">
        <patternset id="srcfiles">
            <include name="**"/>           
            <exclude name="build.properties"/>
            <exclude name="database.properties"/>    
            <exclude name="*.log"/>
            <exclude name="*/**.java.txt"/>
            <exclude name="${dist.dir}/**"/>
            <exclude name="${build.dir}/**"/>
        </patternset>
    </zipfileset>
</zip>

This particular problem happened with Cygwin on Windows 2000 using JDK 1.4.1_01.

Posted in Java at Apr 02 2003, 04:59:15 PM MST Add a Comment

JDK 1.4.1 - Memory Leak Bug in StringBuffer.toString()

I use StringBuffer.toString() a fair amount in my code. Did you know there's a significant memory-leak bug in JDK 1.4.1?! Yikes - if you're experiencing memory issues, you might try back-pedalling to 1.4.0.

Posted in Java at Mar 31 2003, 09:46:55 AM MST Add a Comment