### Eclipse Workspace Patch 1.0
#P sophie
Index: modules/org.sophie2.main.app.layout/src/main/java/org/sophie2/main/app/layout/right/library/LibraryTabLogic.java
===================================================================
--- modules/org.sophie2.main.app.layout/src/main/java/org/sophie2/main/app/layout/right/library/LibraryTabLogic.java	(revision 8404)
+++ modules/org.sophie2.main.app.layout/src/main/java/org/sophie2/main/app/layout/right/library/LibraryTabLogic.java	(working copy)
@@ -96,7 +96,7 @@
 			ResourceAccess frameAccess = currentFrameView.getAccess();
 
 			assert source.firstSelectedItem().get() instanceof FrameTemplateItem;
-
+			assert source.firstSelectedItem().get() != null;			
 			FrameH template = ((FrameTemplateItem)source.firstSelectedItem().get()).frame().get();
 
 			assert template.getRef().isAbsolute();
@@ -148,6 +148,8 @@
 				return true;
 			}
 			
+			assert source.firstSelectedItem().get() instanceof FrameTemplateItem;
+			assert source.firstSelectedItem().get() != null;
 			FrameTemplateItem firstItem = (FrameTemplateItem)source.firstSelectedItem().get();
 			ResourceRefR4 template = firstItem.frame().get().getRef();
 			assert template.isAbsolute();
@@ -185,8 +187,11 @@
 		}
 
 		public boolean handle(EventR3 event) {
-			ResourceH resource = ((FrameTemplateItem) event.getSource(
-					ListPalette.class).firstSelectedItem().get()).frame().get();
+			Object firstItem = event.getSource(ListPalette.class).firstSelectedItem().get();
+			if (firstItem == null || !(firstItem instanceof FrameTemplateItem)) {
+				return false;
+			}
+			ResourceH resource = ((FrameTemplateItem) firstItem).frame().get();
 			setDndTransferable(event, resource);
 			return true;
 		}
@@ -291,7 +296,7 @@
 			if (bookDocView.workArea().get().getRootPageView() != null) {
 				ResourceAccess pageAccess = bookDocView.workArea().get().getRootPageView().getAccess();
 				assert source.firstSelectedItem().get() instanceof PageTemplateItem;
-
+				assert source.firstSelectedItem().get() != null;
 				PageH template = ((PageTemplateItem)source.firstSelectedItem().get()).page().get();
 				assert template.getRef().isAbsolute();
 				final ResourceRefR4 templateRef = ResourceRefR4.getRelativeRef(pageAccess.getRef(),
@@ -333,6 +338,8 @@
 				return true;
 			}
 			
+			assert source.firstSelectedItem().get() instanceof PageTemplateItem;
+			assert source.firstSelectedItem().get() != null;
 			PageTemplateItem firstItem = (PageTemplateItem)source.firstSelectedItem().get();
 			ResourceRefR4 template = firstItem.page().get().getRef();
 			assert template.isAbsolute();
@@ -372,8 +379,11 @@
 		}
 
 		public boolean handle(EventR3 event) {
-			ResourceH resource = ((PageTemplateItem) event.getSource(
-					ListPalette.class).firstSelectedItem().get()).page().get();
+			Object firstItem = event.getSource(ListPalette.class).firstSelectedItem().get();
+			if (firstItem == null || !(firstItem instanceof PageTemplateItem)) {
+				return false;
+			}
+			ResourceH resource = ((PageTemplateItem) firstItem).page().get();
 			setDndTransferable(event, resource);
 			return true;
 		}
@@ -409,6 +419,8 @@
 			BookTemplatesPalette source = event.getSource(BookTemplatesPalette.class);
 			AppMainWindow mainWindow = AppViewUtil.findMainWindow(source);
 
+			assert source.firstSelectedItem().get() instanceof BookTemplateItem;
+			assert source.firstSelectedItem().get() != null;
 			BookTemplateItem firstItem = (BookTemplateItem)source.firstSelectedItem().get();
 
 			BookDocView bookView = AppViewUtil.getView(mainWindow, firstItem.bookTemplate().get().book().get(), BookDocView.class);
@@ -436,8 +448,11 @@
 		}
 
 		public boolean handle(EventR3 event) {
-			ResourceH resource = ((BookTemplateItem) event.getSource(
-					ListPalette.class).firstSelectedItem().get()).bookTemplate().get().getHelper();
+			Object firstItem = event.getSource(ListPalette.class).firstSelectedItem().get();
+			if (firstItem == null || !(firstItem instanceof BookTemplateItem)) {
+				return false;
+			}
+			ResourceH resource = ((BookTemplateItem) firstItem).bookTemplate().get().getHelper();
 			setDndTransferable(event, resource);
 			return true;
 		}
Index: modules/org.sophie2.main.func.resources/src/main/java/org/sophie2/main/func/resources/view/AllResourcesPalette.java
===================================================================
--- modules/org.sophie2.main.func.resources/src/main/java/org/sophie2/main/func/resources/view/AllResourcesPalette.java	(revision 8404)
+++ modules/org.sophie2.main.func.resources/src/main/java/org/sophie2/main/func/resources/view/AllResourcesPalette.java	(working copy)
@@ -330,7 +330,11 @@
 
 				ListPalette<?> palette = event.getSource(ListPalette.class);
 
-				ResourceH res = ((ResourceItem) palette.firstSelectedItem().get()).resource().get();
+				Object firstItem = palette.firstSelectedItem().get();
+				if (firstItem == null || !(firstItem instanceof ResourceItem)) {
+					return false;
+				}
+				ResourceH res = ((ResourceItem) firstItem).resource().get();
 
 				SophieTransferable rt = new ResourceTransferable(res);
 

