Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Oracle Java Upgrades

Oracle Discontinues Free Java Time Zone Updates 405

New submitter Noel Trout writes "For a long time in the Java world, there has been a free tool called the 'tzupdater' or Time Zone Updater released as a free download first by Sun and then Oracle. This tool can be used to apply a patch to the Java runtime so that time zone information is correct. This is necessary since some time zones in the world are not static and change more frequently than one might think; in general time zone updates can be released maybe 4-6 times a year. The source information backing the Java timezone API comes from the open source Olson timezone database that is also used by many operating systems. For certain types of applications, you can understand that these updates are mission critical. For example, my company operates in the private aviation sector so we need to be able to display the correct local time at airports around the world. So, the interesting part is that Oracle has now decided to only release these updates if you have a Java SE support contract. Being Oracle, such licenses are far from cheap. In my opinion, this is a pretty serious change in stance for Oracle and amounts to killing free Java for certain types of applications, at least if you care about accuracy. We are talking about the core API class java.util.TimeZone. This begs the question, can you call an API free if you have to pay for it to return accurate information? What is the point of such an API? Should the community not expect that core Java classes are fully functional and accurate? I believe it is also a pretty bad move for Java adoption for these types of applications. If my company as a startup 10 years ago would have been presented with such a license fee, we almost certainly could not have chosen Java as our platform as we could not afford it."
This discussion has been archived. No new comments can be posted.

Oracle Discontinues Free Java Time Zone Updates

Comments Filter:
  • by Lehk228 ( 705449 ) on Saturday June 08, 2013 @08:26AM (#43945337) Journal
    it's Time to switch to python
    • by ebno-10db ( 1459097 ) on Saturday June 08, 2013 @08:43AM (#43945403)

      The time to move away from Java was as soon as Oracle bought Sun.

      I don't know if Python is the answer for everyone, and I know changing to a different language is about as big of a pain as there is, but the jig was up after Sun was bought.

      • As someone who was been a .NET developer in C# since it came out, this is welcome news to see Java developers abandoning their platform in droves.

        Sorry to sound harsh, but I heard from so many middle managers and CIOs over the years, "Why don't you use Java?" "I noticed you don't use Java, what's wrong with you?" "What about Java?" "Have you looked into Java?" I had one snarky middle manager buy me a Java book for Christmas one year.

        Sorry, I don't use Java and every day more and more people are sayi
      • by phantomfive ( 622387 ) on Saturday June 08, 2013 @02:37PM (#43947221) Journal
        If you were worried about problems that might happen when different people owned Java, then you should have listened to Richard Stallman and never started using it in the first place.

        As it is, thanks to Stallman and others, there are now open alternatives.
    • by aled ( 228417 )

      it's Time to switch to python

      Sorry, no. Perhaps it was time 10 years ago if ever. Now is too late. Even Google is using less Python these days.

  • Alternative (Score:3, Interesting)

    by Anonymous Coward on Saturday June 08, 2013 @08:27AM (#43945343)

    Do they want to promote an alternative? How does this affect the OpenJDK?

  • by Alain Williams ( 2972 ) <addw@phcomp.co.uk> on Saturday June 08, 2013 @08:34AM (#43945367) Homepage

    The information needed to provide the updates is freely available, so cannot someone else provide the updates ? Just get tzupdater to download from a different place. I am not a Java programmer, so forgive me if I have got the wrong end of the stick.

    Even better change the Java functions to get the information operating system, on Linux the tzdata, then Java is kept up to date as the OS is kept up to date.

    • Perhaps JODA Time could pull it from the OS in Linux or a file otherwise. It's very much what upcoming time and date changes are going to look like anyway and are vastly better than the built-in support. Alternatively, it's quite easy to tweak a couple of the built-ins using their source to do the same and put them in the classpath before the supplied versions. Not pretty, but effective in the short-mid term.

    • by Anonymous Coward on Saturday June 08, 2013 @08:57AM (#43945461)

      Why doesn't java use the operating system to provide that information in the first place? At least on operating systems that provide that sort of information, which isn't just "linux" but pretty much all unices.

      Also, ISTR the source updates maybe twice a year, and is free, so I don't see why java has to be so special. Then again, oracle is a very special company in that regard. Everybody needs this, and in fact needs everybody else to have it too, so it's stupid penny pinching that's going on here.

      And it is very stupid, just like their handling of patches for critical holes turned out to be criminally stupid. It's not like their head honcho needs the money, seeing how he squanders it on airport fines and the like.

      • by ebno-10db ( 1459097 ) on Saturday June 08, 2013 @09:30AM (#43945657)

        Why doesn't java use the operating system to provide that information in the first place?

        Because despite being called a portable language, the real Java approach is a portable environment. I'm not debating whether that's good, bad or indifferent, but that is the approach.

        • Until all the API calls and all the hardware are identical across the various OSes, the only way of making code portable is via a portable environment. All the other languages that I can think of that are write once run most places do something similar. Ultimately, when you have differences in endianness and number and type of registers, you're going to be stuck with portable environments to get code running on all supported platforms with minimal fussing around with machine dependent requirements.

          • by davidbrit2 ( 775091 ) on Saturday June 08, 2013 @10:57AM (#43946117) Homepage
            I have a hard time believing that Java has no problem abstracting an operating system's graphics, sound, console I/O, network I/O, etc. into a portable API, but somehow can't manage the same for timezone info.
            • by unrtst ( 777550 )

              It's not about managing it / being able to do it. It's about what was easiest and most reliable.

              There are plenty of old OS's out there that don't get automatic TZ updates on the OS level. The olsen DB is freely available, but you have to download it and run a couple of commands to get your machine dependent tzdata built. Rather than leaving that up to the OS and sysadmins, they do the compile themselves and provide a tool to grab that copy and put it into your java install.

              It's really not that bad of a way

      • Why doesn't java use the operating system to provide that information in the first place? At least on operating systems that provide that sort of information, which isn't just "linux" but pretty much all unices.

        The problem is Windows. My understanding is that Windows cannot handle date dependant daylight savings rules. For example in 2006, Daylight Savings was extended for the Commonwealth Games in Melbourne and then reverted to the normal rules in 2006. The solution at the time was to patch Windows prior to the Olympics and then patch again at some point in the future.

        KB909915 [microsoft.com] about the change includes these gems of advice:

        • - Do not create future appointments in the overlap period in all successive years, until
        • by FreelanceWizard ( 889712 ) on Saturday June 08, 2013 @12:18PM (#43946555) Homepage

          No. Windows handles DST rules in the registry, so it's perfectly capable of date-dependent DST rule handling. The article discusses those recommendations as a way to avoid problems caused by issues with Outlook and Exchange 2003, both of which have their own unique ways of handling TZ changes (basically, they fail to store TZ information with dates, so TZ changes screw up the display of appointments). The problems were largely addressed in Outlook and Exchange 2007 and completely fixed in the 2010 versions, which keep the appointments in GMT-plus-offset format.

          There's legitimate complaints you can have with the way Windows handles TZ changes -- personally, I'm not a fan of having to install TZ patches from Windows Update and I really dislike how Windows keeps the RTC in local time instead of GMT -- but don't blame it for the failings of antiquated and soon unsupported Office programs.

    • I have always wondered why this is something that couldn't be delegated to the operating system. Does anyone have any ideas? Is this something that could be addressed in OpenJDK? Can we use icu4j instead?

      • by julesh ( 229690 )

        I have always wondered why this is something that couldn't be delegated to the operating system. Does anyone have any ideas? Is this something that could be addressed in OpenJDK? Can we use icu4j instead?

        Java promises applications that run the same wherever you run them. This cannot be achieved by relying on the underlying OS, which might vary substantially in the frequency of updates and/or accuracy of time zone data provided.

        • by mwvdlee ( 775178 )

          Yeah, but since Oracle is breaking that promise already by making paid Java have TZ updates and free Java not, what's the difference? At the very least it could be a fallback mode for free Java.

      • by aled ( 228417 )

        I don't know but I suppose it was for portability across different operating system.

  • Sounds like Oracle doesn't have enough free time on its hands.

    It seems clear to me that Oracle really doesn't want Java except for an easy way to gain control in the mobile interface market. It always seem merely collateral damage from acquiring Sun. The only real attention it seems to have gotten was rebranding. And with Google developing their own compatible engine for Android, Oracle's grand plan is now a pipe dream. Hence their crazed copyright lawsuit against Google for uncopyrightable APIs.

    • Oracle doesn't want Java or he mobile market. Oracle wants money. Lots of money, now and in the future.

  • Cash grab (Score:4, Insightful)

    by Macfox ( 50100 ) * on Saturday June 08, 2013 @08:50AM (#43945425)

    Not surprising. Given the refusal to remove those bloody Java sponsors from the JRE. Piss off the end users and now the developers.

  • IBM to the rescue (Score:5, Informative)

    by Anonymous Coward on Saturday June 08, 2013 @08:55AM (#43945449)

    IBM provides free access to the Olson database updates:

    http://www.ibm.com/developerworks/java/jdk/dst/jtzu.html

    Was this post even necessary?

    http://lmgtfy.com/?q=java+olson+database

    • by ansak ( 80421 )
      I've never heard the name Olson before in relation to timezone updates. Thanks for the enlightenment but yes, this article was at least a little bit necessary, if not as earth shattering as an approaching asteroid.

      cheers...ank
      • by julesh ( 229690 )

        I've never heard the name Olson before in relation to timezone updates. Thanks for the enlightenment but yes, this article was at least a little bit necessary, if not as earth shattering as an approaching asteroid.

        cheers...ank

        OTOH, the original poster clearly had, so why he didn't google for it and find those sources is an interesting question. Or why he hasn't considered alternative approaches (using a 3rd party JRE; using OpenJDK and following the update process described here [freebsd.org], etc. Unless, of course, he's one of the many anti-Java nuts we seem to attract around here.

  • by tony.damato ( 13665 ) on Saturday June 08, 2013 @09:01AM (#43945483)
    Some of our developers have switched to Joda Time classes as they're easier to use that those built into Java proper. They even give instructions on how to manually update the time zone tables. (We didn't develop the code, we're just happy customers): http://joda-time.sourceforge.net/ [sourceforge.net]
    • +1 for joda-time. They effectively solved the entire problem domain of date manipulation for all of the use cases that have come up for me.
      Presumably, they are affected by this change, as well, but the good news is that I'm confident that they'll do something to handle it without my having to do anything besides tick up a dependency version.
    • by caluml ( 551744 )

      Joda Time is brilliant.
      It's a pleasure to use, and obviously was created by people who thought long and hard about it, and had suffered with the problems of the standard Java date/time libraries.

      If you still use Date or Calendar, then check out Joda Time.

    • by codealot ( 140672 ) on Saturday June 08, 2013 @10:17AM (#43945909)

      Yes. We switched 6 years ago and never looked back. The java.util.Calendar classes in Java are pretty horribly broken--usability aside, they get some key calculations wrong, like ISO week of year.

      The best part is that Joda doesn't need or use the time zone database bundled into Java SE, so they aren't affected at all by Oracle's support policies.

  • What to do... (Score:5, Insightful)

    by ansak ( 80421 ) on Saturday June 08, 2013 @09:01AM (#43945485) Homepage Journal
    So, who is surprised by Oracle's move here? Nobody with a eyes and a brain. Oracle just doesn't know what to do with a community.
    Does this make Microsoft or C# look so great? No way! They started out less free than Oracle is now and haven't really changed.
    Why do I develop in Java (I also know C, C++ [and the assembler code they generate], Python, SQL [MS and non-MS dialects] -- so why choose Java?)? Because I want to write programs for my slightly less shackled Android phone.
    And the next plan of action is...?

    There are a bunch of options... for starters, google the problem. Next, just wait: some bright spark will put out a tool that uses local time zone info (configurable) to update some Java installation's (configurable) idea of time zones automatically (or not, configurable).

    It happened with MySQL, it'll happen with Java. "The more you tighten your grip, the more star systems will slip through your fingers."

    Douglas Adams' fictional book cover still has the right initial instruction: "Don't Panic!"

    cheers...ank
  • I was about to suggest openjdk, but there's no telling what jre your customers will use unless you bundle the jre in (and you make your program update the jre).
    • by aled ( 228417 )

      How this impacts openjdk? does it uses the same Olsen timezone data or has another tool for updating it?

  • Should the community not expect that core Java classes are fully functional and accurate?

    That's capitalism at work. Now maybe Google can come to the rescue by re-implementing all Java APIs in Dalvik (Android), after which they (Google), can push for wider desktop/server Dalvik adoption.

    • by julesh ( 229690 )

      Should the community not expect that core Java classes are fully functional and accurate?

      That's capitalism at work. Now maybe Google can come to the rescue by re-implementing all Java APIs in Dalvik (Android), after which they (Google), can push for wider desktop/server Dalvik adoption.

      ROTFLMAO.

      Even APIs that are supposed to work in Dalvik are frequently barely functional. SimpleDateFormat, for example, doesn't correctly parse many strings with textual timezone names (e.g. "BST"). Google would have a *very* long way to go in order to get it accepted as a replacement for desktop or server Java.

  • DNS is a great protocol for distributing a relatively small piece of infrequently changing information to a very large number of clients. It has a global infrastructure of caches, supports delegation of authority. Sounds like a good match.

    • by XNormal ( 8617 )

      Not to mention great support for firewall traversal. It gets even into many places that HTTP does not.

    • by dougmc ( 70836 )

      You aren't seriously suggesting that we replace timezone data with DNS lookups, are you?

      TZ data does change often -- the summary itself says 4-6 times a year -- but not nearly often enough that doing it via DNS or anything similar makes sense. And not every application has 100% Internet access -- many have 0%, and even those that usually have access don't have it 100% of the time (but instead 99.999...%).

      DNS doesn't have a provision for "well, I had data, but it's a few days out of date, and I can't seem t

  • Considering that Java appears to be a flimsy screen door in any company's firewall, I would think that most SANE organizations would've started moving off of that platform YEARS ago...

  • by EmperorOfCanada ( 1332175 ) on Saturday June 08, 2013 @10:00AM (#43945819)
    Java lost me many years ago for various reasons. But not using Java was more of a gut feeling as opposed to a well thought out plan. But now between the this craziness and the non stop drip drip of security flaws I have now moved into the camp that anyone using Java on a new project is just drinking the kool-aid. With Oracle at the helm you just know they have a spreadsheet with a time-table for monetizing Java harder and harder as time moves forward.

    My guess is that Oracle has seen the writing on the wall that many business organizations are solidly Java and can afford any "minor" fees involved. What they are missing is that many university CS departments are dumping Java in favor of Python as Python is becoming the defacto language of academia. My prediction is that Java will ever so slowly fade as it is ensconced in the business world and isn't going anywhere there. But that the cool kids will see it as their grandfather's language and actively avoid it. I am not suggesting that Python will replace Java just that with CS students not giving a crap about Java they won't choose it for new projects.

    One thing that has long annoyed me about Java progammers is this whole, "Let's wrap every damn thing in a object." Then you end up with an architecture that looks like the traveling salesman problem done by someone on LSD.
    • Re: (Score:3, Informative)

      by codealot ( 140672 )

      Java gets a bad rap (and Oracle doesn't help) but there's nothing wrong with it per se. If I had the choice of starting a project in C, C++ or Java I'd always pick Java--call it obsolete if you want but those alternatives are archaic. (And I'm not fully sold on interpreters languages either, partly because my applications are very sensitive to runtime performance and memory overhead. Are the JIT compilers for Python et al any good?)

      The security exploits are in the Java plugin. I don't care much about th

      • If I had the choice of starting a project in C, C++ or Java I'd always pick Java--call it obsolete if you want but those alternatives are archaic.

        But are they? Between C++ and Java, only one language has anonymous functions with closure semantics (lambdas) today. Guess which one.

        my applications are very sensitive to runtime performance and memory overhead.

        If that is the case - especially the part about memory overhead - Java would be a horrible choice. The lack of guaranteed-stack-allocated value types other than primitives makes it very hard to write large apps with predictable memory usage.

    • One thing that has long annoyed me about Java progammers is this whole, "Let's wrap every damn thing in a object."

      Java was created when the current fad was "OO is the One True Paradigm". With a big enough hammer you can get any shaped peg to fit into a round hole. Alternatively you could choose a paradigm that fit the problem, but that risks being impure.

  • How to update TZs (Score:5, Informative)

    by Dj ( 224 ) on Saturday June 08, 2013 @10:33AM (#43945999) Homepage

    Firstly, Oracle are still updating timezones as always in updates to the JDK/JRE.

    From an old Oracle post though there is this guide

    https://blogs.oracle.com/coffeys/entry/want_the_latest_tzdata_support

    Which breaks down the process for folks who want to build their own TZ updating tool.

  • by Anonymous Coward on Saturday June 08, 2013 @10:41AM (#43946035)

    This begs the question, can you call an API free if you have to pay for it to return accurate information?

    No it does not beg the question.

    What is "Begging the Question?"
    "Begging the question" is a form of logical fallacy in which a statement or claim is assumed to be true without evidence other than the statement or claim itself. When one begs the question, the initial assumption of a statement is treated as already proven without any logic to show why the statement is true in the first place.

    A simple example would be "I think he is unattractive because he is ugly." The adjective "ugly" does not explain why the subject is "unattractive" -- they virtually amount to the same subjective meaning, and the proof is merely a restatement of the premise. The sentence has begged the question.

    What is it Not?
    To beg the question does not mean "to raise the question." (e.g. "It begs the question, why is he so dumb?") This is a common error of usage made by those who mistake the word "question" in the phrase to refer to a literal question. Sadly, the error has grown more and more common with time, such that even journalists, advertisers, and major mass media entities have fallen prey to "BTQ Abuse."

    While descriptivists and other such laissez-faire linguists are content to allow the misconception to fall into the vernacular, it cannot be denied that logic and philosophy stand to lose an important conceptual label should the meaning of BTQ become diluted to the point that we must constantly distinguish between the traditional usage and the erroneous "modern" usage. This is why we fight

  • Java's been as unsexy as a leaky toilet for a long time...

  • by reanjr ( 588767 ) on Saturday June 08, 2013 @11:37AM (#43946319) Homepage

    Own up to your company's bad decisions, bite the bullet, and STOP USING PROPRIETARY SOFTWARE!!!

    Seriously, you people who complain about all your own bad decisions are really getting on my nerves. Java was a bad idea 10 years ago even without the time restriction. Why? Because they throw in a time restriction whenever the fuck they want. Your company was stupid enough to be duped.

BLISS is ignorance.

Working...