Export to GitHub

chromedevtools - issue #58

'JsonProtocolParseException: null input' is thrown sometimes during evaluation of object properties


Posted on Jan 23, 2012 by Happy Bear

SDK/Debugger version: 0.3.2 Eclipse version: Helios Service Release 2 Google Chrome/V8 Embedder + version: 16.0.912.75 OS + version: Ubuntu 11.10

What steps will reproduce the problem? 1. Open some page in Chrome (e.g. testwebsite/main.html from the chromedevtools sources). 2. Start 'WebKit Protocol' debug configuration in Eclipse using WIP Backend 97678. 3. Stop on a breakpoint 4. Evaluate 'chrome.app' expression (without quotes) in 'Expressions' view. 5. Expand the 'chrome.app' node.

What is the expected result? Properties of 'chrome.app' object should be shown.

What happens instead? 'Failed to read variables' message is shown.

Please provide any additional information below. If possible, attach a (reduced) test-case. The messages from 'Console' view are shown below. It seems that '"set": null' property causes 'JsonProtocolParseException: null input' exception.

> Sent to Chrome: %000{"id":15,"method":"Runtime.getProperties","params":{"ownProperties":true,"objectId":"{\"injectedScriptId\":2,\"id\":70}"}}%00/ > end of message

> Received from Chrome: %000{"result":{"result":[{"value":{"type":"function","objectId":"{\"injectedScriptId\":2,\"id\":71}","className":"Object","description":"function Install() { [native code] }"},"writable":true,"enumerable":true,"configurable":true,"name":"install"},{"value":{"type":"object","objectId":"{\"injectedScriptId\":2,\"id\":72}","className":"Object","description":"Object"},"writable":true,"enumerable":true,"configurable":true,"name":"experimental"},{"value":{"type":"function","objectId":"{\"injectedScriptId\":2,\"id\":73}","className":"Object","description":"function GetDetailsForFrame() { [native code] }"},"writable":true,"enumerable":true,"configurable":true,"name":"getDetailsForFrame"},{"value":{"type":"function","objectId":"{\"injectedScriptId\":2,\"id\":74}","className":"Object","description":"function GetDetails() { [native code] }"},"writable":true,"enumerable":true,"configurable":true,"name":"getDetails"},{"get":{"type":"function","objectId":"{\"injectedScriptId\":2,\"id\":75}","className":"Object","description":"function GetIsInstalled() { [native code] }"},"set":null,"enumerable":true,"configurable":true,"name":"isInstalled"},{"name":"proto","value":{"type":"object","objectId":"{\"injectedScriptId\":2,\"id\":76}","className":"Object","description":"Object"},"writable":true,"configurable":true,"enumerable":false}]},"id":15}%00/ > end of message

Comment #1

Posted on Jan 23, 2012 by Happy Bear

The stacktrace from 'Error Log' view:

