Get 5 Books for $1 each
with membership
Already a Member? | Contact Us | Help
  1.   
  2.   
  3.   
  4.   
  5.   
  6. SPECIAL OFFER!
    GET A BONUS SELECTION NOW! Buy 1 more book on sale now for $5.99!
  7.  
  8. YOUR BONUS!
    

    Buy an additional book on sale now for $5.99!

  9.  

Click to remove from cart.

  

Subtotal: $0.00

Your Total Savings: $0.00
The Wooden Man (3-in-1) By Harry Connolly

The Wooden Man (3-in-1)

A Twenty Palaces Omnibus: Child of Fire/ Game of Cages/ Circle of Enemies

by Harry Connolly

Exclusive!

Mem. Ed. $16.99

You pay $1.00

Bonus Content

The Wooden Man (3-in-1)

Ray Lilly is living on borrowed time. He’s the driver for Annalise Powliss, a high-ranking member of the Twenty Palace Society, a group of sorcerers committed to hunting down and executing rogue magicians. But because Ray betrayed her once, Annalise is looking for an excuse to kill him—or let someone else do the job.

Unfortunately for them both, Annalise’s mission goes wrong in Child of Fire. With his boss critically injured—and only one spell to his name—Ray must stop a sorcerer who sacrifices innocent lives for supernatural power.

In Game of Cages, a secret auction unleashes a predator capable of devouring all life on earth, and it’s up to Ray to catch it before the society’s most powerful enemies capture it first. And in Circle of Enemies, when Ray finds out his old gang is in magical trouble, he will either have to save them...or kill them.

As unstoppable as a bullet train from hell, The Wooden Man by newcomer Harry Connolly—who has been lauded by the likes of no less than Jim Butcher and Charlaine Harris(!)—speeds from Seattle to L.A. through a gritty, modern-day landscape where heroes with strange powers battle unspeakable horrors out of the Deeps.

Expect collateral damage. Lots of it.

Hardcover : 752 pages

Publisher: Ballantine/Delrey Bks/Div  Random House ( September 10, 2011 )

Item #: 13-410551

ISBN: 9781611297706

Product Dimensions: 5.5 x 8.25 inches

Product Weight: 26.0 ounces (View shipping rates and policies)

Can't put down!
February 11, 2012

Read it till it was gone. Hope there will be more! A great anti hero, hero.

Reviewer: Tim H

Very, very good book! Highly recommend.
November 27, 2011

This book was well-written and one of those "you can't put it down" kind. It's a very different type of idea with the "wooden man" and the magical society. I really liked pretty much everything about it and if you're looking for a really good book to read, I would recommend getting this one!

Reviewer: Letitia R

Contributors

Get Connected:
Paypal Logo McAfee SECURE sites help keep you safe from identity theft, credit card fraud, spyware, spam, viruses and online scams

Error page exception

The server cannot use the error page specified for your application to handle the Original Exception printed below. Please see the Error Page Exception below for a description of the problem with the specified error page.


Original Exception:

Error Message: Filter [PageFilter]: filter is unavailable.
Error Code: 500
Target Servlet: null
Error Stack:
java.lang.NullPointerException
     at atg.filter.dspjsp.PageFilter.doFilter(Unknown Source)
     at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:142)
     at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:121)
     at yes.ecom.ui.servlet.XSSFilter.doFilter(XSSFilter.java:46)
     at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:142)
     at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:121)
     at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:82)
     at com.ibm.wsspi.webcontainer.extension.WebExtensionProcessor.invokeFilters(WebExtensionProcessor.java:288)
     at com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.handleRequest(DefaultExtensionProcessor.java:783)
     at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3226)
     at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:253)
     at com.ibm.ws.webcontainer.VirtualHost.handleRequest(VirtualHost.java:229)
     at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1970)
     at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:120)
     at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:434)
     at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:373)
     at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:253)
     at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminaters(NewConnectionInitialReadCallback.java:207)
     at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:109)
     at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:566)
     at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:619)
     at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:952)
     at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1039)
     at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1475)
    


Error Page Exception:

Error Message:
Error Code: 0
Target Servlet: null
Error Stack:
java.lang.NullPointerException
     at atg.taglib.dspjsp.PageTag.doStartTag(Unknown Source)
     at atg.taglib.dspjsp.elwrap.PageTagWrapper.doStartTag(Unknown Source)
     at com.ibm._jsp._pageNotFound._jspx_meth_dspel_page_0(_pageNotFound.java:1955)
     at com.ibm._jsp._pageNotFound._jspService(_pageNotFound.java:136)
     at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:93)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
     at com.ibm.ws.cache.servlet.ServletWrapper.serviceProxied(ServletWrapper.java:262)
     at com.ibm.ws.cache.servlet.CacheHook.handleFragment(CacheHook.java:438)
     at com.ibm.ws.cache.servlet.CacheHook.handleServlet(CacheHook.java:238)
     at com.ibm.ws.cache.servlet.ServletWrapper.service(ServletWrapper.java:244)
     at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1697)
     at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1646)
     at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:113)
     at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:82)
     at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:822)
     at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:121)
     at com.ibm.ws.jsp.webcontainerext.JSPExtensionServletWrapper.handleRequest(JSPExtensionServletWrapper.java:216)
     at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.include(WebAppRequestDispatcher.java:670)
     at com.ibm.ws.webcontainer.webapp.WebApp.sendError(WebApp.java:2835)
     at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3274)
     at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:253)
     at com.ibm.ws.webcontainer.VirtualHost.handleRequest(VirtualHost.java:229)
     at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1970)
     at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:120)
     at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:434)
     at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:373)
     at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:253)
     at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminaters(NewConnectionInitialReadCallback.java:207)
     at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:109)
     at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:566)
     at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:619)
     at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:952)
     at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1039)
     at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1475)