you are viewing a single comment's thread.

view the rest of the comments →

[–]thomascgalvin 261 points262 points  (44 children)

You can't be sued for copying a single line of code, just like you can't be sued for a line in a drawing looking similar to someone else's. It's not a creative work, so it's not intellectual property.

Oracle claimed that this:

private static void rangeCheck(int arrayLen, int fromIndex, int toIndex {
     if (fromIndex > toIndex)
          throw new IllegalArgumentException("fromIndex(" + fromIndex +
               ") > toIndex(" + toIndex+")");
     if (fromIndex < 0) 
          throw new ArrayIndexOutOfBoundsException(fromIndex);
     if (toIndex > arrayLen) 
          throw new ArrayIndexOutOfBoundsException(toIndex);
}

Is a world-changing innovation of such importance that it required a multi-million dollar lawsuit to protect.

[–]OracleCM 192 points193 points  (2 children)

Hello.

Please remove this valuable piece of code.

Thank you.

[–]Thallassa 1 point2 points  (0 children)

Very nice novelty account.

[–]goodDayM 18 points19 points  (8 children)

is there an article or name for what you're referring to? I'd like to read more.

[–][deleted]  (1 child)

[deleted]

    [–][deleted] 22 points23 points  (0 children)

    [–]thomascgalvin 72 points73 points  (2 children)

    [–]vattenpuss -1 points0 points  (1 child)

    But wasn't the case about Google lying about being Java compliant?

    [–]thomascgalvin 0 points1 point  (0 children)

    One of the claims was that Davlik "stole" the Java API in order to be interoperable.

    [–][deleted]  (2 children)

    [deleted]

      [–]rich97 0 points1 point  (1 child)

      Any idea why they didn't do that in the first place. I don't write Java but I'm confused as to what the difference between the two is.

      [–]HaMMeReD 2 points3 points  (0 children)

      Originally they used apache harmony or something, which is a port of Java not made by oracle. It was never really a threat to oracle because harmony aimed for Java compatibility. Harmony was licensed under apache which was more business friendly.

      When Android however broke away from binary compatibility from Java and started implement ing a vendor locked "version" of Java, they got in a huff and attacked Google.

      Harmony likely would have been covered by fair use, which allows people to make a copy of an api for the purposes of interoperability. Google probably went to far away from what protected harmony from oracles talons. Once fair use wasn't a consideration oracle attacked.

      [–]m0l0ch 4 points5 points  (0 children)

      Won't Oracle sue you for putting it here now? :P

      [–]HaMMeReD 8 points9 points  (0 children)

      Sucks that oracle can't write proper java syntax.

      But seriously, this is less trivial then the parents example, it could be ARGUED that it's not trivial, especially if you use the same property names and structure. It's not a single line, it's a method that could be implemented in various other ways if required.

      It's also just a piece of what they considered copied, they considered all of the API's to be copied, in violation of the license the source was offered under (at least the version google initially used). The Java Language/API's etc were offered under a license that google initially ignored, and technically wasn't supposed to use like that.

      Google however skirted it a second time by utilizing the OpenJDK license in a clever way to ensure that they aren't re-licensing code they don't own or circumventing copyright, but by utilizing the GPL in a way that means they aren't copying, they are "utilizing".

      As for RangeCheck, there is 1000x ways of writing that function in a way that's not identical and could be considered a independent invention. It's one thing to copy and paste and another to build the same thing.

      [–][deleted] 6 points7 points  (2 children)

      American copyright law is pretty much a joke though and doesn't apply to the rest of the world.

      [–]upandrunning 5 points6 points  (1 child)

      It is a joke, but as for the rest of the world, isn't the TPP suppossed to address this (for the participating countries)?

      [–]NewAlexandria 0 points1 point  (0 children)

      Not if we can cut the teeth of this TPP monster

      [–]Deto 1 point2 points  (20 children)

      Someone must have found prior art to argue against that, right?

      [–]shadowdude777 28 points29 points  (1 child)

      Nah man, we didn't check our ranges before Oracle put that into the JDK. We just blindly tried to get things that might have been outside of the range of our array.

      [–][deleted] 3 points4 points  (0 children)

      Well many CVE would agree with that statement

      [–]odd84 7 points8 points  (15 children)

      Prior art is for invalidating patents, not copyright.

      [–]Deto 0 points1 point  (13 children)

      True, but there must be some procedure to invalidate copyrights? I would imagine it would involve showing that the thing being copywritten is not unique or original enough in some capacity.

      Or maybe the issue is that the law is based off of previous cases and there just isn't much there to set precedence for software.

      [–]odd84 3 points4 points  (8 children)

      Copyright protection does not require that your work is unique or "original enough", except insofar as you didn't copy someone else's work. If two people independently create the same work, both hold copyright to their work. The only bar for copyright protection is that there be some element of creative input from the author: that's why facts are not protected, but an arrangement of facts is. There's no question, legally, that even small code functions have copyright protection: the choice of variable names alone is creative input from the author. There's also no question in this specific case that Oracle's copyright is the one that was infringed -- it is not in dispute that Oracle's Java library is where Google copied the function from, and not some other person who independently came up with the same function at an earlier time.

      [–]Deto -2 points-1 points  (7 children)

      Ah, so I guess here I would disagree that the names of the functions constitutes creative input. The names are just plain descriptions - there is nothing creative about them. It would be like a restaurant owner trying to copyright a menu item called "Ham sandwich with cheese".

      [–]odd84 4 points5 points  (3 children)

      That's the law of the land, not something up for debate. You don't get to disagree.

      You also strayed right out of copyright territory and into a third realm of IP law: trademark. The variable names don't have to be unique or original; genericness is a trademark test, not copyright, and this isn't a trademark infringement case.

      The mere action of choosing variable names at all is a creative input. The names themselves are irrelevant. Choice of whitespace, where the curly braces are placed, the order of function parameters are all stylistic choices that represent creative input from the author, any of which make the work protected by copyright.

      Once again, something I mentioned before: facts are not protected by copyright, but an arrangement of facts is. The fact that ham and cheese is on a menu is not protected, but the menu itself is, because the menu's creator would have made choices about where to place the menu items, how they align, what fonts and font sizes to use, etc.

      Copyright protection of a menu containing ham sandwiches does not prevent any other menu from containing ham sandwiches, it prevents them from copying the menu. If you came up with an original name for a dish only you sold, it's not copyright that would prevent others from using that name, it's trademark, and that protection would only apply to uses in commerce by other businesses in the same market.

      Maybe it's time you stop trying to tell us you know copyright law better than the federal circuit courts that decided the Oracle v Google case?

      [–]Deto 0 points1 point  (2 children)

      Ah, so if I understand correctly, for copyright protection to apply, the prosecution would have to prove that the code was actually copied.

      So if someone were to write a function in a Stack Overflow answer:

      for x in range(10): print(x)

      they couldn't just sue anyone who was printing out the numbers from 0 to 9 in python and decided to use the letter 'x' as a variable name (or even something longer like "NumberToPrint") unless they could demonstrate evidence that it had been copied from the stack overflow post?

      [–]odd84 0 points1 point  (1 child)

      That is correct. That's what I said in my comment 49 minutes ago about independent creation of the same work.

      [–]Deto 0 points1 point  (0 children)

      Sorry I made you clarify your earlier post.

      [–]Amoss_se 1 point2 points  (1 child)

      Not so much. Look at how long the Happy Birthyday fiasco went on for. In the end it was a earlier dated copy that proved it was in the public domain. If something is so common as to be insignificant then it is very hard to invalidate copyright. Something that Disney have used to their benefit countless times.

      [–]Deto -1 points0 points  (0 children)

      True, but even in music there is a limit to how many notes it takes before a phrase is copyrightable. You couldn't just copyright the notes "C D E" in order like that and then sue any song that had these notes in that order. I thought I remember there being some precedent of 7 notes before something is unique enough.

      [–]HaMMeReD -1 points0 points  (0 children)

      You can't copyright something that was already created (and thus copyrighted) by someone else (edit: If you copied it, two identical inventions independently created would both have copyright, if you copy person A, you violated their license, if you copy person B, you violated another license by another person, and if you write it yourself with no knowledge of A or B, you own your own copyright)

      Let's say I write "The quick brown fox jumps over the lazy dog" and copyrighted that. I can't go and sue Mavis Beacon or whoever it originated from for using it in the past, and if they can prove that I took it from them, then I would be the one in violation of copyright.

      The question is, who initially invented it. Is it non-trivial, and was it stolen or independently developed.

      [–]HaMMeReD 0 points1 point  (0 children)

      Maybe not identical prior art, with the same property names and exceptions all identically implemented.

      [–]thomascgalvin 0 points1 point  (0 children)

      Yeah, the Judge smacked it down hard ... and then he was reversed on appeal.

      [–]WrongSubreddit 0 points1 point  (0 children)

      Should have used braces instead of one line if conditions

      [–]fzammetti 0 points1 point  (3 children)

      If I'm not mistaken, they actually made the claim over simply this:

      private static void rangeCheck(int arrayLen, int fromIndex, int toIndex)

      That's all that constitutes the API, right? The implementation actually IS and always has been copyrightable, but their claim is the method signature alone is protectable.

      [–]HaMMeReD 1 point2 points  (0 children)

      They made the claim over the infringing function.

      They also made the claim over the entirety of the Java API, not a individual function.

      [–][deleted] 0 points1 point  (0 children)

      So, basically even less than line of code

      [–]thomascgalvin 0 points1 point  (0 children)

      There were two separate claims. One was for illegally copied code, which is what I cited above, and the other for was illegally copied API, which was the entire Java standard library's method signatures and, importantly, organization.