)]}'
{
  "commit": "40b80b640a24452fbd914729f1abcebbdf2c8ccc",
  "tree": "dda25a9bb3209eb27ecea79a296d061a41ea35ed",
  "parents": [
    "daba1936adc06ce49afec2f4989c868803dc9a6e"
  ],
  "author": {
    "name": "scottb@google.com",
    "email": "scottb@google.com@8db76d5a-ed1c-0410-87a9-c151d255dfc7",
    "time": "Fri Aug 22 21:54:33 2008 +0000"
  },
  "committer": {
    "name": "scottb@google.com",
    "email": "scottb@google.com@8db76d5a-ed1c-0410-87a9-c151d255dfc7",
    "time": "Fri Aug 22 21:54:33 2008 +0000"
  },
  "message": "Fixes issue #2379; unstable generators should not crash the compiler or hosted mode.\n\n- StandardRebindOracle is retrofitted to always cache rebind results, so that the same input type is never run twice in the same compilation.\n- Doc on PropertyOracle updated to insist on stable results (StaticPropertyOracle does this now, but used to violate this; it would not have been possible to make StandardRebindOracle cache before).\n- CompilationRebindOracle is removed since the caching behavior is now handled by StandardRebindOracle\n- Unit test added to make sure multiple requests of the same type return a stable result.\n\nThis may also speed up hosted mode startup slightly in cases where the same type is requested many times through GWT.create().\n\nReview by: spoon\n\n\ngit-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@3560 8db76d5a-ed1c-0410-87a9-c151d255dfc7\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8f07ad4832e1dc4646a458c7b6d0d00ef570901d",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/core/ext/PropertyOracle.java",
      "new_id": "188cc5a4e1d71f861e314695da3177523a8ed9b9",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/core/ext/PropertyOracle.java"
    },
    {
      "type": "modify",
      "old_id": "0a38598efd34cc3d56bf8ace3c32067f0c56af23",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/GWTCompiler.java",
      "new_id": "beb2f7f16e23abcc8142ccdce294baf0425ec777",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/GWTCompiler.java"
    },
    {
      "type": "modify",
      "old_id": "0ee638c7cca4a29f4b3890b1d3daad6257693489",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/shell/StandardRebindOracle.java",
      "new_id": "3cf0c7f1f516c06f7212b15cecf27c03d161b7ff",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/shell/StandardRebindOracle.java"
    },
    {
      "type": "modify",
      "old_id": "c78dea1dc8b0b61e51f7e5e18faaefcfc24f1f54",
      "old_mode": 33188,
      "old_path": "user/test/com/google/gwt/dev/jjs/CompilerSuite.gwt.xml",
      "new_id": "da8fd472a473ebf944f7e81ae27c61b7f588ead2",
      "new_mode": 33188,
      "new_path": "user/test/com/google/gwt/dev/jjs/CompilerSuite.gwt.xml"
    },
    {
      "type": "modify",
      "old_id": "9cec9d4416475c2050532dbc95b734a17d5214e7",
      "old_mode": 33188,
      "old_path": "user/test/com/google/gwt/dev/jjs/CompilerSuite.java",
      "new_id": "79e0b26ac8f9f7deff0b1c20206e96b442660b36",
      "new_mode": 33188,
      "new_path": "user/test/com/google/gwt/dev/jjs/CompilerSuite.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4ab21ddad265005d38bcfa2bd7aa34e89303540a",
      "new_mode": 33188,
      "new_path": "user/test/com/google/gwt/dev/jjs/UnstableGenerator.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b3b7e54339560b041a894e8171fbf8b3b0824b29",
      "new_mode": 33188,
      "new_path": "user/test/com/google/gwt/dev/jjs/test/UnstableGeneratorTest.java"
    }
  ]
}