java.lang.RuntimeException: Exception occured in callback at org.chromium.sdk.CallbackSemaphore.tryAcquire(CallbackSemaphore.java:68) at org.chromium.sdk.CallbackSemaphore.tryAcquireDefault(CallbackSemaphore.java:33) at org.chromium.sdk.CallbackSemaphore.acquireDefault(CallbackSemaphore.java:40) at org.chromium.sdk.internal.wip.WipValueLoader.loadRawPropertiesSync(WipValueLoader.java:313) at org.chromium.sdk.internal.wip.WipValueLoader.access$3(WipValueLoader.java:278) at org.chromium.sdk.internal.wip.WipValueLoader$2.runSync(WipValueLoader.java:238) at org.chromium.sdk.util.AsyncFuture$SyncOperation.execute(AsyncFuture.java:167) at org.chromium.sdk.internal.wip.WipValueLoader.loadPropertiesInFuture(WipValueLoader.java:262) at org.chromium.sdk.internal.wip.WipValueLoader.loadJsObjectPropertiesInFuture(WipValueLoader.java:70) at org.chromium.sdk.internal.wip.WipValueBuilder$ObjectTypeBase$JsObjectBase.doLoadProperties(WipValueBuilder.java:258) at org.chromium.sdk.internal.wip.WipValueBuilder$ObjectTypeBase$JsObjectBase.getLoadedProperties(WipValueBuilder.java:240) at org.chromium.sdk.internal.wip.WipValueBuilder$ObjectTypeBase$JsObjectBase.getProperties(WipValueBuilder.java:203) at org.chromium.debug.core.model.Value.getVariables(Value.java:73) at org.eclipse.debug.internal.ui.model.elements.VariableContentProvider.getValueChildren(VariableContentProvider.java:166) at org.eclipse.debug.internal.ui.model.elements.VariableContentProvider.getAllChildren(VariableContentProvider.java:83) at org.eclipse.debug.internal.ui.model.elements.VariableContentProvider.getChildCount(VariableContentProvider.java:48) at org.eclipse.debug.internal.ui.model.elements.ElementContentProvider.retrieveChildCount(ElementContentProvider.java:114) at org.eclipse.debug.internal.ui.model.elements.ElementContentProvider$2.run(ElementContentProvider.java:63) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) Caused by: java.lang.Exception: Exception saved from callback at org.chromium.sdk.CallbackSemaphore.callbackDone(CallbackSemaphore.java:80) at org.chromium.sdk.internal.BaseCommandProcessor.callThemBack(BaseCommandProcessor.java:141) at org.chromium.sdk.internal.BaseCommandProcessor.processIncoming(BaseCommandProcessor.java:104) at org.chromium.sdk.internal.wip.WipCommandProcessor.acceptResponse(WipCommandProcessor.java:105) at org.chromium.sdk.internal.wip.WipTabImpl$2.textMessageRecieved(WipTabImpl.java:97) at org.chromium.sdk.internal.websocket.WsConnection$7$1.dispatch(WsConnection.java:210) at org.chromium.sdk.internal.websocket.WsConnection$8.runImpl(WsConnection.java:271) at org.chromium.sdk.internal.websocket.WsConnection$8.run(WsConnection.java:262) at java.lang.Thread.run(Thread.java:679) Caused by: java.lang.RuntimeException: org.chromium.sdk.internal.protocolparser.JsonProtocolParseException: Failed to parse field result at org.chromium.sdk.internal.wip.WipCommandProcessor$6.onSuccess(WipCommandProcessor.java:89) at org.chromium.sdk.internal.wip.WipCommandCallback$Default.messageReceived(WipCommandCallback.java:30) at org.chromium.sdk.internal.wip.WipCommandCallback$Default.messageReceived(WipCommandCallback.java:1) at org.chromium.sdk.internal.BaseCommandProcessor$3.call(BaseCommandProcessor.java:100) at org.chromium.sdk.internal.BaseCommandProcessor$3.call(BaseCommandProcessor.java:1) at org.chromium.sdk.internal.BaseCommandProcessor.callThemBack(BaseCommandProcessor.java:134) ... 7 more Caused by: org.chromium.sdk.internal.protocolparser.JsonProtocolParseException: Failed to parse field result at org.chromium.sdk.internal.wip.protocol.GeneratedWipProtocolParser$Value_94.(GeneratedWipProtocolParser.java:7115) at org.chromium.sdk.internal.wip.protocol.GeneratedWipProtocolParser$Value_94.parse(GeneratedWipProtocolParser.java:7083) at org.chromium.sdk.internal.wip.protocol.GeneratedWipProtocolParser.parseRuntimeGetPropertiesData(GeneratedWipProtocolParser.java:124) at org.chromium.sdk.internal.wip.protocol.output.runtime.GetPropertiesParams.parseResponse(GetPropertiesParams.java:29) at org.chromium.sdk.internal.wip.protocol.output.runtime.GetPropertiesParams.parseResponse(GetPropertiesParams.java:1) at org.chromium.sdk.internal.wip.WipCommandProcessor$6.onSuccess(WipCommandProcessor.java:87) ... 12 more Caused by: org.chromium.sdk.internal.protocolparser.JsonProtocolParseException: Failed to parse field set at org.chromium.sdk.internal.wip.protocol.GeneratedWipProtocolParser$Value_95.(GeneratedWipProtocolParser.java:7198) at org.chromium.sdk.internal.wip.protocol.GeneratedWipProtocolParser$Value_95.parse(GeneratedWipProtocolParser.java:7130) at org.chromium.sdk.internal.wip.protocol.GeneratedWipProtocolParser$Value_94.(GeneratedWipProtocolParser.java:7108) ... 17 more Caused by: org.chromium.sdk.internal.protocolparser.JsonProtocolParseException: null input at org.chromium.sdk.internal.wip.protocol.GeneratedWipProtocolParser$Value_95.(GeneratedWipProtocolParser.java:7192) ... 19 more

Comment #2

Posted on Feb 24, 2012 by Quick Monkey

Fixed in HEAD

Comment #3

Posted on Feb 25, 2012 by Quick Monkey

Fixed in 0.3.4

Status: Fixed

Labels:
Type-Defect Priority-Medium