[gwt-contrib] Re: Fixes tests broken due to mis-use of class meta data. (issue786801)

2010-08-19 Thread Ray Ryan
Still failing. :-(

On Thu, Aug 19, 2010 at 9:09 PM, Ray Ryan  wrote:

> Actually, the tests are still running. I'll ping you when they pass.
>
>
> On Thu, Aug 19, 2010 at 9:08 PM,  wrote:
>
>> Reviewers: cromwellian,
>>
>> Description:
>> Fixes tests broken due to mis-use of class meta data.
>>
>> Review by: cromwell...@google.com
>>
>> Please review this at http://gwt-code-reviews.appspot.com/786801/show
>>
>> Affected files:
>>  M
>> user/src/com/google/gwt/requestfactory/client/impl/DeltaValueStoreJsonImpl.java
>>  M user/src/com/google/gwt/requestfactory/client/impl/RecordImpl.java
>>  M user/src/com/google/gwt/requestfactory/client/impl/RecordJsoImpl.java
>>  M user/src/com/google/gwt/requestfactory/client/impl/RecordSchema.java
>>  M user/src/com/google/gwt/requestfactory/client/impl/RecordToTypeMap.java
>>  M
>> user/src/com/google/gwt/requestfactory/client/impl/RequestFactoryJsonImpl.java
>>  M
>> user/src/com/google/gwt/requestfactory/rebind/RequestFactoryGenerator.java
>>  M
>> user/test/com/google/gwt/requestfactory/client/impl/DeltaValueStoreJsonImplTest.java
>>  M
>> user/test/com/google/gwt/requestfactory/client/impl/SimpleBazRecordImpl.java
>>  M
>> user/test/com/google/gwt/requestfactory/client/impl/SimpleFooRecordImpl.java
>>
>>
>>
>

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors

[gwt-contrib] Re: Fixes tests broken due to mis-use of class meta data. (issue786801)

2010-08-19 Thread Ray Ryan
Actually, the tests are still running. I'll ping you when they pass.

On Thu, Aug 19, 2010 at 9:08 PM,  wrote:

> Reviewers: cromwellian,
>
> Description:
> Fixes tests broken due to mis-use of class meta data.
>
> Review by: cromwell...@google.com
>
> Please review this at http://gwt-code-reviews.appspot.com/786801/show
>
> Affected files:
>  M
> user/src/com/google/gwt/requestfactory/client/impl/DeltaValueStoreJsonImpl.java
>  M user/src/com/google/gwt/requestfactory/client/impl/RecordImpl.java
>  M user/src/com/google/gwt/requestfactory/client/impl/RecordJsoImpl.java
>  M user/src/com/google/gwt/requestfactory/client/impl/RecordSchema.java
>  M user/src/com/google/gwt/requestfactory/client/impl/RecordToTypeMap.java
>  M
> user/src/com/google/gwt/requestfactory/client/impl/RequestFactoryJsonImpl.java
>  M
> user/src/com/google/gwt/requestfactory/rebind/RequestFactoryGenerator.java
>  M
> user/test/com/google/gwt/requestfactory/client/impl/DeltaValueStoreJsonImplTest.java
>  M
> user/test/com/google/gwt/requestfactory/client/impl/SimpleBazRecordImpl.java
>  M
> user/test/com/google/gwt/requestfactory/client/impl/SimpleFooRecordImpl.java
>
>
>

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors

[gwt-contrib] Fixes tests broken due to mis-use of class meta data. (issue786801)

2010-08-19 Thread rjrjr

Reviewers: cromwellian,

Description:
Fixes tests broken due to mis-use of class meta data.

Review by: cromwell...@google.com

Please review this at http://gwt-code-reviews.appspot.com/786801/show

Affected files:
  M  
user/src/com/google/gwt/requestfactory/client/impl/DeltaValueStoreJsonImpl.java

  M user/src/com/google/gwt/requestfactory/client/impl/RecordImpl.java
  M user/src/com/google/gwt/requestfactory/client/impl/RecordJsoImpl.java
  M user/src/com/google/gwt/requestfactory/client/impl/RecordSchema.java
  M user/src/com/google/gwt/requestfactory/client/impl/RecordToTypeMap.java
  M  
user/src/com/google/gwt/requestfactory/client/impl/RequestFactoryJsonImpl.java
  M  
user/src/com/google/gwt/requestfactory/rebind/RequestFactoryGenerator.java
  M  
user/test/com/google/gwt/requestfactory/client/impl/DeltaValueStoreJsonImplTest.java
  M  
user/test/com/google/gwt/requestfactory/client/impl/SimpleBazRecordImpl.java
  M  
user/test/com/google/gwt/requestfactory/client/impl/SimpleFooRecordImpl.java



--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


Re: [gwt-contrib] Re: chrome broken

2010-08-19 Thread Pascal Patry
On Thursday, August 19, 2010 23:50:44 Ray Cromwell wrote:
> That's interesting, because Longs are supposed to be serialized as strings
> not JSON numbers, I'll have to check the server code.  Would you mind
> posting the Request interface method definition? Does the class referenced
> by @Service actually return a Long/long?

Sure, here it is:
RequestObject countUsers(final String userSession);

And its current handler:
public static Long countUsers(final String userSession) {
return 3L;
}

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors


Re: [gwt-contrib] Re: chrome broken

2010-08-19 Thread Ray Cromwell
That's interesting, because Longs are supposed to be serialized as strings
not JSON numbers, I'll have to check the server code.  Would you mind
posting the Request interface method definition? Does the class referenced
by @Service actually return a Long/long?

-Ray

On Thu, Aug 19, 2010 at 2:00 PM, Pascal Patry  wrote:

> On Thursday, August 19, 2010 16:36:36 Ray Cromwell wrote:
> > Could you use the Chrome Inspector to post the JSON payload that came
> back?
>
> Sure, the response that fails on the client side is:
> {"result":3,"related":{}}
>
> The request here was a RequestObject and I do expect 3 to be the
> response of this request.
>
> --
> http://groups.google.com/group/Google-Web-Toolkit-Contributors
>

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors

[gwt-contrib] [google-web-toolkit] r8587 committed - Add support for Record types as method params in RequestFactory. Misc...

2010-08-19 Thread codesite-noreply

Revision: 8587
Author: rj...@google.com
Date: Thu Aug 19 17:13:42 2010
Log: Add support for Record types as method params in RequestFactory.  Misc
bug fixes.

Patch by cromwell...@google.com
Review by rj...@google.com, amitman...@google.com

http://gwt-code-reviews.appspot.com/767802

Review by: amitman...@google.com
http://code.google.com/p/google-web-toolkit/source/detail?r=8587

Modified:
  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/server/domain/Report.java
  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/RecordJsoImpl.java
  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/RecordToTypeMap.java
  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/RequestFactoryJsonImpl.java
  
/trunk/user/src/com/google/gwt/requestfactory/rebind/RequestFactoryGenerator.java
  
/trunk/user/src/com/google/gwt/requestfactory/server/JsonRequestProcessor.java

 /trunk/user/src/com/google/gwt/requestfactory/shared/RequestFactory.java
 /trunk/user/test/com/google/gwt/requestfactory/RequestFactorySuite.java
  
/trunk/user/test/com/google/gwt/requestfactory/client/impl/DeltaValueStoreJsonImplTest.java

 /trunk/user/test/com/google/gwt/valuestore/ValueStoreSuite.java
 /trunk/user/test/com/google/gwt/valuestore/client/RequestFactoryTest.java
 /trunk/user/test/com/google/gwt/valuestore/server/SimpleBar.java
 /trunk/user/test/com/google/gwt/valuestore/server/SimpleFoo.java
 /trunk/user/test/com/google/gwt/valuestore/shared/SimpleBarRequest.java
 /trunk/user/test/com/google/gwt/valuestore/shared/SimpleFooRequest.java

===
---  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/server/domain/Report.java	 
Fri Aug 13 14:38:39 2010
+++  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/server/domain/Report.java	 
Thu Aug 19 17:13:42 2010

@@ -436,6 +436,10 @@
   em.close();
 }
   }
+
+  public void setApprovedSupervisor(Employee reporter) {
+approvedSupervisorKey = reporter == null ? null : reporter.getId();
+  }

   public void setApprovedSupervisorKey(Long approvedSupervisorKey) {
 this.approvedSupervisorKey = approvedSupervisorKey;
===
---  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/RecordJsoImpl.java	 
Wed Aug 18 19:31:21 2010
+++  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/RecordJsoImpl.java	 
Thu Aug 19 17:13:42 2010

@@ -82,7 +82,10 @@
 Integer version = jso.get(Record.version);
 final RecordSchema schema = jso.getSchema();

-return create(id, version, schema);
+RecordJsoImpl copy = create(id, version, schema);
+copy.setRequestFactory(jso.getRequestFactory());
+copy.setValueStore(jso.getValueStore());
+return copy;
   }

   public static native RecordJsoImpl fromJson(String json) /*-{
@@ -310,10 +313,12 @@
   setBoolean(property.getName(), ((Boolean) value).booleanValue());
 }

-if (value instanceof Record) {
-  setString(property.getName(),
-   
getRequestFactory().getSchema(value.getClass().getName()).getToken().getName()

-  + "-" + String.valueOf(((Record) value).getId()));
+if (value instanceof RecordImpl) {
+  RequestFactoryJsonImpl requestFactory = getRequestFactory();
+  RecordSchema schema = ((RecordImpl)value).getSchema();
+  Class token = schema.getToken();
+  setString(property.getName(), ((RecordImpl) value).getUniqueId());
+  return;
 }

 throw new UnsupportedOperationException(
===
---  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/RecordToTypeMap.java	 
Fri Aug 13 14:38:39 2010
+++  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/RecordToTypeMap.java	 
Thu Aug 19 17:13:42 2010

@@ -27,6 +27,6 @@
  * Record class to its internal "type" representation.
  */
 public interface RecordToTypeMap {
-  RecordSchema getType(Class  
recordClass);

+   RecordSchema getType(Class recordClass);
   RecordSchema getType(String token);
 }
===
---  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/RequestFactoryJsonImpl.java	 
Wed Aug 18 15:12:56 2010
+++  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/RequestFactoryJsonImpl.java	 
Thu Aug 19 17:13:42 2010

@@ -68,10 +68,10 @@

   private EventBus eventBus;

-  public com.google.gwt.valuestore.shared.Record create(
-  Class token, RecordToTypeMap recordToTypeMap) {
-
-RecordSchema schema = recordToTypeMap.getType(token);
+  public  R create(Class token,
+  RecordToTypeMap recordToTypeMap) {
+
+RecordSchema schema = recordToTypeMap.getType(token);
 if (schema == null) {
   throw new IllegalArgumentException("Unknown proxy type: " + token);
 }
@@ -97,7 +97,7 @@
 wireLogger.finest("Response received");
 if (200 == response.getStatusCode()) {
   String text = response.getText();
-  ((AbstractRequest) requestObject).handleResponseText(text);
+  ((Abs

[gwt-contrib] [google-web-toolkit] r8586 committed - Remove the unnecessary suppress warning...

2010-08-19 Thread codesite-noreply

Revision: 8586
Author: amitman...@google.com
Date: Thu Aug 19 15:11:58 2010
Log: Remove the unnecessary suppress warning

Patch by: amitmanjhi
Review by: rjrjr

http://code.google.com/p/google-web-toolkit/source/detail?r=8586

Modified:
 /trunk/user/src/com/google/gwt/app/place/AbstractRecordEditActivity.java

===
---  
/trunk/user/src/com/google/gwt/app/place/AbstractRecordEditActivity.java	 
Thu Aug 19 14:57:33 2010
+++  
/trunk/user/src/com/google/gwt/app/place/AbstractRecordEditActivity.java	 
Thu Aug 19 15:11:58 2010

@@ -49,7 +49,6 @@
   private final PlaceController placeController;

   private R record;
-  @SuppressWarnings("unused")
   private Long futureId;
   private Display display;

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Re: ant test needs these jars (issue785801)

2010-08-19 Thread nchalko


http://gwt-code-reviews.appspot.com/785801/diff/1/2
File user/build.xml (right):

http://gwt-code-reviews.appspot.com/785801/diff/1/2#newcode115
user/build.xml:115: 
This line is probably no longer needed.

http://gwt-code-reviews.appspot.com/785801/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] ant test needs these jars (issue785801)

2010-08-19 Thread kjin

Reviewers: Nick Chalko,

Description:
ant test needs these jars

Review by: ncha...@google.com

Please review this at http://gwt-code-reviews.appspot.com/785801/show

Affected files:
  M user/build.xml


Index: user/build.xml
===
--- user/build.xml  (revision 8568)
+++ user/build.xml  (working copy)
@@ -59,6 +59,9 @@
 
 location="${gwt.tools.lib}/easymock/easymockclassextension.jar"/>

 
+location="${gwt.tools.lib}/javax/validation/validation-api-1.0.0.GA.jar" />
+location="${gwt.tools.lib}/javax/validation/validation-api-1.0.0.GA-sources.jar"  
/>
+location="${gwt.tools}/redist/json/r2_20080312/json-1.5.jar" />

 
   



--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] [google-web-toolkit] r8585 committed - rollback of Introduces ValueListBox, due to test failures.

2010-08-19 Thread codesite-noreply

Revision: 8585
Author: rj...@google.com
Date: Thu Aug 19 14:57:33 2010
Log: rollback of Introduces ValueListBox, due to test failures.

http://code.google.com/p/google-web-toolkit/source/detail?r=8585

Added:
 /trunk/user/src/com/google/gwt/app/client/ProxyBox.java
 /trunk/user/src/com/google/gwt/app/client/ProxyIdRenderer.java
 /trunk/user/src/com/google/gwt/app/client/ProxyParser.java
 /trunk/user/src/com/google/gwt/app/client/ProxyRenderer.java
 /trunk/user/src/com/google/gwt/app/client/ReadonlyProxyBox.java
Deleted:
  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeRenderer.java

 /trunk/user/src/com/google/gwt/app/place/ProxyRenderer.java
 /trunk/user/src/com/google/gwt/user/client/ui/ValueListBox.java
 /trunk/user/test/com/google/gwt/user/client/ui/ValueListBoxTest.java
Modified:
 /trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/client/Scaffold.java
  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/client/ScaffoldMobile.java
  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeDetailsView.java
  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeEditActivity.java
  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeEditView.java
  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeEditView.ui.xml
  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeListView.java
  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportDetailsView.java
  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportEditActivity.java
  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportEditView.java
  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportEditView.ui.xml
  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportListView.java

 /trunk/user/src/com/google/gwt/app/client/EditorSupport.java
 /trunk/user/src/com/google/gwt/app/place/AbstractRecordEditActivity.java
 /trunk/user/src/com/google/gwt/app/place/AbstractRecordListActivity.java
 /trunk/user/src/com/google/gwt/app/place/AbstractRecordListView.java
 /trunk/user/src/com/google/gwt/app/place/PropertyColumn.java
 /trunk/user/src/com/google/gwt/app/place/PropertyView.java
 /trunk/user/src/com/google/gwt/app/rebind/EditorSupportGenerator.java
 /trunk/user/src/com/google/gwt/user/client/ui/HasConstrainedValue.java
 /trunk/user/src/com/google/gwt/user/client/ui/ValuePicker.java
 /trunk/user/test/com/google/gwt/requestfactory/server/SimpleFoo.java
 /trunk/user/test/com/google/gwt/user/UISuite.java
 /trunk/user/test/com/google/gwt/user/client/ui/ValueBoxBaseTest.java

===
--- /dev/null
+++ /trunk/user/src/com/google/gwt/app/client/ProxyBox.java	Thu Aug 19  
14:57:33 2010

@@ -0,0 +1,43 @@
+/*
+ * Copyright 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may  
not
+ * use this file except in compliance with the License. You may obtain a  
copy of

+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
WITHOUT

+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations  
under

+ * the License.
+ */
+package com.google.gwt.app.client;
+
+import com.google.gwt.dom.client.Document;
+import com.google.gwt.user.client.ui.ValueBox;
+import com.google.gwt.valuestore.shared.Record;
+
+/**
+ * Experimental API: This class is still under  
rapid

+ * development, and is very likely to be deleted. Use it at your own risk.
+ * 
+ * 
+ * A ValueBox that uses {...@link com.google.gwt.app.client.ProxyParser} and
+ * {...@link com.google.gwt.app.client.ProxyRenderer}.
+ *
+ * @param  a proxy record
+ */
+public class ProxyBox extends ValueBox {
+
+  public ProxyBox() {
+super(Document.get().createTextInputElement(),  
ProxyRenderer.instance(),

+ProxyParser.instance());
+  }
+
+  public T getValue() {
+// Until a sensible ProxyParser can be written
+return null;
+  }
+}
===
--- /dev/null
+++ /trunk/user/src/com/google/gwt/app/client/ProxyIdRenderer.java	Thu Aug  
19 14:57:33 2010

@@ -0,0 +1,49 @@
+/*
+ * Copyright 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may  
not
+ * use this file except in compliance with the License. You may obtain a  
copy of

+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
WITHOUT

+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing 

[gwt-contrib] Re: Tightened up datanucleus paths to include only **/domain/*.class (issue776802)

2010-08-19 Thread rjrjr

LGTM

http://gwt-code-reviews.appspot.com/776802/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Tightened up datanucleus paths to include only **/domain/*.class (issue776802)

2010-08-19 Thread cramsdale

Reviewers: Ray Ryan,

Description:
Tightened up datanucleus paths to include only **/domain/*.class

Merged over a few remaining changes from bikeshed


Please review this at http://gwt-code-reviews.appspot.com/776802/show

Affected files:
  M samples/expenses/pom.xml
  M  
samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ExpenseDetails.java
  M  
samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ExpenseList.java
  M  
samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/MobileExpenseList.java
  M  
samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/MobileReportList.java



--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] [google-web-toolkit] r8584 committed - Doing an important TODO in RecordEditActivity....

2010-08-19 Thread codesite-noreply

Revision: 8584
Author: amitman...@google.com
Date: Thu Aug 19 14:35:19 2010
Log: Doing an important TODO in RecordEditActivity.

Patch by: amitmanjhi
Review by: rjrjr

http://code.google.com/p/google-web-toolkit/source/detail?r=8584

Modified:
 /trunk/user/src/com/google/gwt/app/place/AbstractRecordEditActivity.java

===
---  
/trunk/user/src/com/google/gwt/app/place/AbstractRecordEditActivity.java	 
Thu Aug 19 14:03:46 2010
+++  
/trunk/user/src/com/google/gwt/app/place/AbstractRecordEditActivity.java	 
Thu Aug 19 14:35:19 2010

@@ -118,33 +118,23 @@
 }
 boolean hasViolations = false;

-// TODO(amit) at the moment we only get one response, and futures  
are
-// buggy. So forcing the issue for now, but the more involved code  
may

-// have to come back when bugs are fixed
-assert response.size() == 1;
-SyncResult syncResult = response.iterator().next();
-record = cast(syncResult.getRecord());
-if (syncResult.hasViolations()) {
-  hasViolations = true;
-  view.showErrors(syncResult.getViolations());
-}
-// for (SyncResult syncResult : response) {
-// Record syncRecord = syncResult.getRecord();
-// if (creating) {
-// if (futureId == null | 
| !futureId.equals(syncResult.getFutureId())) {

-// continue;
-// }
-// record = cast(syncRecord);
-// } else {
-// if (!syncRecord.getId().equals(record.getId())) {
-// continue;
-// }
-// }
-// if (syncResult.hasViolations()) {
-// hasViolations = true;
-// view.showErrors(syncResult.getViolations());
-// }
-// }
+ for (SyncResult syncResult : response) {
+  Record syncRecord = syncResult.getRecord();
+  if (creating) {
+if (futureId == null | 
| !futureId.equals(syncResult.getFutureId())) {

+  continue;
+}
+record = cast(syncRecord);
+  } else {
+if (!syncRecord.getId().equals(record.getId())) {
+  continue;
+}
+  }
+  if (syncResult.hasViolations()) {
+hasViolations = true;
+view.showErrors(syncResult.getViolations());
+  }
+}
 if (!hasViolations) {
   exit(true);
 } else {

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Make xsiframe linker use a .js file for hosted mode so that cross site hosted mode will work (issue784801)

2010-08-19 Thread unnurg

Reviewers: Lex,

Description:
Make xsiframe linker use a .js file for hosted mode so that cross site
hosted mode will work


Please review this at http://gwt-code-reviews.appspot.com/784801/show

Affected files:
  A dev/core/src/com/google/gwt/core/ext/linker/impl/hosted.js
  D dev/core/src/com/google/gwt/core/ext/linker/impl/hosted_xsiframe.html
  M dev/core/src/com/google/gwt/core/linker/CrossSiteIframeLinker.java
  M dev/core/src/com/google/gwt/core/linker/CrossSiteIframeTemplate.js


--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] [google-web-toolkit] r8583 committed - Introduces ValueListBox, and uses it in Scaffold to pick...

2010-08-19 Thread codesite-noreply

Revision: 8583
Author: rj...@google.com
Date: Thu Aug 19 14:03:46 2010
Log: Introduces ValueListBox, and uses it in Scaffold to pick
employees.

Review at http://gwt-code-reviews.appspot.com/780802

Review by: jlaba...@google.com
http://code.google.com/p/google-web-toolkit/source/detail?r=8583

Added:
  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeRenderer.java

 /trunk/user/src/com/google/gwt/app/place/ProxyRenderer.java
 /trunk/user/src/com/google/gwt/user/client/ui/ValueListBox.java
 /trunk/user/test/com/google/gwt/user/client/ui/ValueListBoxTest.java
Deleted:
 /trunk/user/src/com/google/gwt/app/client/ProxyBox.java
 /trunk/user/src/com/google/gwt/app/client/ProxyIdRenderer.java
 /trunk/user/src/com/google/gwt/app/client/ProxyParser.java
 /trunk/user/src/com/google/gwt/app/client/ProxyRenderer.java
 /trunk/user/src/com/google/gwt/app/client/ReadonlyProxyBox.java
Modified:
 /trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/client/Scaffold.java
  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/client/ScaffoldMobile.java
  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeDetailsView.java
  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeEditActivity.java
  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeEditView.java
  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeEditView.ui.xml
  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeListView.java
  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportDetailsView.java
  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportEditActivity.java
  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportEditView.java
  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportEditView.ui.xml
  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportListView.java

 /trunk/user/src/com/google/gwt/app/client/EditorSupport.java
 /trunk/user/src/com/google/gwt/app/place/AbstractRecordEditActivity.java
 /trunk/user/src/com/google/gwt/app/place/AbstractRecordListActivity.java
 /trunk/user/src/com/google/gwt/app/place/AbstractRecordListView.java
 /trunk/user/src/com/google/gwt/app/place/PropertyColumn.java
 /trunk/user/src/com/google/gwt/app/place/PropertyView.java
 /trunk/user/src/com/google/gwt/app/rebind/EditorSupportGenerator.java
 /trunk/user/src/com/google/gwt/user/client/ui/HasConstrainedValue.java
 /trunk/user/src/com/google/gwt/user/client/ui/ValuePicker.java
 /trunk/user/test/com/google/gwt/requestfactory/server/SimpleFoo.java
 /trunk/user/test/com/google/gwt/user/UISuite.java
 /trunk/user/test/com/google/gwt/user/client/ui/ValueBoxBaseTest.java

===
--- /dev/null
+++  
/trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeRenderer.java	 
Thu Aug 19 14:03:46 2010

@@ -0,0 +1,46 @@
+/*
+ * Copyright 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may  
not
+ * use this file except in compliance with the License. You may obtain a  
copy of

+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
WITHOUT

+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations  
under

+ * the License.
+ */
+package com.google.gwt.sample.expenses.gwt.ui.employee;
+
+import com.google.gwt.app.place.ProxyRenderer;
+import com.google.gwt.sample.expenses.gwt.request.EmployeeRecord;
+
+/**
+ * Renders {...@link EmployeeRecord}s for display to the user. Requires the
+ * displayName property to have been fetched.
+ */
+public class EmployeeRenderer extends ProxyRenderer {
+  private static EmployeeRenderer INSTANCE;
+
+  public static EmployeeRenderer instance() {
+if (INSTANCE == null) {
+  INSTANCE = new EmployeeRenderer();
+}
+
+return INSTANCE;
+  }
+
+  protected EmployeeRenderer() {
+super(new String[] { "displayName"} );
+  }
+
+  public String render(EmployeeRecord object) {
+if (object == null) {
+  return "";
+}
+return object.getDisplayName() + " (" + object.getId() + ")";
+  }
+}
===
--- /dev/null
+++ /trunk/user/src/com/google/gwt/app/place/ProxyRenderer.java	Thu Aug 19  
14:03:46 2010

@@ -0,0 +1,41 @@
+/*
+ * Copyright 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may  
not
+ * use this file except in compliance with the License. You may obtain a  
copy of

+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distr

[gwt-contrib] [google-web-toolkit] r8581 committed - Removes superClass field from JReferenceType in favor of pushing down ...

2010-08-19 Thread codesite-noreply

Revision: 8581
Author: sco...@google.com
Date: Thu Aug 19 13:25:39 2010
Log: Removes superClass field from JReferenceType in favor of pushing down  
to some subclasses.


This fixes duplication between JReferenceType and JDeclaredType.

Suggested by: grek
Review by: spoon

http://code.google.com/p/google-web-toolkit/source/detail?r=8581

Modified:
 /trunk/dev/core/src/com/google/gwt/dev/jjs/ast/JArrayType.java
 /trunk/dev/core/src/com/google/gwt/dev/jjs/ast/JDeclaredType.java
 /trunk/dev/core/src/com/google/gwt/dev/jjs/ast/JNonNullType.java
 /trunk/dev/core/src/com/google/gwt/dev/jjs/ast/JNullType.java
 /trunk/dev/core/src/com/google/gwt/dev/jjs/ast/JProgram.java
 /trunk/dev/core/src/com/google/gwt/dev/jjs/ast/JReferenceType.java

===
--- /trunk/dev/core/src/com/google/gwt/dev/jjs/ast/JArrayType.java	Wed Aug  
11 09:22:23 2010
+++ /trunk/dev/core/src/com/google/gwt/dev/jjs/ast/JArrayType.java	Thu Aug  
19 13:25:39 2010

@@ -31,16 +31,18 @@
   private int dims;
   private JType elementType;
   private JType leafType;
+  private JClassType typeObject;

   /**
* These are only supposed to be constructed by JProgram.
*/
-  JArrayType(JType elementType, JType leafType, int dims) {
+  JArrayType(JType elementType, JType leafType, int dims, JClassType  
typeObject) {
 super(leafType.getSourceInfo().makeChild(JArrayType.class, "Array  
type"),

 calcName(leafType, dims));
 this.elementType = elementType;
 this.leafType = leafType;
 this.dims = dims;
+this.typeObject = typeObject;
   }

   @Override
@@ -77,6 +79,11 @@
   public JType getLeafType() {
 return leafType;
   }
+
+  @Override
+  public JClassType getSuperClass() {
+return typeObject;
+  }

   public boolean isAbstract() {
 return false;
===
--- /trunk/dev/core/src/com/google/gwt/dev/jjs/ast/JDeclaredType.java	Mon  
Jun 14 14:39:55 2010
+++ /trunk/dev/core/src/com/google/gwt/dev/jjs/ast/JDeclaredType.java	Thu  
Aug 19 13:25:39 2010

@@ -218,12 +218,8 @@
 return name.substring(dotpos + 1);
   }

-  /**
-   * Returns this type's super class, or null if this type is
-   * {...@link Object} or the {...@link JNullType}.
-   */
   @Override
-  public JClassType getSuperClass() {
+  public final JClassType getSuperClass() {
 return superClass;
   }

@@ -270,9 +266,12 @@

   /**
* Sets this type's super class.
+   *
+   * TODO: to replace this setter with a final field, we'd have to refactor
+   * {...@link com.google.gwt.dev.jjs.impl.BuildTypeMap} to use the builder  
pattern

+   * and resolve super types first.
*/
-  @Override
-  public void setSuperClass(JClassType superClass) {
+  public final void setSuperClass(JClassType superClass) {
 this.superClass = superClass;
   }

@@ -314,7 +313,7 @@
 annotations = (List) stream.readObject();
   }

-  /**
+/**
* See {...@link #writeMethodBodies(ObjectOutputStream).
*
* @see #writeMethodBodies(ObjectOutputStream)
@@ -336,12 +335,10 @@
 if (newClinitTarget != null && getClass().desiredAssertionStatus()) {
   // Make sure this is a pure upgrade to a superclass or null.
   for (JDeclaredType current = clinitTarget; current !=  
newClinitTarget; current = current.getSuperClass()) {

-Preconditions.checkNotNull(current.getSuperClass(),
+Preconditions.checkNotNull(
+current.getSuperClass(),
 "Null super class for: %s (currentTarget: %s; newTarget: %s)  
in %s",

-current,
-clinitTarget,
-newClinitTarget,
-this);
+current, clinitTarget, newClinitTarget, this);
   }
 }
 clinitTarget = newClinitTarget;
===
--- /trunk/dev/core/src/com/google/gwt/dev/jjs/ast/JNonNullType.java	Wed  
Dec  9 09:10:40 2009
+++ /trunk/dev/core/src/com/google/gwt/dev/jjs/ast/JNonNullType.java	Thu  
Aug 19 13:25:39 2010

@@ -15,8 +15,6 @@
  */
 package com.google.gwt.dev.jjs.ast;

-import com.google.gwt.dev.jjs.InternalCompilerException;
-
 /**
  * A type including all the values in some other type except for
  * null.
@@ -58,11 +56,6 @@
   public boolean isFinal() {
 return ref.isFinal();
   }
-
-  @Override
-  public void setSuperClass(JClassType superClass) {
-throw new InternalCompilerException("should not be called");
-  }

   public void traverse(JVisitor visitor, Context ctx) {
 visitor.accept(ref);
===
--- /trunk/dev/core/src/com/google/gwt/dev/jjs/ast/JNullType.java	Wed Dec   
9 09:10:40 2009
+++ /trunk/dev/core/src/com/google/gwt/dev/jjs/ast/JNullType.java	Thu Aug  
19 13:25:39 2010

@@ -45,6 +45,11 @@
   public String getJsniSignatureName() {
 return "N";
   }
+
+  @Override
+  public JClassType getSuperClass() {
+return null;
+  }

   public boolean isAbstract() {
 return false;
@@ -53,11 +58,6 @@
   public boolean isFinal() {
 return true;
   }
-
-  @Override
-  pu

[gwt-contrib] [google-web-toolkit] r8580 committed - Irrespective of the return type, all RF methods now go through the val...

2010-08-19 Thread codesite-noreply

Revision: 8580
Author: amitman...@google.com
Date: Thu Aug 19 13:24:10 2010
Log: Irrespective of the return type, all RF methods now go through the  
valueStore.

Added a bunch of missing @Override annotations, removed an unused method in
DeltaValueStoreJsonImpl, Confirmed that instance methods work, have side
effects, and the sync results returned are meaningful.

Patch by: amitmanjhi
Review by: cromwellian, rjrjr (TBR)

http://code.google.com/p/google-web-toolkit/source/detail?r=8580

Modified:
  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractBigDecimalRequest.java
  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractBigIntegerRequest.java
  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractBooleanRequest.java
  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractByteRequest.java
  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractCharacterRequest.java
  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractDateRequest.java
  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractDoubleRequest.java
  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractEnumRequest.java
  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractFloatRequest.java
  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractIntegerRequest.java
  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractJsonListRequest.java
  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractJsonObjectRequest.java
  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractLongRequest.java
  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractPrimitiveRequest.java
  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractRequest.java
  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractShortRequest.java
  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractStringRequest.java
  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractVoidRequest.java
  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/DeltaValueStoreJsonImpl.java
  
/trunk/user/src/com/google/gwt/requestfactory/server/JsonRequestProcessor.java

 /trunk/user/src/com/google/gwt/requestfactory/shared/RequestData.java
 /trunk/user/test/com/google/gwt/valuestore/client/RequestFactoryTest.java
 /trunk/user/test/com/google/gwt/valuestore/server/SimpleFoo.java
 /trunk/user/test/com/google/gwt/valuestore/shared/SimpleFooRequest.java

===
---  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractBigDecimalRequest.java	 
Wed Aug 18 19:31:21 2010
+++  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractBigDecimalRequest.java	 
Thu Aug 19 13:24:10 2010

@@ -15,11 +15,10 @@
  */
 package com.google.gwt.requestfactory.client.impl;

-import com.google.gwt.core.client.JavaScriptObject;
 import com.google.gwt.valuestore.shared.SyncResult;

 import java.math.BigDecimal;
-import java.util.Collections;
+import java.util.Set;

 /**
  * 
@@ -38,10 +37,10 @@
 super(requestFactory);
   }

+  @Override
   public void handlePrimitiveResult(String responseText,
-  JavaScriptObject sideEffects) {
-receiver.onSuccess(new BigDecimal(responseText),
-Collections. emptySet());
+  Set syncResults) {
+receiver.onSuccess(new BigDecimal(responseText), syncResults);
   }

   @Override
===
---  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractBigIntegerRequest.java	 
Wed Aug 18 19:31:21 2010
+++  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractBigIntegerRequest.java	 
Thu Aug 19 13:24:10 2010

@@ -15,12 +15,11 @@
  */
 package com.google.gwt.requestfactory.client.impl;

-import com.google.gwt.core.client.JavaScriptObject;
 import com.google.gwt.valuestore.shared.SyncResult;

 import java.math.BigDecimal;
 import java.math.BigInteger;
-import java.util.Collections;
+import java.util.Set;

 /**
  * 
@@ -39,10 +38,10 @@
 super(requestFactory);
   }

+  @Override
   public void handlePrimitiveResult(String responseText,
-  JavaScriptObject sideEffects) {
-receiver.onSuccess(new BigDecimal(responseText).toBigInteger(),
-Collections. emptySet());
+  Set syncResults) {
+receiver.onSuccess(new BigDecimal(responseText).toBigInteger(),  
syncResults);

   }

   @Override
===
---  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractBooleanRequest.java	 
Wed Aug 18 19:31:21 2010
+++  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractBooleanRequest.java	 
Thu Aug 19 13:24:10 2010

@@ -15,10 +15,9 @@
  */
 package com.google.gwt.requestfactory.client.impl;

-import com.google.gwt.core.client.JavaScriptObject;
 import com.google.gwt.valuestore.shared.SyncResult;

-import java.util.Collections;
+import java.util.Set;

 /**
 

[gwt-contrib] [google-web-toolkit] r8582 committed - Fixes the issue that the DVS does not send an object to the server if ...

2010-08-19 Thread codesite-noreply

Revision: 8582
Author: amitman...@google.com
Date: Thu Aug 19 13:59:07 2010
Log: Fixes the issue that the DVS does not send an object to the server if  
no
setters have been called on it. Added tests for the issue. Finally, removed  
the

unnecessary operations.size() restriction in DeltaValueStoreJsonImpl.

Patch by: amitmanjhi
Review by: rjrjr, cromwellian

http://code.google.com/p/google-web-toolkit/source/detail?r=8582

Modified:
  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/DeltaValueStoreJsonImpl.java
  
/trunk/user/test/com/google/gwt/requestfactory/client/impl/DeltaValueStoreJsonImplTest.java


===
---  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/DeltaValueStoreJsonImpl.java	 
Thu Aug 19 13:24:10 2010
+++  
/trunk/user/src/com/google/gwt/requestfactory/client/impl/DeltaValueStoreJsonImpl.java	 
Thu Aug 19 13:59:07 2010

@@ -194,7 +194,7 @@
   returnedJso, WriteOperation.DELETE.name());
   Map> violationsMap =  
getViolationsMap(deletedRecords);

   int length = deletedRecords.length();
-  // for (Map.Entry entry :  
deletes.entrySet()) {

+
   for (int i = 0; i < length; i++) {
 final RecordKey key = new RecordKey(deletedRecords.get(i).getId(),
 requestFactory.getSchema(deletedRecords.get(i).getSchema()),
@@ -300,27 +300,18 @@
   }

   String toJson() {
-if (operations.size() > 1) {
-  throw new UnsupportedOperationException(
-  "Currently, only one entity can be saved/persisted at a time");
-  /*
-   * TODO: Short-term todo is to allow multiple entities belonging to  
the
-   * same class to be persisted at the same time. The client side  
support
-   * for this operation is already in place. On the server side, this  
will

-   * entail persisting all entities as part of a single transaction. In
-   * particular, the transaction should fail if the validation check  
on any

-   * of the entities fail.
-   *
-   * Multiple entities belonging to different records can not be  
persisted
-   * at present due to the appEngine limitation of a transaction not  
being

-   * allowed to span multiple entity groups.
-   */
-}
-return toJsonWithoutChecks();
-  }
-
-  String toJsonWithoutChecks() {
-used = true;
+used = true;
+
+/*
+ * pull the creates that only the requestFactory knows about.
+ */
+for (RecordKey recordKey : requestFactory.creates.keySet()) {
+  RecordJsoImpl oldRecord = requestFactory.creates.remove(recordKey);
+  assert oldRecord != null;
+  operations.put(recordKey, WriteOperation.CREATE);
+  creates.put(recordKey, oldRecord);
+}
+
 StringBuffer jsonData = new StringBuffer("{");
 for (WriteOperation writeOperation : new WriteOperation[] {
 WriteOperation.CREATE, WriteOperation.UPDATE}) {
===
---  
/trunk/user/test/com/google/gwt/requestfactory/client/impl/DeltaValueStoreJsonImplTest.java	 
Wed Aug 18 15:12:56 2010
+++  
/trunk/user/test/com/google/gwt/requestfactory/client/impl/DeltaValueStoreJsonImplTest.java	 
Thu Aug 19 13:59:07 2010

@@ -79,6 +79,7 @@
 return create(token, typeMap);
   }

+  @Override
   public RecordSchema getSchema(String token) {
 return typeMap.getType(token);
   }
@@ -122,6 +123,17 @@
 assertNotNull(created.getId());
 assertNotNull(created.getVersion());

+DeltaValueStoreJsonImpl deltaValueStore = new DeltaValueStoreJsonImpl(
+valueStore, requestFactory);
+String json = deltaValueStore.toJson();
+testAndGetChangeRecord(json, WriteOperation.CREATE);
+  }
+
+  public void testCreateWithSet() {
+Record created = requestFactory.create(SimpleFooRecord.class);
+assertNotNull(created.getId());
+assertNotNull(created.getVersion());
+
 DeltaValueStoreJsonImpl deltaValueStore = new DeltaValueStoreJsonImpl(
 valueStore, requestFactory);
 // DVS does not know about the created entity.
@@ -182,7 +194,7 @@
 deltaValueStore.set(SimpleFooRecord.userName, createRecord, "harry");
 deltaValueStore.set(SimpleFooRecord.userName, mockRecord, "bovik");
 assertTrue(deltaValueStore.isChanged());
-String jsonString = deltaValueStore.toJsonWithoutChecks();
+String jsonString = deltaValueStore.toJson();
 JSONObject jsonObject = (JSONObject) JSONParser.parse(jsonString);
 assertFalse(jsonObject.containsKey(WriteOperation.DELETE.name()));
 assertTrue(jsonObject.containsKey(WriteOperation.CREATE.name()));

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Re: Enables test of relationship persistence. (issue783801)

2010-08-19 Thread amitmanjhi

LGTM

http://gwt-code-reviews.appspot.com/783801/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Re: Support for Record types as method params in RequestFactory, bug fixes (issue767802)

2010-08-19 Thread amitmanjhi


http://gwt-code-reviews.appspot.com/767802/diff/1/3
File
user/src/com/google/gwt/requestfactory/client/impl/RecordJsoImpl.java
(right):

http://gwt-code-reviews.appspot.com/767802/diff/1/3#newcode93
user/src/com/google/gwt/requestfactory/client/impl/RecordJsoImpl.java:93:
eval("xyz=" + json);
Should this method also set RF and ValueStore? Please look at other
places to create RecordJsoImpl.

http://gwt-code-reviews.appspot.com/767802/diff/1/4
File
user/src/com/google/gwt/requestfactory/server/JsonRequestProcessor.java
(right):

http://gwt-code-reviews.appspot.com/767802/diff/1/4#newcode291
user/src/com/google/gwt/requestfactory/server/JsonRequestProcessor.java:291:
DvsData dvsData = dvsDataMap.get(entityKey);
Please double-check that the two entityKey mechanisms use the same
encoding.

http://gwt-code-reviews.appspot.com/767802/diff/1/4#newcode697
user/src/com/google/gwt/requestfactory/server/JsonRequestProcessor.java:697:
}
After you merge to head, you will see that all if-branches have:

envelop.put(RequestData, sideEffects);

Please move that statement to after the if-branches.

http://gwt-code-reviews.appspot.com/767802/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Re: Enables test of relationship persistence. (issue783801)

2010-08-19 Thread rjrjr

A little premature, the test is failing. But the rest is good to go.

On 2010/08/19 23:49:58, Ray Ryan wrote:




http://gwt-code-reviews.appspot.com/783801/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Enables test of relationship persistence. (issue783801)

2010-08-19 Thread rjrjr

Reviewers: cromwellian,

Description:
Enables test of relationship persistence.

Also finally got rid of the generics warnings around
RequestFactory.create(). Let's not do that again, mmkay?

Review by: cromwell...@google.com

Please review this at http://gwt-code-reviews.appspot.com/783801/show

Affected files:
  M user/src/com/google/gwt/requestfactory/client/impl/RecordToTypeMap.java
  M  
user/src/com/google/gwt/requestfactory/client/impl/RequestFactoryJsonImpl.java

  M user/src/com/google/gwt/requestfactory/shared/RequestFactory.java
  M  
user/test/com/google/gwt/requestfactory/client/impl/DeltaValueStoreJsonImplTest.java

  M user/test/com/google/gwt/valuestore/client/RequestFactoryTest.java
  M user/test/com/google/gwt/valuestore/server/SimpleBar.java
  M user/test/com/google/gwt/valuestore/server/SimpleFoo.java
  M user/test/com/google/gwt/valuestore/shared/SimpleBarRequest.java
  M user/test/com/google/gwt/valuestore/shared/SimpleFooRequest.java


--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Re: Support for Record types as method params in RequestFactory, bug fixes (issue767802)

2010-08-19 Thread Ray Ryan
LGTM

On Thu, Aug 19, 2010 at 4:48 PM,  wrote:

> http://gwt-code-reviews.appspot.com/767802/show
>

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors

[gwt-contrib] Re: Support for Record types as method params in RequestFactory, bug fixes (issue767802)

2010-08-19 Thread rjrjr


http://gwt-code-reviews.appspot.com/767802/diff/1/3
File
user/src/com/google/gwt/requestfactory/client/impl/RecordJsoImpl.java
(right):

http://gwt-code-reviews.appspot.com/767802/diff/1/3#newcode317
user/src/com/google/gwt/requestfactory/client/impl/RecordJsoImpl.java:317:
RequestFactoryJsonImpl requestFactory = getRequestFactory();
You don't want to check in these asserts, right?

http://gwt-code-reviews.appspot.com/767802/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Re: Introduces ValueListBox, and uses it in Scaffold to pick (issue780802)

2010-08-19 Thread rjrjr

No more matching on rendered strings, in it goes...

On 2010/08/19 22:52:28, Ray Ryan wrote:




http://gwt-code-reviews.appspot.com/780802/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Re: Introduces ValueListBox, and uses it in Scaffold to pick (issue780802)

2010-08-19 Thread rjrjr

http://gwt-code-reviews.appspot.com/780802/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Re: Introduces ValueListBox, and uses it in Scaffold to pick (issue780802)

2010-08-19 Thread rjrjr


http://gwt-code-reviews.appspot.com/780802/diff/3001/4026
File user/src/com/google/gwt/user/client/ui/ValueListBox.java (right):

http://gwt-code-reviews.appspot.com/780802/diff/3001/4026#newcode35
user/src/com/google/gwt/user/client/ui/ValueListBox.java:35: private
final Map indexToValue = new HashMap();
Sorry, forgot. Will do before submitting.

On 2010/08/19 22:18:23, jlabanca wrote:

Not Done?


http://gwt-code-reviews.appspot.com/780802/diff/3001/4026#newcode36
user/src/com/google/gwt/user/client/ui/ValueListBox.java:36: private
final Map renderedToIndex = new HashMap();
True. Will play with that.

On 2010/08/19 22:18:23, jlabanca wrote:

You can still use valuesToIndex to map values to Integers.  That seems

like a

better option than relying on the rendered value.


http://gwt-code-reviews.appspot.com/780802/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Re: Introduces ValueListBox, and uses it in Scaffold to pick (issue780802)

2010-08-19 Thread jlabanca

LGTM


http://gwt-code-reviews.appspot.com/780802/diff/3001/4026
File user/src/com/google/gwt/user/client/ui/ValueListBox.java (right):

http://gwt-code-reviews.appspot.com/780802/diff/3001/4026#newcode35
user/src/com/google/gwt/user/client/ui/ValueListBox.java:35: private
final Map indexToValue = new HashMap();
Not Done?

http://gwt-code-reviews.appspot.com/780802/diff/3001/4026#newcode36
user/src/com/google/gwt/user/client/ui/ValueListBox.java:36: private
final Map renderedToIndex = new HashMap();
You can still use valuesToIndex to map values to Integers.  That seems
like a better option than relying on the rendered value.

http://gwt-code-reviews.appspot.com/780802/diff/19001/20020
File user/src/com/google/gwt/app/place/AbstractRecordEditActivity.java
(right):

http://gwt-code-reviews.appspot.com/780802/diff/19001/20020#newcode95
user/src/com/google/gwt/app/place/AbstractRecordEditActivity.java:95:
extra spaces

http://gwt-code-reviews.appspot.com/780802/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Re: Introduces ValueListBox, and uses it in Scaffold to pick (issue780802)

2010-08-19 Thread rjrjr

http://gwt-code-reviews.appspot.com/780802/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Re: Introduces ValueListBox, and uses it in Scaffold to pick (issue780802)

2010-08-19 Thread rjrjr

Also noticed that ValueBoxBase test wasn't running, and wasn't passing.
All better now.

http://gwt-code-reviews.appspot.com/780802/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Re: Introduces ValueListBox, and uses it in Scaffold to pick (issue780802)

2010-08-19 Thread rjrjr

Ready for re-review


http://gwt-code-reviews.appspot.com/780802/diff/3001/4002
File
bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeEditActivity.java
(right):

http://gwt-code-reviews.appspot.com/780802/diff/3001/4002#newcode88
bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeEditActivity.java:88:
super.start(display, eventBus);
That really only moves the indeterminism around, but it's okay, the
widget is robust to that. I have it above the super call so that a
synchronous response won't flicker.

On 2010/08/19 15:53:34, jlabanca wrote:

Putting the super call here could introduce some inderminability if
findEmployeeEntries() comes back synchronously.  Can you move it above

the async

request?


http://gwt-code-reviews.appspot.com/780802/diff/3001/4008
File
bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportEditActivity.java
(right):

http://gwt-code-reviews.appspot.com/780802/diff/3001/4008#newcode88
bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportEditActivity.java:88:
super.start(display, eventBus);
Ditto.

On 2010/08/19 15:53:34, jlabanca wrote:

Putting the super call here could introduce some inderminability if
findEmployeeEntries() comes back synchronously.  Can you move it above

the async

request?


http://gwt-code-reviews.appspot.com/780802/diff/3001/4008#newcode96
bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportEditActivity.java:96:

On 2010/08/19 15:53:34, jlabanca wrote:

Extra newline.


Done.

http://gwt-code-reviews.appspot.com/780802/diff/3001/4018
File user/src/com/google/gwt/app/place/AbstractRecordEditActivity.java
(right):

http://gwt-code-reviews.appspot.com/780802/diff/3001/4018#newcode95
user/src/com/google/gwt/app/place/AbstractRecordEditActivity.java:95:
On 2010/08/19 15:53:34, jlabanca wrote:

extra spaces



Done.

http://gwt-code-reviews.appspot.com/780802/diff/3001/4021
File user/src/com/google/gwt/app/place/PropertyColumn.java (right):

http://gwt-code-reviews.appspot.com/780802/diff/3001/4021#newcode30
user/src/com/google/gwt/app/place/PropertyColumn.java:30: * A column
that displays a record property as a string. NB: Property objects
Nota Bene

http://en.wikipedia.org/wiki/Nota_bene

On 2010/08/19 15:53:34, jlabanca wrote:

What does NB mean?


http://gwt-code-reviews.appspot.com/780802/diff/3001/4025
File
user/src/com/google/gwt/requestfactory/client/impl/RecordJsoImpl.java
(right):

http://gwt-code-reviews.appspot.com/780802/diff/3001/4025#newcode315
user/src/com/google/gwt/requestfactory/client/impl/RecordJsoImpl.java:315:
assert(null != requestFactory) : "rf";
Oops, this is all debugging chaff. Reverting.

On 2010/08/19 15:53:34, jlabanca wrote:

Can you put a more descriptive error string:
"requestFactory is null"


http://gwt-code-reviews.appspot.com/780802/diff/3001/4026
File user/src/com/google/gwt/user/client/ui/ValueListBox.java (right):

http://gwt-code-reviews.appspot.com/780802/diff/3001/4026#newcode35
user/src/com/google/gwt/user/client/ui/ValueListBox.java:35: private
final Map indexToValue = new HashMap();
On 2010/08/19 15:53:34, jlabanca wrote:

You could just use a List (or an array) since you know the values

aren't sparse

and start at 0.


Done.

http://gwt-code-reviews.appspot.com/780802/diff/3001/4026#newcode36
user/src/com/google/gwt/user/client/ui/ValueListBox.java:36: private
final Map renderedToIndex = new HashMap();
I'll document that as an error, and put in some checking for it.

I don't want to use indexOf(value) because it's linear.

On 2010/08/19 15:53:34, jlabanca wrote:

What if two items render to the same thing?  This should be

valuesToIndex.


Alternatively, you can replace both of these maps with a List

values.

indexToValue => values.get(i)
valueToIndex => values.indexOf(value)


http://gwt-code-reviews.appspot.com/780802/diff/3001/4026#newcode74
user/src/com/google/gwt/user/client/ui/ValueListBox.java:74: public void
setValues(Collection values) {
Renamed to setAcceptableValues

On 2010/08/19 15:53:34, jlabanca wrote:

This method name is confusing because a native ListBox actually

supports

multiple selection.  We should rename the method setContrainedValues()

to match

the interface name HasConstrainedValues().


http://gwt-code-reviews.appspot.com/780802/diff/3001/4026#newcode104
user/src/com/google/gwt/user/client/ui/ValueListBox.java:104:
addValue(value);
That, and it's also required for async support -- sometimes the value
gets set before the constraints are available.

I think I'd rather loosen the contract of HasConstrainedValue, allowing
the implementation to decide how to react when an unlisted value is set.

On 2010/08/19 15:53:34, jlabanca wrote:

This violates the contract of HasConstrainedValues.  If the value is

not in the

set of contrained values, either throw an error, or set the selected

index to -1

to deselect everything.



I'm guessing that you want to support adding a value that is no longer
selectable (a legacy value f

[gwt-contrib] Re: Introduces ValueListBox, and uses it in Scaffold to pick (issue780802)

2010-08-19 Thread rjrjr

http://gwt-code-reviews.appspot.com/780802/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Re: Updated common.ant.xml to copy pom.xml (if found) to build/out (issue782801)

2010-08-19 Thread cramsdale

http://gwt-code-reviews.appspot.com/782801/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


Re: [gwt-contrib] Re: chrome broken

2010-08-19 Thread Pascal Patry
On Thursday, August 19, 2010 16:36:36 Ray Cromwell wrote:
> Could you use the Chrome Inspector to post the JSON payload that came back?

Sure, the response that fails on the client side is:
{"result":3,"related":{}}

The request here was a RequestObject and I do expect 3 to be the
response of this request.

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Re: Updated common.ant.xml to copy pom.xml (if found) to build/out (issue782801)

2010-08-19 Thread cramsdale

Description updated to "Copy source to the output folder".

On 2010/08/19 20:26:14, Dan Rice wrote:

LGTM



http://gwt-code-reviews.appspot.com/782801/diff/1/2
File samples/build.xml (right):



http://gwt-code-reviews.appspot.com/782801/diff/1/2#newcode64
samples/build.xml:64: 
analysis of GWT

source">
Does this description need to be changed?




http://gwt-code-reviews.appspot.com/782801/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Re: Fix memory leaks in DevMode (issue766803)

2010-08-19 Thread scottb

LGTM if it LGTjat.

http://gwt-code-reviews.appspot.com/766803/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


Re: [gwt-contrib] Re: chrome broken

2010-08-19 Thread Ray Cromwell
Could you use the Chrome Inspector to post the JSON payload that came back?


On Thu, Aug 19, 2010 at 11:24 AM, Pascal Patry  wrote:

> On Thursday, August 19, 2010 14:15:56 Ray Ryan wrote:
> > Your gwt-servlet jar might be stale, try re-genning it. (ant dist-dev)
>
> I don't think, since I'm usually building as:
> ant clean; ant buildonly doc; cd distro-source; ant
>
> It did make a difference by fixing Firefox completely. The problem is
> still on Chrome with RequestObject. If I skip these requests, I
> won't get this exception.
>
> --
> http://groups.google.com/group/Google-Web-Toolkit-Contributors
>

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors

[gwt-contrib] Re: Updated common.ant.xml to copy pom.xml (if found) to build/out (issue782801)

2010-08-19 Thread rice

LGTM


http://gwt-code-reviews.appspot.com/782801/diff/1/2
File samples/build.xml (right):

http://gwt-code-reviews.appspot.com/782801/diff/1/2#newcode64
samples/build.xml:64: 
Does this description need to be changed?

http://gwt-code-reviews.appspot.com/782801/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Re: Fix memory leaks in DevMode (issue766803)

2010-08-19 Thread conroy

On 2010/08/19 20:05:46, conroy wrote:


Rietveld's interdiff handling is absurdly bugged.

ClearStaticData is no longer deleted, contrary to what it shows on the
summary. The only change to CompilationStateBuilder vs. HEAD is a new
comment clarifying the resourceContentCache/keepAliveLatest
relationship.



http://gwt-code-reviews.appspot.com/766803/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Updated common.ant.xml to copy pom.xml (if found) to build/out (issue782801)

2010-08-19 Thread cramsdale

Reviewers: rice_google.comm,

Description:
Updated common.ant.xml to copy pom.xml (if found) to  build/out
Added .place-holder to ensure war dir existence


Please review this at http://gwt-code-reviews.appspot.com/782801/show

Affected files:
  M samples/build.xml
  M samples/common.ant.xml
  A samples/expenses/war/.place-holder


Index: samples/build.xml
===
--- samples/build.xml   (revision 8573)
+++ samples/build.xml   (working copy)
@@ -61,6 +61,12 @@
 
   

+  
+
+  
+
+  
+
   
 
   
Index: samples/common.ant.xml
===
--- samples/common.ant.xml  (revision 8573)
+++ samples/common.ant.xml  (working copy)
@@ -37,6 +37,12 @@
 
   
 
+
+  
+  
+
+  
+
   

   
Index: samples/expenses/war/.place-holder
===
--- samples/expenses/war/.place-holder  (revision 0)
+++ samples/expenses/war/.place-holder  (revision 0)


--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Re: Fix memory leaks in DevMode (issue766803)

2010-08-19 Thread conroy

http://gwt-code-reviews.appspot.com/766803/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] [google-web-toolkit] r8579 committed - Added gwt-maven-plugin to M3 maven repo.

2010-08-19 Thread codesite-noreply

Revision: 8579
Author: rda...@google.com
Date: Thu Aug 19 12:36:40 2010
Log: Added gwt-maven-plugin to M3 maven repo.

http://code.google.com/p/google-web-toolkit/source/detail?r=8579

Added:
 /2.1.0.M3/gwt/maven/org/codehaus/mojo/gwt-maven-plugin
 /2.1.0.M3/gwt/maven/org/codehaus/mojo/gwt-maven-plugin/1.3.1.google
  
/2.1.0.M3/gwt/maven/org/codehaus/mojo/gwt-maven-plugin/1.3.1.google/gwt-maven-plugin-1.3.1.google.jar
  
/2.1.0.M3/gwt/maven/org/codehaus/mojo/gwt-maven-plugin/1.3.1.google/gwt-maven-plugin-1.3.1.google.jar.md5
  
/2.1.0.M3/gwt/maven/org/codehaus/mojo/gwt-maven-plugin/1.3.1.google/gwt-maven-plugin-1.3.1.google.jar.sha1
  
/2.1.0.M3/gwt/maven/org/codehaus/mojo/gwt-maven-plugin/1.3.1.google/gwt-maven-plugin-1.3.1.google.pom
  
/2.1.0.M3/gwt/maven/org/codehaus/mojo/gwt-maven-plugin/1.3.1.google/gwt-maven-plugin-1.3.1.google.pom.md5
  
/2.1.0.M3/gwt/maven/org/codehaus/mojo/gwt-maven-plugin/1.3.1.google/gwt-maven-plugin-1.3.1.google.pom.sha1

 /2.1.0.M3/gwt/maven/org/codehaus/mojo/gwt-maven-plugin/maven-metadata.xml
  
/2.1.0.M3/gwt/maven/org/codehaus/mojo/gwt-maven-plugin/maven-metadata.xml.md5
  
/2.1.0.M3/gwt/maven/org/codehaus/mojo/gwt-maven-plugin/maven-metadata.xml.sha1


===
--- /dev/null   
+++  
/2.1.0.M3/gwt/maven/org/codehaus/mojo/gwt-maven-plugin/1.3.1.google/gwt-maven-plugin-1.3.1.google.jar	 
Thu Aug 19 12:36:40 2010

Binary file, no diff available.
===
--- /dev/null
+++  
/2.1.0.M3/gwt/maven/org/codehaus/mojo/gwt-maven-plugin/1.3.1.google/gwt-maven-plugin-1.3.1.google.jar.md5	 
Thu Aug 19 12:36:40 2010

@@ -0,0 +1,1 @@
+cea1b3fa174c8021d0bd1c303fee8580
===
--- /dev/null
+++  
/2.1.0.M3/gwt/maven/org/codehaus/mojo/gwt-maven-plugin/1.3.1.google/gwt-maven-plugin-1.3.1.google.jar.sha1	 
Thu Aug 19 12:36:40 2010

@@ -0,0 +1,1 @@
+2a858dba4f6e30f63f5fde7aef733e281ce680a5
===
--- /dev/null
+++  
/2.1.0.M3/gwt/maven/org/codehaus/mojo/gwt-maven-plugin/1.3.1.google/gwt-maven-plugin-1.3.1.google.pom	 
Thu Aug 19 12:36:40 2010

@@ -0,0 +1,396 @@
+
+  
+http://maven.apache.org/POM/4.0.0";  
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";  
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0  
http://maven.apache.org/xsd/maven-4.0.0.xsd";>

+  4.0.0
+  
+org.codehaus.mojo
+mojo-parent
+24
+  
+  gwt-maven-plugin
+  1.3.1.google
+  maven-plugin
+  Maven GWT Plugin
+  
+Maven plugin for the Google Web Toolkit.
+  
+  http://mojo.codehaus.org/gwt-maven-plugin
+  2007
+  
+2.0.9
+  
+  
+
+  http://www.apache.org/licenses/LICENSE-2.0.txt
+  Apache 2.0
+  repo
+
+  
+  
+
+  ndeloof
+  Nicolas De Loof
+  nico...@apache.org
+
+
+  charlie.collins
+  Charlie Collins
+  charlie.coll...@gmail.com
+
+
+  olamy
+  Olivier Lamy
+  ol...@apache.org
+
+  
+  
+
+  Robert Scholte
+
+
+  Stefan Hübner
+
+  
+  
+
+  gwt-maven-plugin User List
+   
codehaus-mojo-gwt-maven-plugin-users-subscr...@googlegroups.com
+   
codehaus-mojo-gwt-maven-plugin-users+unsubscr...@googlegroups.com

+  codehaus-mojo-gwt-maven-plugin-us...@googlegroups.com
+   
http://groups.google.com/group/codehaus-mojo-gwt-maven-plugin-users

+
+
+  General Mojo User List
+  user-subscr...@mojo.codehaus.org
+  user-unsubscr...@mojo.codehaus.org
+  u...@mojo.codehaus.org
+   
http://archive.hausfoundation.org/lists/org.codehaus.mojo.user

+  
+ 
http://www.nabble.com/mojo---user-f11980.html
+ 
http://markmail.org/list/org.codehaus.mojo.user

+  
+
+
+  General Mojo Development List
+  dev-subscr...@mojo.codehaus.org
+  dev-unsubscr...@mojo.codehaus.org
+  d...@mojo.codehaus.org
+   
http://archive.hausfoundation.org/lists/org.codehaus.mojo.dev

+  
+ 
http://www.nabble.com/mojo---dev-f11981.html
+ 
http://markmail.org/list/org.codehaus.mojo.dev

+  
+
+  
+  
+ 
scm:svn:http://svn.codehaus.org/mojo/trunk/mojo/gwt-maven-plugin
+ 
scm:svn:https://svn.codehaus.org/mojo/trunk/mojo/gwt-maven-plugin
+ 
http://fisheye.codehaus.org/browse/mojo/trunk/mojo/gwt-maven-plugin

+  
+  
+jira
+http://jira.codehaus.org/browse/MGWT
+  
+  
+1.5
+1.5
+  
+  
+
+  org.apache.maven
+  maven-project
+  2.0.9
+
+
+  org.apache.maven
+  maven-model
+  2.0.9
+
+
+  org.apache.maven
+  maven-artifact
+  2.0.9
+
+
+  org.apache.maven
+  maven-plugin-api
+  2.0.9
+
+
+  org.apache.maven.reporting
+  maven-reporting-api
+  2.0.9
+
+
+  org.apache.maven.reporting
+  maven-reporting-impl
+  2.0.4.1
+
+
+  org.codehaus.plexus
+  plexus-utils
+  1.5.9
+
+
+  com.thoughtworks.qdox
+  qdox
+  1.11

[gwt-contrib] [google-web-toolkit] r8578 committed - Directories for the gwt-maven-plugin.

2010-08-19 Thread codesite-noreply

Revision: 8578
Author: rda...@google.com
Date: Thu Aug 19 12:33:19 2010
Log: Directories for the gwt-maven-plugin.

http://code.google.com/p/google-web-toolkit/source/detail?r=8578

Added:
 /2.1.0.M3/gwt/maven/org
 /2.1.0.M3/gwt/maven/org/codehaus
 /2.1.0.M3/gwt/maven/org/codehaus/mojo

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] [google-web-toolkit] r8577 committed - Initial artifact set for GWT 2.1 M3 and App Engine 1.3.6

2010-08-19 Thread codesite-noreply

Revision: 8577
Author: rda...@google.com
Date: Thu Aug 19 12:18:26 2010
Log: Initial artifact set for GWT 2.1 M3 and App Engine 1.3.6

http://code.google.com/p/google-web-toolkit/source/detail?r=8577

Added:
 /2.1.0.M3/gwt/maven
 /2.1.0.M3/gwt/maven/com
 /2.1.0.M3/gwt/maven/com/google
 /2.1.0.M3/gwt/maven/com/google/appengine
 /2.1.0.M3/gwt/maven/com/google/appengine/appengine-api-1.0-sdk
 /2.1.0.M3/gwt/maven/com/google/appengine/appengine-api-1.0-sdk/1.3.6
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-api-1.0-sdk/1.3.6/appengine-api-1.0-sdk-1.3.6.jar
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-api-1.0-sdk/1.3.6/appengine-api-1.0-sdk-1.3.6.jar.md5
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-api-1.0-sdk/1.3.6/appengine-api-1.0-sdk-1.3.6.jar.sha1
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-api-1.0-sdk/1.3.6/appengine-api-1.0-sdk-1.3.6.pom
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-api-1.0-sdk/1.3.6/appengine-api-1.0-sdk-1.3.6.pom.md5
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-api-1.0-sdk/1.3.6/appengine-api-1.0-sdk-1.3.6.pom.sha1
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-api-1.0-sdk/maven-metadata.xml
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-api-1.0-sdk/maven-metadata.xml.md5
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-api-1.0-sdk/maven-metadata.xml.sha1

 /2.1.0.M3/gwt/maven/com/google/appengine/appengine-java-sdk
 /2.1.0.M3/gwt/maven/com/google/appengine/appengine-java-sdk/1.3.6
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-java-sdk/1.3.6/appengine-java-sdk-1.3.6.pom
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-java-sdk/1.3.6/appengine-java-sdk-1.3.6.pom.md5
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-java-sdk/1.3.6/appengine-java-sdk-1.3.6.pom.sha1
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-java-sdk/1.3.6/appengine-java-sdk-1.3.6.zip
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-java-sdk/1.3.6/appengine-java-sdk-1.3.6.zip.md5
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-java-sdk/1.3.6/appengine-java-sdk-1.3.6.zip.sha1
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-java-sdk/maven-metadata.xml
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-java-sdk/maven-metadata.xml.md5
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-java-sdk/maven-metadata.xml.sha1

 /2.1.0.M3/gwt/maven/com/google/appengine/appengine-local-runtime
 /2.1.0.M3/gwt/maven/com/google/appengine/appengine-local-runtime/1.3.6
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-local-runtime/1.3.6/appengine-local-runtime-1.3.6.jar
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-local-runtime/1.3.6/appengine-local-runtime-1.3.6.jar.md5
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-local-runtime/1.3.6/appengine-local-runtime-1.3.6.jar.sha1
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-local-runtime/1.3.6/appengine-local-runtime-1.3.6.pom
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-local-runtime/1.3.6/appengine-local-runtime-1.3.6.pom.md5
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-local-runtime/1.3.6/appengine-local-runtime-1.3.6.pom.sha1
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-local-runtime/maven-metadata.xml
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-local-runtime/maven-metadata.xml.md5
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-local-runtime/maven-metadata.xml.sha1

 /2.1.0.M3/gwt/maven/com/google/appengine/appengine-tools-api
 /2.1.0.M3/gwt/maven/com/google/appengine/appengine-tools-api/1.3.6
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-tools-api/1.3.6/appengine-tools-api-1.3.6.jar
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-tools-api/1.3.6/appengine-tools-api-1.3.6.jar.md5
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-tools-api/1.3.6/appengine-tools-api-1.3.6.jar.sha1
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-tools-api/1.3.6/appengine-tools-api-1.3.6.pom
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-tools-api/1.3.6/appengine-tools-api-1.3.6.pom.md5
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-tools-api/1.3.6/appengine-tools-api-1.3.6.pom.sha1
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-tools-api/maven-metadata.xml
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-tools-api/maven-metadata.xml.md5
  
/2.1.0.M3/gwt/maven/com/google/appengine/appengine-tools-api/maven-metadata.xml.sha1

 /2.1.0.M3/gwt/maven/com/google/appengine/orm
 /2.1.0.M3/gwt/maven/com/google/appengine/orm/datanucleus-appengine
  
/2.1.0.M3/gwt/maven/com/google/appengine/orm/datanucleus-appengine/1.0.7.final
  
/2.1.0.M3/gwt/maven/com/google/appengine/orm/datanucleus-appengine/1.0.7.final/datanucleus-appengine-1.0.7.final.jar
  
/2.1.0.M3/gwt/maven/com/google/appengine/orm/datanucleus-appengine/1.0.7.final/datanucleus-appengine-1.0.7.final.jar.md5
  
/2.1.0.M3/gwt/maven/com/google/appengine/orm/datanucleus-appengine/1.0.7.final/datanucleus-appengine-1.0.7.final.j

[gwt-contrib] [google-web-toolkit] r8576 committed - Remove improper add of maven directory.

2010-08-19 Thread codesite-noreply

Revision: 8576
Author: rda...@google.com
Date: Thu Aug 19 11:48:20 2010
Log: Remove improper add of maven directory.

http://code.google.com/p/google-web-toolkit/source/detail?r=8576

Deleted:
 /2.1.0.M3/gwt/maven

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] [google-web-toolkit] r8575 committed - Adding maven repo directories.

2010-08-19 Thread codesite-noreply

Revision: 8575
Author: rda...@google.com
Date: Thu Aug 19 11:47:00 2010
Log: Adding maven repo directories.

http://code.google.com/p/google-web-toolkit/source/detail?r=8575

Added:
 /2.1.0.M3/gwt
 /2.1.0.M3/gwt/maven

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Re: Fix memory leaks in DevMode (issue766803)

2010-08-19 Thread conroy

On 2010/08/19 16:50:01, scottb wrote:

Still need answer on JJS -> i18n clear cache.



http://gwt-code-reviews.appspot.com/766803/diff/1/3
File

dev/core/src/com/google/gwt/dev/javac/CompilationStateBuilder.java
(right):


http://gwt-code-reviews.appspot.com/766803/diff/1/3#newcode223


dev/core/src/com/google/gwt/dev/javac/CompilationStateBuilder.java:223:

Collections.synchronizedMap(new HashMap());
Ok... so the theory was this:



Location -> last ResourceTag via resourceContentCache
ResourceTag -> CompilationUnit via keepAliveLatestVersion



When a new ResourceTag preempts the old one in a particular location,

the

entries should fall out of keepAliveLatestVersion.



It looks like you just cut out the middle man here.  I'm sure the

change is

fine, but I'm struggling to understand what practical difference it

will make.


http://gwt-code-reviews.appspot.com/766803/diff/1/5
File user/src/com/google/gwt/i18n/rebind/LocaleUtils.java (left):



http://gwt-code-reviews.appspot.com/766803/diff/1/5#oldcode109
user/src/com/google/gwt/i18n/rebind/LocaleUtils.java:109: }
It should have been getting called from JavaToJavaScriptCompiler via

reflection.

*via reflection*well that explains it...


http://gwt-code-reviews.appspot.com/766803/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] [google-web-toolkit] r8574 committed - Added dir for the 2.1.0.M3 release.

2010-08-19 Thread codesite-noreply

Revision: 8574
Author: rda...@google.com
Date: Thu Aug 19 11:34:56 2010
Log: Added dir for the 2.1.0.M3 release.

http://code.google.com/p/google-web-toolkit/source/detail?r=8574

Added:
 /2.1.0.M3

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Re: Added all safehtml packages. (issue771801)

2010-08-19 Thread rice


http://gwt-code-reviews.appspot.com/771801/diff/25001/26004
File
user/src/com/google/gwt/safehtml/shared/OnlyToBeUsedInGeneratedCodeStringBlessedAsSafeHtml.java
(right):

http://gwt-code-reviews.appspot.com/771801/diff/25001/26004#newcode31
user/src/com/google/gwt/safehtml/shared/OnlyToBeUsedInGeneratedCodeStringBlessedAsSafeHtml.java:31:
this.html = html;
Enforce html != null per class contract (throw an IAE or NPE)

http://gwt-code-reviews.appspot.com/771801/diff/25001/26004#newcode45
user/src/com/google/gwt/safehtml/shared/OnlyToBeUsedInGeneratedCodeStringBlessedAsSafeHtml.java:45:
if (this == obj) {
 Missing obj == null case

http://gwt-code-reviews.appspot.com/771801/diff/25001/26004#newcode47
user/src/com/google/gwt/safehtml/shared/OnlyToBeUsedInGeneratedCodeStringBlessedAsSafeHtml.java:47:
} else if (getClass() != obj.getClass()) {
It's better to do if (!(obj instanceof SafeHtml):

1) it avoids the overhead of creating class objects
2) it deals with subclassing correctly -- the SafeHtml contract allows
instances of different implementing classes to compare as equal
3) it includes a null check for free (since null instanceof X always
returns false)

http://gwt-code-reviews.appspot.com/771801/diff/25001/26004#newcode49
user/src/com/google/gwt/safehtml/shared/OnlyToBeUsedInGeneratedCodeStringBlessedAsSafeHtml.java:49:
} else if (!html.equals(((SafeHtml) obj).asString())) {
Replace last else if with:

} else {
  return html.equals(((SafeHtml) obj).asString())
}

http://gwt-code-reviews.appspot.com/771801/diff/25001/26004#newcode53
user/src/com/google/gwt/safehtml/shared/OnlyToBeUsedInGeneratedCodeStringBlessedAsSafeHtml.java:53:
}
So the complete method looks like:

public boolean equals(Object obj) {
  if (this == obj) {
return true;
  }
  if (!(obj instanceof SafeHtml)) {
return false;
  }
  return html.equals(((SafeHtml) obj).asString());
}

The first == test could be skipped without affecting correctness -- it's
hard to say whether it will be a net performance win in practice.

http://gwt-code-reviews.appspot.com/771801/diff/25001/26006
File user/src/com/google/gwt/safehtml/shared/SafeHtmlBuilder.java
(right):

http://gwt-code-reviews.appspot.com/771801/diff/25001/26006#newcode28
user/src/com/google/gwt/safehtml/shared/SafeHtmlBuilder.java:28: *
{...@link #appendHtmlConstant(String)}) requires a convention of use to be
specify the convention here or at least summarize it

http://gwt-code-reviews.appspot.com/771801/diff/25001/26007
File user/src/com/google/gwt/safehtml/shared/SafeHtmlString.java
(right):

http://gwt-code-reviews.appspot.com/771801/diff/25001/26007#newcode40
user/src/com/google/gwt/safehtml/shared/SafeHtmlString.java:40:
this.html = html;
Enforce non-null

http://gwt-code-reviews.appspot.com/771801/diff/25001/26007#newcode61
user/src/com/google/gwt/safehtml/shared/SafeHtmlString.java:61: if (this
== obj) {
See previous comment on style for equals methods

http://gwt-code-reviews.appspot.com/771801/diff/25001/26008
File user/src/com/google/gwt/safehtml/shared/SafeHtmlUtils.java (right):

http://gwt-code-reviews.appspot.com/771801/diff/25001/26008#newcode80
user/src/com/google/gwt/safehtml/shared/SafeHtmlUtils.java:80: * {...@link
gwt-user/core/super/com/google/gwt/emul/java/lang/String}
Be more specific here or don't say anything -- the comment is not really
useful as-is.

http://gwt-code-reviews.appspot.com/771801/diff/25001/26008#newcode87
user/src/com/google/gwt/safehtml/shared/SafeHtmlUtils.java:87: if
(s.indexOf("&") != -1) {
You might want to profile using com.google.gwt.regexp.shared.RegExp to
allow you to pre-compile the constant regular expressions (even thought
they are single chars they still go through a regex code path).  This
would look something like:

com.google.gwt.regexp.shared.RegExp;

private static final RegExp AMP_REGEX = RegExp.compile("&", "g");
// ...
s = AMP_REGEX.replace(s, "&");

This turns into very straightforward JavaScript.

Another approach would be to scan the input character by character and
append to an output StringBuilder when one of the special input chars is
detected.  This would avoid a lot of new string creation and multiple
passes through the input, like:

StringBuilder sb = new StringBuilder();
for (int i = 0, len = s.length(); i < len; i++) {
  char c = s.charAt(i);
  switch (c) {
case '&': sb.append("&"); break;
case '\"': sb.append("""); break;
case '\'': sb.append("'"); break;
case '<': sb.append("<"); break;
case '>': sb.append(">"); break;
default: sb.append(c);
  }
}
return sb.toString();

if you want to be a bit slicker, instead of appending each char you
could keep track of sections that don't contain special chars and append
the whole chunk at once.  I guess I would profile a bit to see if it
matters.

http://gwt-code-reviews.appspot.com/771801/diff/25001/26008#newcode120
user/src/com/google/gwt/safehtml/shared/SafeHtmlUtils.java:120: for
(String segment : text.split("&", -1)) {
Again, RegExp can pe

Re: [gwt-contrib] Re: chrome broken

2010-08-19 Thread Pascal Patry
On Thursday, August 19, 2010 14:15:56 Ray Ryan wrote:
> Your gwt-servlet jar might be stale, try re-genning it. (ant dist-dev)

I don't think, since I'm usually building as:
ant clean; ant buildonly doc; cd distro-source; ant

It did make a difference by fixing Firefox completely. The problem is
still on Chrome with RequestObject. If I skip these requests, I
won't get this exception.

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Re: Added all safehtml packages. (issue771801)

2010-08-19 Thread pdr

http://gwt-code-reviews.appspot.com/771801/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


Re: [gwt-contrib] Re: chrome broken

2010-08-19 Thread Ray Ryan
Your gwt-servlet jar might be stale, try re-genning it. (ant dist-dev)

On Thu, Aug 19, 2010 at 11:13 AM, Pascal Patry  wrote:

> On Thursday, August 19, 2010 13:48:53 rjrjr wrote:
> > We believe this was fixed at r8572. Can anyone confirm?
>
> It fixed the latest issue in Firefox, however, Chrome is still broken.
>
> Stack Trace:
>
> java.lang.IllegalArgumentException: invoke arguments: JS value of type int,
> expected
> com.google.gwt.requestfactory.client.impl.RecordJsoImpl
> at com.google.gwt.dev.shell.JsValueGlue.get(JsValueGlue.java:178)
>at
> com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:65)
>at
> com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:157)
>at
> com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:326)
>at
> com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:207)
>at
> com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:126)
>at
> com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:552)
>at
> com.google.gwt.dev.shell.ModuleSpace.invokeNativeVoid(ModuleSpace.java:289)
>at
> com.google.gwt.dev.shell.JavaScriptHost.invokeNativeVoid(JavaScriptHost.java:107)
> at
> com.google.gwt.requestfactory.client.impl.AbstractRequest.processRelated(AbstractRequest.java)
>at
> com.google.gwt.requestfactory.client.impl.AbstractRequest.handleResponseText(AbstractRequest.java:99)
>at
>
> com.google.gwt.requestfactory.client.impl.RequestFactoryJsonImpl$1.onResponseReceived(RequestFactoryJsonImpl.java:100)
> at
> com.google.gwt.http.client.Request.fireOnResponseReceived(Request.java:287)
>at
> com.google.gwt.http.client.RequestBuilder$1.onReadyStateChange(RequestBuilder.java:395)
>at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>at java.lang.reflect.Method.invoke(Method.java:597)
>at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
>at
> com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
>at
> com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:157)
>at
> com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:326)
>at
> com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:207)
>at
> com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:126)
>at
> com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:552)
>at
> com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:269)
>at
> com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91)
>at com.google.gwt.core.client.impl.Impl.apply(Impl.java)
>at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:214)
> at sun.reflect.GeneratedMethodAccessor29.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>at java.lang.reflect.Method.invoke(Method.java:597)
>at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
>at
> com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
>at
> com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:157)
>at
> com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:281)
>at
> com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:531)
>at
> com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:352)
>at java.lang.Thread.run(Thread.java:619)
>
> --
> http://groups.google.com/group/Google-Web-Toolkit-Contributors
>

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Re: [gwt-contrib] Re: chrome broken

2010-08-19 Thread Pascal Patry
On Thursday, August 19, 2010 13:48:53 rjrjr wrote:
> We believe this was fixed at r8572. Can anyone confirm?

It fixed the latest issue in Firefox, however, Chrome is still broken.

Stack Trace:

java.lang.IllegalArgumentException: invoke arguments: JS value of type int, 
expected 
com.google.gwt.requestfactory.client.impl.RecordJsoImpl
at com.google.gwt.dev.shell.JsValueGlue.get(JsValueGlue.java:178)
at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:65)
at 
com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:157)
at 
com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:326)
at 
com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:207)
at 
com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:126)
at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:552)
at 
com.google.gwt.dev.shell.ModuleSpace.invokeNativeVoid(ModuleSpace.java:289)
at 
com.google.gwt.dev.shell.JavaScriptHost.invokeNativeVoid(JavaScriptHost.java:107)
at 
com.google.gwt.requestfactory.client.impl.AbstractRequest.processRelated(AbstractRequest.java)
at 
com.google.gwt.requestfactory.client.impl.AbstractRequest.handleResponseText(AbstractRequest.java:99)
at 
com.google.gwt.requestfactory.client.impl.RequestFactoryJsonImpl$1.onResponseReceived(RequestFactoryJsonImpl.java:100)
at 
com.google.gwt.http.client.Request.fireOnResponseReceived(Request.java:287)
at 
com.google.gwt.http.client.RequestBuilder$1.onReadyStateChange(RequestBuilder.java:395)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
at 
com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:157)
at 
com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:326)
at 
com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:207)
at 
com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:126)
at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:552)
at 
com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:269)
at 
com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91)
at com.google.gwt.core.client.impl.Impl.apply(Impl.java)
at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:214)
at sun.reflect.GeneratedMethodAccessor29.invoke(Unknown Source)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
at 
com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:157)
at 
com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:281)
at 
com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:531)
at 
com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:352)
at java.lang.Thread.run(Thread.java:619)

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Re: Public: Start of a sample application showing GWT validation. (issue760802)

2010-08-19 Thread nchalko

http://gwt-code-reviews.appspot.com/760802/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


Re: [gwt-contrib] Re: chrome broken

2010-08-19 Thread Pascal Patry
On Thursday, August 19, 2010 13:48:53 rjrjr wrote:
> We believe this was fixed at r8572. Can anyone confirm?

sure, won't be long.

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Re: chrome broken

2010-08-19 Thread rjrjr
We believe this was fixed at r8572. Can anyone confirm?

On Aug 18, 3:45 pm, Ray Cromwell  wrote:
> Thanks, there will be a fix for this by COB today.
>
> -Ray
>
>
>
> On Wed, Aug 18, 2010 at 2:38 PM, Pascal Patry  wrote:
> > On Wednesday, August 18, 2010 16:41:39 you wrote:
> > > On Wednesday, August 18, 2010 16:33:04 Ray Cromwell wrote:
> > > > I have a feeling this is actually working as its supposed to on Chrome,
> > > > but silently failing on the other browsers. The stack trace indicates
> > > > that a JSON payload that it thought was a JSO object turned out to be a
> > > > JS Number, so the JSNI callback failed. Why this would work on other
> > > > browsers beats me, but I'll track it down in a few hours.
>
> > > Thing is.. on other browsers, we still get a proper response from the
> > > RPC request.
>
> > > I'm currently noticing that r8563 is fixing some of our responses from
> > > the server. Before this patch, I didn't get any RPC response that would
> > > actually produce something else than an exception on Chrome. However,
> > > this is now getting better. I'm trying to see what's the pattern here.
>
> > Great.. r8563 did something good. It made the problem very consistent.
> > Now, I can get it in Firefox. Doing so gaves me a little more details
> > about what was going on.
>
> > It seems that RPC calls returning RequestObject<> are the ones broken.
>
> > The 3 interesting frames on the stack when the exception occurs are:
> >    at
> > com.google.gwt.requestfactory.client.impl.RecordJsoImpl$JsonResults$.getJav 
> > ascriptResult$(RecordJsoImpl.java)
> >    at
> > com.google.gwt.requestfactory.client.impl.AbstractRequest.handleResponseTex 
> > t(AbstractRequest.java:100)
> >     at
>
> > com.google.gwt.requestfactory.client.impl.RequestFactoryJsonImpl$1.onRespon 
> > seReceived(RequestFactoryJsonImpl.java:99)
>
> > --
> >http://groups.google.com/group/Google-Web-Toolkit-Contributors

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Re: Initial support for round-trip edits in the DynaTableRF sample. (issue767801)

2010-08-19 Thread rjrjr

Another sanity check, still sane. I haven't looked in as much depth as I
should, but I'm not scared.


http://gwt-code-reviews.appspot.com/767801/diff/14001/2014
File
samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/PersonEditorWorkflow.java
(right):

http://gwt-code-reviews.appspot.com/767801/diff/14001/2014#newcode101
samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/PersonEditorWorkflow.java:101:
topLevelDelegate.initialize(null, personEditor);
This is the EditorDelegate, right? We need a better name for that thing.
Maybe Editor itself is wrong. Don't have alternatives in mind, but let's
keep thinking.

http://gwt-code-reviews.appspot.com/767801/diff/14001/2014#newcode112
samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/PersonEditorWorkflow.java:112:
topLevelDelegate.edit(requestFactory.personRequest().persist(person));
I always imagined the delegate being an implementation detail of the top
level editor, and that setValue() would make this edit() call. If that's
impractical (you said it interferes with composability, right?), that's
what makes me talk about better naming.

The delegate already knows about personEditor, right? Should edit() call
setValue, rather than making the user code do both?

http://gwt-code-reviews.appspot.com/767801/diff/14001/2014#newcode116
samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/PersonEditorWorkflow.java:116:
personEditor.setDelegate(topLevelDelegate);
Odd that I have to point them at each other:

topLevelDelegate.initialize(null, personEditor);
personEditor.setDelegate(topLevelDelegate);

http://gwt-code-reviews.appspot.com/767801/diff/14001/2024
File
samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/gen/AddressEditorDelegate.java
(right):

http://gwt-code-reviews.appspot.com/767801/diff/14001/2024#newcode31
samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/gen/AddressEditorDelegate.java:31:
public HandlerRegistration subscribe(AddressProxy person) {
Need to be careful with this. If I'm actually editing a copy of the
thing, I don't necessarily want my work clobbered by stray update events
to the canonical one.

http://gwt-code-reviews.appspot.com/767801/diff/14001/2026
File
samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/gen/PersonRequestFactoryDelegate.java
(right):

http://gwt-code-reviews.appspot.com/767801/diff/14001/2026#newcode67
samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/gen/PersonRequestFactoryDelegate.java:67:
checkDelegate();
could make this ensureDelegate() and have it return the delegate, or
just getDelegate(). Slightly prettier: return
ensureDelegate().getPath().

http://gwt-code-reviews.appspot.com/767801/diff/14001/2050
File
user/src/com/google/gwt/editor/client/RequestFactoryEditorDelegate.java
(right):

http://gwt-code-reviews.appspot.com/767801/diff/14001/2050#newcode37
user/src/com/google/gwt/editor/client/RequestFactoryEditorDelegate.java:37:
* instance.flush().fire(new Receiver {...});
Is RFED really in the fire() business?

http://gwt-code-reviews.appspot.com/767801/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] RR : Add to UiBinder to allow access to static fields. (issue781801)

2010-08-19 Thread bobv

Reviewers: Ray Ryan,

Message:
This patch allows ui.xml files to refer to static fields.

Single fields:
  

Wildcard (like import static Inner.*):
  

Enum values (also works as a single field):
  

Setting an element's attribute to the name of an enum value:
  

Description:
Add  to UiBinder to allow access to static fields.
Patch by: bobv
Review by: rjrjr
Suggested by: sonnyf


Please review this at http://gwt-code-reviews.appspot.com/781801/show

Affected files:
  M user/src/com/google/gwt/uibinder/rebind/UiBinderParser.java
  M user/src/com/google/gwt/uibinder/rebind/model/OwnerClass.java
  A user/test/com/google/gwt/uibinder/test/client/Constants.java
  M user/test/com/google/gwt/uibinder/test/client/UiBinderTest.java
  M user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.ui.xml


--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Re: Fix memory leaks in DevMode (issue766803)

2010-08-19 Thread scottb

Still need answer on JJS -> i18n clear cache.


http://gwt-code-reviews.appspot.com/766803/diff/1/3
File dev/core/src/com/google/gwt/dev/javac/CompilationStateBuilder.java
(right):

http://gwt-code-reviews.appspot.com/766803/diff/1/3#newcode223
dev/core/src/com/google/gwt/dev/javac/CompilationStateBuilder.java:223:
Collections.synchronizedMap(new HashMap());
Ok... so the theory was this:

Location -> last ResourceTag via resourceContentCache
ResourceTag -> CompilationUnit via keepAliveLatestVersion

When a new ResourceTag preempts the old one in a particular location,
the entries should fall out of keepAliveLatestVersion.

It looks like you just cut out the middle man here.  I'm sure the change
is fine, but I'm struggling to understand what practical difference it
will make.

http://gwt-code-reviews.appspot.com/766803/diff/1/5
File user/src/com/google/gwt/i18n/rebind/LocaleUtils.java (left):

http://gwt-code-reviews.appspot.com/766803/diff/1/5#oldcode109
user/src/com/google/gwt/i18n/rebind/LocaleUtils.java:109: }
It should have been getting called from JavaToJavaScriptCompiler via
reflection.

http://gwt-code-reviews.appspot.com/766803/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Re: Fix memory leaks in DevMode (issue766803)

2010-08-19 Thread conroy


http://gwt-code-reviews.appspot.com/766803/diff/1/2
File dev/core/src/com/google/gwt/core/ext/typeinfo/TypeOracle.java
(right):

http://gwt-code-reviews.appspot.com/766803/diff/1/2#newcode499
dev/core/src/com/google/gwt/core/ext/typeinfo/TypeOracle.java:499: *
manage static state.
On 2010/08/19 01:04:10, scottb wrote:

Maybe we should tell them how they *should* manage static state?


agreed. though i think we should figure that out in a subsequent change.

http://gwt-code-reviews.appspot.com/766803/diff/1/3
File dev/core/src/com/google/gwt/dev/javac/CompilationStateBuilder.java
(right):

http://gwt-code-reviews.appspot.com/766803/diff/1/3#newcode223
dev/core/src/com/google/gwt/dev/javac/CompilationStateBuilder.java:223:
Collections.synchronizedMap(new HashMap());
On 2010/08/19 01:04:10, scottb wrote:

Can you explain this change?


Though the previous method used a weak reference key, it was caching
based on the resourceTag. So, when a new version appears, it has a new
resourceTag which meant the size of the cache incorrectly increased.

With this change, we just cache based on location. So, a new version in
the same location will overwrite its old cache entry.

http://gwt-code-reviews.appspot.com/766803/diff/1/5
File user/src/com/google/gwt/i18n/rebind/LocaleUtils.java (left):

http://gwt-code-reviews.appspot.com/766803/diff/1/5#oldcode109
user/src/com/google/gwt/i18n/rebind/LocaleUtils.java:109: }
On 2010/08/19 01:04:10, scottb wrote:

So when does this ever get cleared now?


FWIW, this wasn't getting called before, so this is really a null
change. I'll look at fixing this properly...

http://gwt-code-reviews.appspot.com/766803/diff/1/8
File
user/src/com/google/gwt/resources/rebind/context/AbstractResourceContext.java
(right):

http://gwt-code-reviews.appspot.com/766803/diff/1/8#newcode50
user/src/com/google/gwt/resources/rebind/context/AbstractResourceContext.java:50:
new ReferenceMap(ReferenceMap.WEAK, ReferenceMap.WEAK);
On 2010/08/19 01:04:10, scottb wrote:

Or make it a ThreadLocal, and don't key it off the TypeOracle at all.


Yep, done.

http://gwt-code-reviews.appspot.com/766803/diff/1/8#newcode77
user/src/com/google/gwt/resources/rebind/context/AbstractResourceContext.java:77:
protected AbstractResourceContext(
On 2010/08/19 01:04:10, scottb wrote:

Pplease avoid mixing "format" changes in with a semantic patch--

you've got a

ton of them in this patch.  If something badly needs reformatting, we

do it in a

separate change.  That being said, I'm pretty sure your format

settings are off.

  Did you configure them according to the instructions in

"eclipse/README.txt"?

This particular file I think was messed up by being open in another
editor. I've addressed this in another comment but I changed my Eclipse
settings in response to a previous review.

http://gwt-code-reviews.appspot.com/766803/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Re: Fix memory leaks in DevMode (issue766803)

2010-08-19 Thread conroy

http://gwt-code-reviews.appspot.com/766803/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Re: Fix memory leaks in DevMode (issue766803)

2010-08-19 Thread conroy

http://gwt-code-reviews.appspot.com/766803/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Re: TypeOracle transitive invalidation based only on API types (issue775804)

2010-08-19 Thread kplatfoot

LGTM

http://gwt-code-reviews.appspot.com/775804/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Re: TypeOracle transitive invalidation based only on API types (issue775804)

2010-08-19 Thread kplatfoot

Ah, ok.  My question was not phrased correctly, but I was actually
wondering about visiting annotation type *refs*, not the annotation
types themselves.  My bad.  Anyway, thanks for clearing that up.

On 2010/08/19 15:46:05, scottb wrote:

On Thu, Aug 19, 2010 at 11:41 AM,  wrote:



> Why do we no longer visit annotation types?




We visit annotation types; what we don't visit is annotation elements

on

other types.  IE, we don't visit the @Override on a method.  The

reasoning

has to do with how the actual dependencies work in TypeOracle.  As it

turns

out, there's no reference from a JClassType or JMethod to the
JAnnotationType that happens to be annotating it.  Instead, it's

modeled

using java.lang.Class and AnnotationProxies.  So for the purpose of
constructing a well-formed TypeOracle, the ability to resolve a
JAnnotationType for @Override is totally incidental to resolving a

method

that happens to be annotated with it.





http://gwt-code-reviews.appspot.com/775804/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


Re: [gwt-contrib] Re: Added all safehtml packages. (issue771801)

2010-08-19 Thread Philip Rogers
Sure, I will add a note about the intended usage in the code.

I will be moving the existing widgets over to SafeHtml soon, and that will,
hopefully, provide some good examples as well.

Philip

On Thu, Aug 19, 2010 at 10:42 AM, Arthur Kalmenson wrote:

> I'm just wondering, the idea of this is to display potentially unsafe
> HTML we got from the server, right? Is there a way to discourage using
> this to sanitizing HTML on the client before sending it to the server?
> I can definitely see newer programmers assuming that doing this
> sanitization on the client side is safe enough, when it's clearly not.
> I guess some documentation to that effect would be enough.
>
> --
> Arthur Kalmenson
>
>
>
> On Wed, Aug 18, 2010 at 10:11 AM, Christoph Kern  wrote:
> >
> >
> > On Wed, Aug 18, 2010 at 01:44,  wrote:
> >>
> >> On 2010/08/17 23:23:39, xtof wrote:
> >>>
> >>> On 2010/08/17 23:05:06, tbroyer wrote:
> >>> >
> >>> > Looking at the code more closely it would merely "fail" by overly
> >>> > rejecting tags that are whitelisted: i.e. "should be
> >>> > bold" would be sanitized to " >>> > end part would be italicized instead of bold.
> >>
> >>> And that is exactly correct behavior for this class as document. It
> >>> only claims to accept HTML with attribute-free tags within the
> >>> whitelist. It doesn't claim to do anything particularly sensible
> >>> with input that doesn't fit this constraint; it does however claim
> >>> that whatever it outputs is safe (will not result in XSS/script
> >>> execution).
> >>
> >> Oops, yes, sorry, I can't tell how it happened but I misread the
> >> "whitelisting" code (matches the whole thing between '<' and '>', so any
> >> attribute, or even whitespace, as in "bold", would make it fail
> >> and thus be escaped).
> >> It's fine then. Sorry again for the noise.
> >
> > No prob, always better to err on the side of caution!
> >
> >>
> >> Still, there's a small issue with the fact that
> >> SafeHtmlTemplatesGenerator doesn't use the HTML5 serialization algorithm
> >> (or any similar one): @Template("") will result in ""
> >> which is interpreted by browsers as "" [1], which makes it
> >> impossible to generate a single "line break" in a SafeHtmlTemplates.
> >>
> >> [1] http://www.w3.org/TR/html5/tokenization.html#parsing-main-inbody
> >> (search for « An end tag whose tag name is "br" », it's there for
> >> "compat with the Web")
> >
> > Agreed.  Another potential problem with this parser is that it's too
> strict
> > -- it insists on well-formed XHTML, but that's a much stronger constraint
> > than needed to ensure the SafeHtml type contract.
> > For example,
> >   @Template("")
> >   SafeHtml openATag(String href);
> > is perfectly safe, and might be useful in something where one needs to
> > conditionally assemble various pieces of HTML markup,  like,
> >   SafeHtmlBuilder shb;
> >   //...
> >   shb.append(openATag(someUrl));
> >   if (...) {
> > shb.append(someThing)
> >   } else {
> >shb.append(someThingElse);
> >   }
> > To ensure the SafeHtml type contract, the parser need only record the
> > HTML-context ("inner text", "url-valued attribute", "style", etc) of the
> > positional parameters, and require that the template ends in "inner text"
> > context (to ensure that SafeHtmls are safely appendable to each other).
> > Note that a bug in code like the above could result in non-well-formed
> HTML
> > (like unbalanced tags), but not unsafe HTML that might cause XSS (that is
> of
> > course absent bugs in the SafeHtml generators themselves).
> > As I'd mentioned, I'm proposing to replace the current XML based parser
> with
> > the java streamhtmlparser, which has this property.
> > I'd be fine with removing the templating code from this change and land
> it
> > separately along with the new parser.
> > cheers,
> > --xtof
> >
> >
> >>
> >>
> >> http://gwt-code-reviews.appspot.com/771801/show
> >
> > --
> > http://groups.google.com/group/Google-Web-Toolkit-Contributors
>
> --
> http://groups.google.com/group/Google-Web-Toolkit-Contributors
>

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors

[gwt-contrib] Re: Introduces ValueListBox, and uses it in Scaffold to pick (issue780802)


Please add test cases (or a TODO) for ValueListBox and anything else
that is reasonably stable.


http://gwt-code-reviews.appspot.com/780802/diff/3001/4002
File
bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeEditActivity.java
(right):

http://gwt-code-reviews.appspot.com/780802/diff/3001/4002#newcode88
bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeEditActivity.java:88:
super.start(display, eventBus);
Putting the super call here could introduce some inderminability if
findEmployeeEntries() comes back synchronously.  Can you move it above
the async request?

http://gwt-code-reviews.appspot.com/780802/diff/3001/4008
File
bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportEditActivity.java
(right):

http://gwt-code-reviews.appspot.com/780802/diff/3001/4008#newcode88
bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportEditActivity.java:88:
super.start(display, eventBus);
Putting the super call here could introduce some inderminability if
findEmployeeEntries() comes back synchronously.  Can you move it above
the async request?

http://gwt-code-reviews.appspot.com/780802/diff/3001/4008#newcode96
bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportEditActivity.java:96:

Extra newline.

http://gwt-code-reviews.appspot.com/780802/diff/3001/4018
File user/src/com/google/gwt/app/place/AbstractRecordEditActivity.java
(right):

http://gwt-code-reviews.appspot.com/780802/diff/3001/4018#newcode95
user/src/com/google/gwt/app/place/AbstractRecordEditActivity.java:95:
extra spaces

http://gwt-code-reviews.appspot.com/780802/diff/3001/4021
File user/src/com/google/gwt/app/place/PropertyColumn.java (right):

http://gwt-code-reviews.appspot.com/780802/diff/3001/4021#newcode30
user/src/com/google/gwt/app/place/PropertyColumn.java:30: * A column
that displays a record property as a string. NB: Property objects
What does NB mean?

http://gwt-code-reviews.appspot.com/780802/diff/3001/4025
File
user/src/com/google/gwt/requestfactory/client/impl/RecordJsoImpl.java
(right):

http://gwt-code-reviews.appspot.com/780802/diff/3001/4025#newcode315
user/src/com/google/gwt/requestfactory/client/impl/RecordJsoImpl.java:315:
assert(null != requestFactory) : "rf";
Can you put a more descriptive error string:
"requestFactory is null"

http://gwt-code-reviews.appspot.com/780802/diff/3001/4025#newcode317
user/src/com/google/gwt/requestfactory/client/impl/RecordJsoImpl.java:317:
assert(null != schema) : "schema";
ditto

http://gwt-code-reviews.appspot.com/780802/diff/3001/4025#newcode319
user/src/com/google/gwt/requestfactory/client/impl/RecordJsoImpl.java:319:
assert(null != token) : "token";
ditto

http://gwt-code-reviews.appspot.com/780802/diff/3001/4026
File user/src/com/google/gwt/user/client/ui/ValueListBox.java (right):

http://gwt-code-reviews.appspot.com/780802/diff/3001/4026#newcode35
user/src/com/google/gwt/user/client/ui/ValueListBox.java:35: private
final Map indexToValue = new HashMap();
You could just use a List (or an array) since you know the values aren't
sparse and start at 0.

http://gwt-code-reviews.appspot.com/780802/diff/3001/4026#newcode36
user/src/com/google/gwt/user/client/ui/ValueListBox.java:36: private
final Map renderedToIndex = new HashMap();
What if two items render to the same thing?  This should be
valuesToIndex.

Alternatively, you can replace both of these maps with a List values.
indexToValue => values.get(i)
valueToIndex => values.indexOf(value)

http://gwt-code-reviews.appspot.com/780802/diff/3001/4026#newcode74
user/src/com/google/gwt/user/client/ui/ValueListBox.java:74: public void
setValues(Collection values) {
This method name is confusing because a native ListBox actually supports
multiple selection.  We should rename the method setContrainedValues()
to match the interface name HasConstrainedValues().

http://gwt-code-reviews.appspot.com/780802/diff/3001/4026#newcode102
user/src/com/google/gwt/user/client/ui/ValueListBox.java:102: Integer
index = renderedToIndex.get(rendered);
What if two items render to the same thing?

http://gwt-code-reviews.appspot.com/780802/diff/3001/4026#newcode104
user/src/com/google/gwt/user/client/ui/ValueListBox.java:104:
addValue(value);
This violates the contract of HasConstrainedValues.  If the value is not
in the set of contrained values, either throw an error, or set the
selected index to -1 to deselect everything.

I'm guessing that you want to support adding a value that is no longer
selectable (a legacy value for example).  In that case, you should
provide a boolean setter to make the list box values unconstrained.
isUnconstrainedValueAllowed
setUnconstrainedValueAllowed

http://gwt-code-reviews.appspot.com/780802/diff/3001/4027
File user/test/com/google/gwt/valuestore/server/SimpleFoo.java (right):

http://gwt-code-reviews.appspot.com/780802/diff/3001/4027#newcode19
user/test/com/google/gwt/valuestore/server/SimpleFoo.java:19: import
com.google.gwt.valuestore.shared.SimpleBarRecord;
Unused

[gwt-contrib] Re: TypeOracle transitive invalidation based only on API types (issue775804)

On Thu, Aug 19, 2010 at 11:41 AM,  wrote:

> Why do we no longer visit annotation types?


We visit annotation types; what we don't visit is annotation elements on
other types.  IE, we don't visit the @Override on a method.  The reasoning
has to do with how the actual dependencies work in TypeOracle.  As it turns
out, there's no reference from a JClassType or JMethod to the
JAnnotationType that happens to be annotating it.  Instead, it's modeled
using java.lang.Class and AnnotationProxies.  So for the purpose of
constructing a well-formed TypeOracle, the ability to resolve a
JAnnotationType for @Override is totally incidental to resolving a method
that happens to be annotated with it.

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors

[gwt-contrib] Re: TypeOracle transitive invalidation based only on API types (issue775804)


Why do we no longer visit annotation types?

http://gwt-code-reviews.appspot.com/775804/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


Re: [gwt-contrib] Re: Added all safehtml packages. (issue771801)

I'm just wondering, the idea of this is to display potentially unsafe
HTML we got from the server, right? Is there a way to discourage using
this to sanitizing HTML on the client before sending it to the server?
I can definitely see newer programmers assuming that doing this
sanitization on the client side is safe enough, when it's clearly not.
I guess some documentation to that effect would be enough.

--
Arthur Kalmenson



On Wed, Aug 18, 2010 at 10:11 AM, Christoph Kern  wrote:
>
>
> On Wed, Aug 18, 2010 at 01:44,  wrote:
>>
>> On 2010/08/17 23:23:39, xtof wrote:
>>>
>>> On 2010/08/17 23:05:06, tbroyer wrote:
>>> >
>>> > Looking at the code more closely it would merely "fail" by overly
>>> > rejecting tags that are whitelisted: i.e. "should be
>>> > bold" would be sanitized to ">> > end part would be italicized instead of bold.
>>
>>> And that is exactly correct behavior for this class as document. It
>>> only claims to accept HTML with attribute-free tags within the
>>> whitelist. It doesn't claim to do anything particularly sensible
>>> with input that doesn't fit this constraint; it does however claim
>>> that whatever it outputs is safe (will not result in XSS/script
>>> execution).
>>
>> Oops, yes, sorry, I can't tell how it happened but I misread the
>> "whitelisting" code (matches the whole thing between '<' and '>', so any
>> attribute, or even whitespace, as in "bold", would make it fail
>> and thus be escaped).
>> It's fine then. Sorry again for the noise.
>
> No prob, always better to err on the side of caution!
>
>>
>> Still, there's a small issue with the fact that
>> SafeHtmlTemplatesGenerator doesn't use the HTML5 serialization algorithm
>> (or any similar one): @Template("") will result in ""
>> which is interpreted by browsers as "" [1], which makes it
>> impossible to generate a single "line break" in a SafeHtmlTemplates.
>>
>> [1] http://www.w3.org/TR/html5/tokenization.html#parsing-main-inbody
>> (search for « An end tag whose tag name is "br" », it's there for
>> "compat with the Web")
>
> Agreed.  Another potential problem with this parser is that it's too strict
> -- it insists on well-formed XHTML, but that's a much stronger constraint
> than needed to ensure the SafeHtml type contract.
> For example,
> �...@template("")
>   SafeHtml openATag(String href);
> is perfectly safe, and might be useful in something where one needs to
> conditionally assemble various pieces of HTML markup,  like,
>   SafeHtmlBuilder shb;
>   //...
>   shb.append(openATag(someUrl));
>   if (...) {
>     shb.append(someThing)
>   } else {
>    shb.append(someThingElse);
>   }
> To ensure the SafeHtml type contract, the parser need only record the
> HTML-context ("inner text", "url-valued attribute", "style", etc) of the
> positional parameters, and require that the template ends in "inner text"
> context (to ensure that SafeHtmls are safely appendable to each other).
> Note that a bug in code like the above could result in non-well-formed HTML
> (like unbalanced tags), but not unsafe HTML that might cause XSS (that is of
> course absent bugs in the SafeHtml generators themselves).
> As I'd mentioned, I'm proposing to replace the current XML based parser with
> the java streamhtmlparser, which has this property.
> I'd be fine with removing the templating code from this change and land it
> separately along with the new parser.
> cheers,
> --xtof
>
>
>>
>>
>> http://gwt-code-reviews.appspot.com/771801/show
>
> --
> http://groups.google.com/group/Google-Web-Toolkit-Contributors

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors


Re: [gwt-contrib] IE6/7/8 huge speed problems when adding Stylenames on the fly.

If it is in fact layout and not syle matching that is bogging you down, some
good rules of thumb:

1. Try minimize the use of "float" when styling elements.
2. Tables that have "fixed" layout will lay out faster than if left to size
to its contents. But, it may not look like you expect it to :).
3. Absolute positioned containers, while not actually stopping layout from
traversing the entire DOM, will minimize the set of things that can change
and will usually make layout converge faster.

-Jaime

On Thu, Aug 19, 2010 at 10:11 AM, Jaime Yap  wrote:

> Setting the styles directly will still run layout. But It will not run
> style matching. This might give you a bit of speed up, but I think you
> should take a second look at the way you are styling your application.
>
>  The assumption that CssResource won't help might be a little off. Setting
> the style name might be getting very expensive for you because your CSS
> might be triggering some pathological performance problems. Things to look
> out for:
>
> 1. Are you using a lot of descendant selectors?
> 2. For your descendant selectors, if is important to keep the right most
> component of the selector as specific as possible. Styles are matches right
> to left and not top down as intuition would suggest. If you have .foo div {}
> as a selector, if will first check ALL divs in your page and then walk up to
> find an ancestor .foo!
> 3. Do you have any ie-CSS expressions? These make doing layout a lot
> slower.
>
> If you used CssResource, Style matching should be very very quick because
> there will generally be no (or very few) descendant selectors. I would do an
> experiment to see if this buys you anything.
>
> -Jaime
>
>
> On Thu, Aug 19, 2010 at 9:51 AM, Joel Webber  wrote:
>
>> [+some people who have looked at this problem in the past]
>>
>> Le 19 août 2010 09:36, stuckagain  a écrit :
>>
>> Hi,
>>>
>>> I found out that using something like addStylename() in an onmouseover
>>> can have really catastrophic effects on performance in IE (6/7 and 8).
>>> In fact IE8 seems to be worse than the older versions. In my
>>> applications the browser locks up for many seconds even minutes
>>> running at 100% CPU. DynaTrace reveals that the browser is busy doing
>>> layout calculations.
>>>
>>> For example we were doing a style change when moving the mouse over a
>>> big table. In some situations this would block the browser for many
>>> seconds (sometimes minutes, depending on the complexity of the UI).
>>>
>>> If I just directly set the style attribute changes directly in the
>>> code it takes almost no CPU with the same complex UI. The problem here
>>> is that I loose a lot of flexibility in my UI to use CSS to do the
>>> styling (what if I want to change more than just the color for
>>> example).
>>>
>>> I know there is something like CssResource, but as I understand it, it
>>> will not solve the issue in this case since I still need to use an
>>> addStyleName.
>>>
>>> Would there be a way, or wouldn't it be an great Idea, that GWT would
>>> have support in CssResource to copy style attributes from the
>>> CssResouce directly in the styles of the element that I am
>>> targetting ? That way I would not need a addStylename/addClassname but
>>> I still have the flexibility to write down these changes in a CSS
>>> file.
>>>
>>> Or did I overlook such a feature ?
>>>
>>> As I understood, the declarative UI mechanism in GWT is doing such
>>> things, but in our apps we can not use this.
>>>
>>
>> We haven't built anything like this, but we've definitely seen this
>> problem before. It doesn't seem unreasonable to be able to extract the text
>> of a CSSResource rule's properties (a bit unfortunate, since it only affects
>> IE and would be slower everywhere else -- maybe it would be better to
>> provide a more abstract mechanism that could "do the right thing"
>> everywhere). There is also some complexity added by the fact that the
>> fastest way to apply such a style would be "Element.style = '{css string}'".
>> But the only efficient way to do this would be to set the whole thing at
>> once (meaning you couldn't easily mix them).
>>
>> If I recall correctly (Kelly, Jaime, & John please check me on this), the
>> speed problems on this case in IE tended to be a combination of layout and
>> style matching. Layout can be mitigated a bit if you "separate" the table
>> from the rest of the page by putting it in a position:absolute container
>> (putting it in a layout panel does this), but that may not help enough
>> and/or fit your design.
>>
>
>

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors

[gwt-contrib] Re: IE6/7/8 huge speed problems when adding Stylenames on the fly.

Hi,

In a few situation we have indeed a few rules that match ".stylename
TD" I'll see if I can get rid of them.

Thanks,
David

On Aug 19, 4:11 pm, Jaime Yap  wrote:
> Setting the styles directly will still run layout. But It will not run style
> matching. This might give you a bit of speed up, but I think you should take
> a second look at the way you are styling your application.
>
> The assumption that CssResource won't help might be a little off. Setting
> the style name might be getting very expensive for you because your CSS
> might be triggering some pathological performance problems. Things to look
> out for:
>
> 1. Are you using a lot of descendant selectors?
> 2. For your descendant selectors, if is important to keep the right most
> component of the selector as specific as possible. Styles are matches right
> to left and not top down as intuition would suggest. If you have .foo div {}
> as a selector, if will first check ALL divs in your page and then walk up to
> find an ancestor .foo!
> 3. Do you have any ie-CSS expressions? These make doing layout a lot slower.
>
> If you used CssResource, Style matching should be very very quick because
> there will generally be no (or very few) descendant selectors. I would do an
> experiment to see if this buys you anything.
>
> -Jaime
>
>
>
> On Thu, Aug 19, 2010 at 9:51 AM, Joel Webber  wrote:
> > [+some people who have looked at this problem in the past]
>
> > Le 19 août 2010 09:36, stuckagain  a écrit :
>
> > Hi,
>
> >> I found out that using something like addStylename() in an onmouseover
> >> can have really catastrophic effects on performance in IE (6/7 and 8).
> >> In fact IE8 seems to be worse than the older versions. In my
> >> applications the browser locks up for many seconds even minutes
> >> running at 100% CPU. DynaTrace reveals that the browser is busy doing
> >> layout calculations.
>
> >> For example we were doing a style change when moving the mouse over a
> >> big table. In some situations this would block the browser for many
> >> seconds (sometimes minutes, depending on the complexity of the UI).
>
> >> If I just directly set the style attribute changes directly in the
> >> code it takes almost no CPU with the same complex UI. The problem here
> >> is that I loose a lot of flexibility in my UI to use CSS to do the
> >> styling (what if I want to change more than just the color for
> >> example).
>
> >> I know there is something like CssResource, but as I understand it, it
> >> will not solve the issue in this case since I still need to use an
> >> addStyleName.
>
> >> Would there be a way, or wouldn't it be an great Idea, that GWT would
> >> have support in CssResource to copy style attributes from the
> >> CssResouce directly in the styles of the element that I am
> >> targetting ? That way I would not need a addStylename/addClassname but
> >> I still have the flexibility to write down these changes in a CSS
> >> file.
>
> >> Or did I overlook such a feature ?
>
> >> As I understood, the declarative UI mechanism in GWT is doing such
> >> things, but in our apps we can not use this.
>
> > We haven't built anything like this, but we've definitely seen this problem
> > before. It doesn't seem unreasonable to be able to extract the text of a
> > CSSResource rule's properties (a bit unfortunate, since it only affects IE
> > and would be slower everywhere else -- maybe it would be better to provide a
> > more abstract mechanism that could "do the right thing" everywhere). There
> > is also some complexity added by the fact that the fastest way to apply such
> > a style would be "Element.style = '{css string}'". But the only efficient
> > way to do this would be to set the whole thing at once (meaning you couldn't
> > easily mix them).
>
> > If I recall correctly (Kelly, Jaime, & John please check me on this), the
> > speed problems on this case in IE tended to be a combination of layout and
> > style matching. Layout can be mitigated a bit if you "separate" the table
> > from the rest of the page by putting it in a position:absolute container
> > (putting it in a layout panel does this), but that may not help enough
> > and/or fit your design.- Hide quoted text -
>
> - Show quoted text -

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors


Re: [gwt-contrib] IE6/7/8 huge speed problems when adding Stylenames on the fly.

Setting the styles directly will still run layout. But It will not run style
matching. This might give you a bit of speed up, but I think you should take
a second look at the way you are styling your application.

The assumption that CssResource won't help might be a little off. Setting
the style name might be getting very expensive for you because your CSS
might be triggering some pathological performance problems. Things to look
out for:

1. Are you using a lot of descendant selectors?
2. For your descendant selectors, if is important to keep the right most
component of the selector as specific as possible. Styles are matches right
to left and not top down as intuition would suggest. If you have .foo div {}
as a selector, if will first check ALL divs in your page and then walk up to
find an ancestor .foo!
3. Do you have any ie-CSS expressions? These make doing layout a lot slower.

If you used CssResource, Style matching should be very very quick because
there will generally be no (or very few) descendant selectors. I would do an
experiment to see if this buys you anything.

-Jaime

On Thu, Aug 19, 2010 at 9:51 AM, Joel Webber  wrote:

> [+some people who have looked at this problem in the past]
>
> Le 19 août 2010 09:36, stuckagain  a écrit :
>
> Hi,
>>
>> I found out that using something like addStylename() in an onmouseover
>> can have really catastrophic effects on performance in IE (6/7 and 8).
>> In fact IE8 seems to be worse than the older versions. In my
>> applications the browser locks up for many seconds even minutes
>> running at 100% CPU. DynaTrace reveals that the browser is busy doing
>> layout calculations.
>>
>> For example we were doing a style change when moving the mouse over a
>> big table. In some situations this would block the browser for many
>> seconds (sometimes minutes, depending on the complexity of the UI).
>>
>> If I just directly set the style attribute changes directly in the
>> code it takes almost no CPU with the same complex UI. The problem here
>> is that I loose a lot of flexibility in my UI to use CSS to do the
>> styling (what if I want to change more than just the color for
>> example).
>>
>> I know there is something like CssResource, but as I understand it, it
>> will not solve the issue in this case since I still need to use an
>> addStyleName.
>>
>> Would there be a way, or wouldn't it be an great Idea, that GWT would
>> have support in CssResource to copy style attributes from the
>> CssResouce directly in the styles of the element that I am
>> targetting ? That way I would not need a addStylename/addClassname but
>> I still have the flexibility to write down these changes in a CSS
>> file.
>>
>> Or did I overlook such a feature ?
>>
>> As I understood, the declarative UI mechanism in GWT is doing such
>> things, but in our apps we can not use this.
>>
>
> We haven't built anything like this, but we've definitely seen this problem
> before. It doesn't seem unreasonable to be able to extract the text of a
> CSSResource rule's properties (a bit unfortunate, since it only affects IE
> and would be slower everywhere else -- maybe it would be better to provide a
> more abstract mechanism that could "do the right thing" everywhere). There
> is also some complexity added by the fact that the fastest way to apply such
> a style would be "Element.style = '{css string}'". But the only efficient
> way to do this would be to set the whole thing at once (meaning you couldn't
> easily mix them).
>
> If I recall correctly (Kelly, Jaime, & John please check me on this), the
> speed problems on this case in IE tended to be a combination of layout and
> style matching. Layout can be mitigated a bit if you "separate" the table
> from the rest of the page by putting it in a position:absolute container
> (putting it in a layout panel does this), but that may not help enough
> and/or fit your design.
>

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors

[gwt-contrib] Another annoying bug in IE with regards to keyboard events

Hi,

Sorry if I trol this newsgroup too much with my questions, but I asked
this before in the GWT group and this group, but I did it while you
were all busy planning for the GoogleIO days.

I filed an issue for keyboard events not being triggered in IE with
GWT when you click away a popup panel.
http://code.google.com/p/google-web-toolkit/issues/detail?id=4938

This is really annoying because all widgets that use a dropdown
approach have the same issue (and lot's of people have been naging me
about this problem... but it seems to be a problem in the event
handling code of GWT. GWT does not seem to realize that I have focused
another textbox when I close down a popup by clicking outside in a
textbox.

So any keyboard handler I have atttached to the textbox does not get
notified yet text is being inserted.

David

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Re: IE6/7/8 huge speed problems when adding Stylenames on the fly.

> We haven't built anything like this, but we've definitely seen this problem
> before. It doesn't seem unreasonable to be able to extract the text of a
> CSSResource rule's properties (a bit unfortunate, since it only affects IE
> and would be slower everywhere else -- maybe it would be better to provide a
> more abstract mechanism that could "do the right thing" everywhere). There
> is also some complexity added by the fact that the fastest way to apply such
> a style would be "Element.style = '{css string}'". But the only efficient
> way to do this would be to set the whole thing at once (meaning you couldn't
> easily mix them).

Well, it seems like a nice idea to have an abstract solution that
could determine the best approach based on the browser.
I don't know if IE9 handles it better, but it is bad news that IE8 has
the problem more often than IE7 and even IE6.

> If I recall correctly (Kelly, Jaime, & John please check me on this), the
> speed problems on this case in IE tended to be a combination of layout and
> style matching. Layout can be mitigated a bit if you "separate" the table
> from the rest of the page by putting it in a position:absolute container
> (putting it in a layout panel does this), but that may not help enough
> and/or fit your design.- Hide quoted text -

Yes indeed that seems to solve the issue in most cases. But I have to
apply this
technique to every widget that might add/remove styles. For example
the menu or the
ComplexButton widgets use this approach. Before I know it I will have
to use Absolute
panels everywhere. I even have a lockup with the HorizontalSplitPanel
in our application, so I replaced it with my own component that seems
to work better (maybe not the best solution for other browser though -
but our main target is IE).

Thanks for the feedback.

David

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors


Re: [gwt-contrib] IE6/7/8 huge speed problems when adding Stylenames on the fly.

[+some people who have looked at this problem in the past]

Le 19 août 2010 09:36, stuckagain  a écrit :

> Hi,
>
> I found out that using something like addStylename() in an onmouseover
> can have really catastrophic effects on performance in IE (6/7 and 8).
> In fact IE8 seems to be worse than the older versions. In my
> applications the browser locks up for many seconds even minutes
> running at 100% CPU. DynaTrace reveals that the browser is busy doing
> layout calculations.
>
> For example we were doing a style change when moving the mouse over a
> big table. In some situations this would block the browser for many
> seconds (sometimes minutes, depending on the complexity of the UI).
>
> If I just directly set the style attribute changes directly in the
> code it takes almost no CPU with the same complex UI. The problem here
> is that I loose a lot of flexibility in my UI to use CSS to do the
> styling (what if I want to change more than just the color for
> example).
>
> I know there is something like CssResource, but as I understand it, it
> will not solve the issue in this case since I still need to use an
> addStyleName.
>
> Would there be a way, or wouldn't it be an great Idea, that GWT would
> have support in CssResource to copy style attributes from the
> CssResouce directly in the styles of the element that I am
> targetting ? That way I would not need a addStylename/addClassname but
> I still have the flexibility to write down these changes in a CSS
> file.
>
> Or did I overlook such a feature ?
>
> As I understood, the declarative UI mechanism in GWT is doing such
> things, but in our apps we can not use this.
>

We haven't built anything like this, but we've definitely seen this problem
before. It doesn't seem unreasonable to be able to extract the text of a
CSSResource rule's properties (a bit unfortunate, since it only affects IE
and would be slower everywhere else -- maybe it would be better to provide a
more abstract mechanism that could "do the right thing" everywhere). There
is also some complexity added by the fact that the fastest way to apply such
a style would be "Element.style = '{css string}'". But the only efficient
way to do this would be to set the whole thing at once (meaning you couldn't
easily mix them).

If I recall correctly (Kelly, Jaime, & John please check me on this), the
speed problems on this case in IE tended to be a combination of layout and
style matching. Layout can be mitigated a bit if you "separate" the table
from the rest of the page by putting it in a position:absolute container
(putting it in a layout panel does this), but that may not help enough
and/or fit your design.

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors

[gwt-contrib] IE6/7/8 huge speed problems when adding Stylenames on the fly.

Hi,

I found out that using something like addStylename() in an onmouseover
can have really catastrophic effects on performance in IE (6/7 and 8).
In fact IE8 seems to be worse than the older versions. In my
applications the browser locks up for many seconds even minutes
running at 100% CPU. DynaTrace reveals that the browser is busy doing
layout calculations.

For example we were doing a style change when moving the mouse over a
big table. In some situations this would block the browser for many
seconds (sometimes minutes, depending on the complexity of the UI).

If I just directly set the style attribute changes directly in the
code it takes almost no CPU with the same complex UI. The problem here
is that I loose a lot of flexibility in my UI to use CSS to do the
styling (what if I want to change more than just the color for
example).

I know there is something like CssResource, but as I understand it, it
will not solve the issue in this case since I still need to use an
addStyleName.

Would there be a way, or wouldn't it be an great Idea, that GWT would
have support in CssResource to copy style attributes from the
CssResouce directly in the styles of the element that I am
targetting ? That way I would not need a addStylename/addClassname but
I still have the flexibility to write down these changes in a CSS
file.

Or did I overlook such a feature ?

As I understood, the declarative UI mechanism in GWT is doing such
things, but in our apps we can not use this.

Best regards,
David Nouls


-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Re: Adds a markTimeline() method to SpeedTracerLogger. (issue776801)



http://gwt-code-reviews.appspot.com/776801/diff/8001/9002
File dev/core/src/com/google/gwt/dev/Permutation.java (right):

http://gwt-code-reviews.appspot.com/776801/diff/8001/9002#newcode3
dev/core/src/com/google/gwt/dev/Permutation.java:3: *
On 2010/08/19 01:13:43, scottb wrote:

I see you caught the autoformat bug from conroy. :)


This is not an autoformat bug, this is a trailing whitespace issue which
is caused by turning on clipping trailing whitespace in the save action
in Eclipse.

What do you think about suggesting we turn this feature on in the README
file?  I get tired of being dinged to fix "trailing whitespace" problems
by hand when there is an automatic feature to do this.

http://gwt-code-reviews.appspot.com/776801/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Re: Introduces ValueListBox, and uses it in Scaffold to pick (issue780802)


Updated ValueListBox with some bug fixes

http://gwt-code-reviews.appspot.com/780802/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Re: Introduces ValueListBox, and uses it in Scaffold to pick (issue780802)


http://gwt-code-reviews.appspot.com/780802/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Introduces ValueListBox, and uses it in Scaffold to pick (issue780802)


Reviewers: cromwellian,

Description:
Introduces ValueListBox, and uses it in Scaffold to pick
employees.

Review by: cromwell...@google.com

Please review this at http://gwt-code-reviews.appspot.com/780802/show

Affected files:
  M  
bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeDetailsView.java
  M  
bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeEditActivity.java
  M  
bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeEditView.java
  M  
bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeEditView.ui.xml
  M  
bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeListView.java
  A  
bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeRenderer.java
  M  
bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportDetailsView.java
  M  
bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportEditActivity.java
  M  
bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportEditView.java
  M  
bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportEditView.ui.xml
  M  
bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportListView.java

  M user/src/com/google/gwt/app/client/EditorSupport.java
  D user/src/com/google/gwt/app/client/ProxyBox.java
  D user/src/com/google/gwt/app/client/ProxyIdRenderer.java
  D user/src/com/google/gwt/app/client/ProxyParser.java
  D user/src/com/google/gwt/app/client/ProxyRenderer.java
  D user/src/com/google/gwt/app/client/ReadonlyProxyBox.java
  M user/src/com/google/gwt/app/place/AbstractRecordEditActivity.java
  M user/src/com/google/gwt/app/place/AbstractRecordListActivity.java
  M user/src/com/google/gwt/app/place/AbstractRecordListView.java
  M user/src/com/google/gwt/app/place/PropertyColumn.java
  M user/src/com/google/gwt/app/place/PropertyView.java
  A user/src/com/google/gwt/app/place/ProxyRenderer.java
  M user/src/com/google/gwt/app/rebind/EditorSupportGenerator.java
  M user/src/com/google/gwt/requestfactory/client/impl/RecordJsoImpl.java
  A user/src/com/google/gwt/user/client/ui/ValueListBox.java
  M user/test/com/google/gwt/valuestore/server/SimpleFoo.java


--
http://groups.google.com/group/Google-Web-Toolkit-Contributors


[gwt-contrib] Re: Fix memory leaks in DevMode (issue766803)





These caches contain types which have a circular reference pattern

with the

TypeOracle. If we make a hard reference to the cache here, we end up

pinning the

TypeOracle.


  You could break hard reference on TypeOracle for example by using weak
reference on "method" from
"ImageResourceGenerator$ImageResourceDeclaration". But if there are
other resources in cache, then such tweaking for all of them is probably
impractical.



Though, you are right that it could now arbitrarily drop the cache...

Perhaps we

could attach this cache as an instance field on something associated

with the

TypeOracle's life-cycle?


  +1

  If there is state which should be cached separately for each session
and session is associated with TypeOracle, and TypeOracle is easily
accessible from places where caching is required, then would be easier
to avoid playing with WEAK references, ThreadLocal's, etc.

  In GWT Designer we also need to cache (or just create only once) some
information for widget model. To do this we don't create WeakHashMap in
each such place, but we have in widget models methods
"putArbitraryValue(Object key, Object value)" and
"getArbitraryValue(Object key)". So, when reference on model is lost, we
lose also references on all associatied values.

  IMHO WeakHashMap is good when you don't control object to which you
want to associate information. In case of GWT we control both "dev" and
"user" parts, so would be good to use simple and reliable
implementation.


http://gwt-code-reviews.appspot.com/766803/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors