How to illuminate the darkness inside glass objects in Cycles?
This may be caused by Cycles's rendering of caustics.
From the wiki, Glass and Transparent Shadows:

Glass and Transparent Shadows
With caustics disabled, glass will miss shadows, and with filter glossy they might be too soft. We can make a glass shader that will use a Glass BSDF when viewed directly, and a Transparent BSDF when viewed indirectly. The Transparent BSDF can be used for transparent shadows to find light sources straight through surfaces, and will give properly-colored shadows, but without the caustics. The Light Path node is used to determine when to use which of the two shaders.


To clarify the node setup a bit:

The Light Path node determines the type of the current ray being traced. For each socket, it outputs a 0 if it is not that type or a 1 if it is. Thus, getting the maximum of those two values is equivalent to a boolean inclusive-or operation. The Maximum node will therefore output a 1 if the ray Is Shadow Ray or if it Is Reflection Ray; this will cause the transparent BSDF to be used (as it is the bottom input of the Mix Shader). Otherwise, it will output a 0, and the top shader (the glass shader) will be used.

The following diagram demonstrates some of the various ray types:


The node setup used is part of a node group called &quot;TrickyGlass,&quot; which you can see at the top. A node group is a reusable chunk of nodes that can be parameterized just like any other nodes – in this case, with the three inputs on the left – and output, in this case, a shader. Thus, you can use this setup in a node tree like any other shader node.

Here's an image using just a regular glass shader:

And after switching to the TrickyGlass node group: